SELECT CADASTRO                                                           
FROM CAD_TELA_SISTEMA                                                     
WHERE NOME = 'frmrel_contas_pagar_retroativo_por_fornecedor_detalhado'  

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                                           
FROM CAD_TELA_SISTEMA                                                     
WHERE NOME = 'frmrel_contas_receber_retroativo_por_cliente_detalhado'   

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                                   
FROM CAD_TELA_SISTEMA                                             
WHERE NOME = 'frmmov_cancelamento_cobranca_boleto_bancario'     

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE MOV_FECHAMENTO_RECEBER                                                                   
(EMPRESA INTEGER NOT NULL,                                                                            
 NUMERO INTEGER NOT NULL,                                                                             
 CLIENTE INTEGER NOT NULL,                                                                            
 EMISSAO DATE NOT NULL,                                                                               
 VALOR DOUBLE PRECISION DEFAULT 0 NOT NULL,                                                           
 TAXA_JUROS_MENSAL DOUBLE PRECISION DEFAULT 0,                                                        
 DATA_CALCULO_JUROS DATE,                                                                             
 VENDEDOR INTEGER NOT NULL,                                                                           
 INSTRUCAO_COBRANCA INTEGER NOT NULL,                                                                 
 CENTRO_CUSTO INTEGER NOT NULL,                                                                       
 PLANO_CONTAS VARCHAR(15) NOT NULL,                                                                   
 OBSERVACAO VARCHAR(80),                                                                              
 FOREIGN KEY(EMPRESA) REFERENCES CAD_EMPRESA(CADASTRO),                                               
 FOREIGN KEY (CLIENTE) REFERENCES CAD_PESSOA (CADASTRO),                                              
 FOREIGN KEY (VENDEDOR) REFERENCES CAD_PESSOA (CADASTRO),                                             
 FOREIGN KEY (EMPRESA, INSTRUCAO_COBRANCA) REFERENCES CAD_INSTRUCAO_COBRANCA (EMPRESA, CADASTRO),     
 FOREIGN KEY (EMPRESA, CENTRO_CUSTO) REFERENCES CAD_CENTRO_CUSTO (EMPRESA, CADASTRO),                 
 FOREIGN KEY (EMPRESA, PLANO_CONTAS) REFERENCES CAD_PLANO_CONTAS (EMPRESA, CADASTRO),                 
 PRIMARY KEY (EMPRESA, NUMERO))                                                                       

Erro..:  unsuccessful metadata update
Table MOV_FECHAMENTO_RECEBER already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE GENERATOR MOV_FECHAMENTO_RECEBER_001       

Erro..:  unsuccessful metadata update
Generator MOV_FECHAMENTO_RECEBER_001 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE GENERATOR MOV_FECHAMENTO_RECEBER_002       

Erro..:  unsuccessful metadata update
Generator MOV_FECHAMENTO_RECEBER_002 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                   
FROM CAD_TELA_SISTEMA                             
WHERE NOME = 'frmmov_fechamento_contas_receber' 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_CONTAS_RECEBER                                                                            
ADD NUMERO_FECHAMENTO_RECEBER INTEGER,                                                                    
ADD FOREIGN KEY(EMPRESA, NUMERO_FECHAMENTO_RECEBER) REFERENCES MOV_FECHAMENTO_RECEBER(EMPRESA, NUMERO)    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_CONTAS_RECEBER                            
ADD VALOR_FECHAMENTO_RECEBER DOUBLE PRECISION DEFAULT 0   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_CONTAS_RECEBER                            
ADD JUROS_FECHAMENTO_RECEBER DOUBLE PRECISION DEFAULT 0   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_CONTAS_RECEBER                            
ADD SALDO_FECHAMENTO_RECEBER DOUBLE PRECISION DEFAULT 0   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TRIGGER MOV_FECHAMENTO_RECEBER_01 FOR MOV_FECHAMENTO_RECEBER                   
ACTIVE BEFORE DELETE POSITION 0                                                       
AS                                                                                    
DECLARE VARIABLE VCAIXA VARCHAR(3);                                                   
DECLARE VARIABLE VDOCUMENTO VARCHAR(2);                                               
DECLARE VARIABLE VCLIENTE INTEGER;                                                    
DECLARE VARIABLE VNUMERO INTEGER;                                                     
DECLARE VARIABLE VSERIE INTEGER;                                                      
DECLARE VARIABLE VPARCELA INTEGER;                                                    
DECLARE VARIABLE VSITUACAO_TITULO INTEGER;                                            
BEGIN                                                                                 
    /*------------------------------------------------------------------------*/      
    /************ Estornando os Ttulos do Fechamento (Vinculados) ************/      
    /*------------------------------------------------------------------------*/      
    FOR SELECT R.CAIXA, R.DOCUMENTO, R.CLIENTE, R.NUMERO, R.SERIE, R.PARCELA          
    FROM MOV_CONTAS_RECEBER R                                                         
    WHERE R.EMPRESA = OLD.EMPRESA                                                     
      AND R.NUMERO_FECHAMENTO_RECEBER = OLD.NUMERO                                    
    GROUP BY R.CAIXA, R.DOCUMENTO,  R.CLIENTE, R.NUMERO, R.SERIE, R.PARCELA           
    INTO :VCAIXA, :VDOCUMENTO, :VCLIENTE, :VNUMERO, :VSERIE, :VPARCELA                
    DO BEGIN                                                                          
        UPDATE MOV_CONTAS_RECEBER R SET                                               
        R.SALDO = UDF_FORMAT_FLOAT(R.VALOR_FECHAMENTO_RECEBER, 2),                    
        R.SALDO_LIQUIDO = UDF_FORMAT_FLOAT(R.VALOR_FECHAMENTO_RECEBER, 2),            
        NUMERO_FECHAMENTO_RECEBER = NULL,                                             
        VALOR_FECHAMENTO_RECEBER = 0,                                                 
        JUROS_FECHAMENTO_RECEBER = 0,                                                 
        SALDO_FECHAMENTO_RECEBER = 0                                                  
        WHERE R.EMPRESA = OLD.EMPRESA                                                 
          AND R.CAIXA = :VCAIXA                                                       
          AND R.DOCUMENTO = :VDOCUMENTO                                               
          AND R.CLIENTE = :VCLIENTE                                                   
          AND R.NUMERO = :VNUMERO                                                     
          AND R.SERIE = :VSERIE                                                       
          AND R.PARCELA = :VPARCELA;                                                  
    END                                                                               
END                                                                                   

Erro..:  Dynamic SQL Error
SQL error code = -104
Token unknown - line 20, column 10
?
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TRIGGER MOV_FECHAMENTO_RECEBER_02 FOR MOV_FECHAMENTO_RECEBER                   
ACTIVE AFTER DELETE POSITION 0                                                        
AS                                                                                    
BEGIN                                                                                 
    /*------------------------------------------------------------------------*/      
    /************** Excluindo as Parcelas do Contas a Receber *****************/      
    /*------------------------------------------------------------------------*/      
    DELETE FROM MOV_CONTAS_RECEBER                                                    
    WHERE EMPRESA = OLD.EMPRESA                                                       
      AND CAIXA = 'FE'                                                              
      AND DOCUMENTO = 'FE'                                                          
      AND CLIENTE = OLD.CLIENTE                                                       
      AND NUMERO = OLD.NUMERO                                                         
      AND SERIE = 1;                                                                  
END                                                                                   

Erro..:  unsuccessful metadata update
DEFINE TRIGGER failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_8"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                       
FROM CAD_TELA_SISTEMA                                 
WHERE NOME = 'frmmov_emissao_carta_aviso_debito'    

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                   
FROM CAD_TELA_SISTEMA                             
WHERE NOME = 'frmmov_inventario'                

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                   
ADD REGISTRO_JUNTA VARCHAR(20),           
ADD DATA_REGISTRO_JUNTA DATE,             
ADD REGISTRO_CONSELHO VARCHAR(20),        
ADD CPF_RESPONSAVEL VARCHAR(14)           

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                               
FROM CAD_TELA_SISTEMA                                         
WHERE NOME = 'frmrel_venda_margem_contribuicao_por_produto' 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                   
FROM CAD_TELA_SISTEMA                             
WHERE NOME = 'frmmov_emissao_aviso_embarque'    

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                       
FROM CAD_TELA_SISTEMA                                 
WHERE NOME = 'frmrel_estoque_produto_retroativo'    

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE MOV_COMPROVANTE_ENTREGA                          
(EMPRESA INTEGER NOT NULL,                                    
 NUMERO INTEGER NOT NULL,                                     
 CLIENTE INTEGER NOT NULL,                                    
 EMISSAO DATE NOT NULL,                                       
 DESCRICAO VARCHAR(80) NOT NULL,                              
 OBSERVACAO BLOB(240),                                        
 FOREIGN KEY(EMPRESA) REFERENCES CAD_EMPRESA(CADASTRO),       
 FOREIGN KEY (CLIENTE) REFERENCES CAD_PESSOA (CADASTRO),      
 PRIMARY KEY (EMPRESA, NUMERO))                               

Erro..:  unsuccessful metadata update
Table MOV_COMPROVANTE_ENTREGA already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE GENERATOR MOV_COMPROVANTE_ENTREGA_001  

Erro..:  unsuccessful metadata update
Generator MOV_COMPROVANTE_ENTREGA_001 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE GENERATOR MOV_COMPROVANTE_ENTREGA_002  

Erro..:  unsuccessful metadata update
Generator MOV_COMPROVANTE_ENTREGA_002 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                   
FROM CAD_TELA_SISTEMA                             
WHERE NOME = 'frmmov_comprovante_entrega'       

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                   
FROM CAD_TELA_SISTEMA                             
WHERE NOME = 'frmrel_privilegio_acesso'         

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                   
FROM CAD_TELA_SISTEMA                             
WHERE NOME = 'frmrel_prazo_medio_compra_venda'  

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                   
FROM CAD_TELA_SISTEMA                             
WHERE NOME = 'frmrel_venda_diaria_resumido'     

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                   
FROM CAD_TELA_SISTEMA                             
WHERE NOME = 'frmrel_venda_diaria_detalhado'    

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                                           
ADD UTILIZA_CONTRATO_MANUTENCAO VARCHAR(1) DEFAULT '1' NOT NULL 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_PESSOA                                            
ADD CLI_CONTRATO_MANUTENCAO VARCHAR(1) DEFAULT '1' NOT NULL     

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_PESSOA                            
ADD CLI_DIA_CONTRATO_MANUTENCAO INTEGER           

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_PESSOA                                        
ADD CLI_VALOR_CONTRATO_MANUTENCAO DOUBLE PRECISION DEFAULT 0  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE MOV_CONTRATO_MANUTENCAO                                                                  
(EMPRESA INTEGER NOT NULL,                                                                            
 NUMERO INTEGER NOT NULL,                                                                             
 EMISSAO DATE NOT NULL,                                                                               
 VALOR DOUBLE PRECISION DEFAULT 0 NOT NULL,                                                           
 VENDEDOR INTEGER NOT NULL,                                                                           
 INSTRUCAO_COBRANCA INTEGER NOT NULL,                                                                 
 CENTRO_CUSTO INTEGER NOT NULL,                                                                       
 PLANO_CONTAS VARCHAR(15) NOT NULL,                                                                   
 OBSERVACAO VARCHAR(80),                                                                              
 FOREIGN KEY(EMPRESA) REFERENCES CAD_EMPRESA(CADASTRO),                                               
 FOREIGN KEY (VENDEDOR) REFERENCES CAD_PESSOA (CADASTRO),                                             
 FOREIGN KEY (EMPRESA, INSTRUCAO_COBRANCA) REFERENCES CAD_INSTRUCAO_COBRANCA (EMPRESA, CADASTRO),     
 FOREIGN KEY (EMPRESA, CENTRO_CUSTO) REFERENCES CAD_CENTRO_CUSTO (EMPRESA, CADASTRO),                 
 FOREIGN KEY (EMPRESA, PLANO_CONTAS) REFERENCES CAD_PLANO_CONTAS (EMPRESA, CADASTRO),                 
 PRIMARY KEY (EMPRESA, NUMERO))                                                                       

Erro..:  unsuccessful metadata update
Table MOV_CONTRATO_MANUTENCAO already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE GENERATOR MOV_CONTRATO_MANUTENCAO_001      

Erro..:  unsuccessful metadata update
Generator MOV_CONTRATO_MANUTENCAO_001 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE GENERATOR MOV_CONTRATO_MANUTENCAO_002      

Erro..:  unsuccessful metadata update
Generator MOV_CONTRATO_MANUTENCAO_002 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                   
FROM CAD_TELA_SISTEMA                             
WHERE NOME = 'frmmov_contrato_manutencao'       

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TRIGGER MOV_CONTRATO_MANUTENCAO_01 FOR MOV_CONTRATO_MANUTENCAO                 
ACTIVE AFTER DELETE POSITION 0                                                        
AS                                                                                    
BEGIN                                                                                 
    /*------------------------------------------------------------------------*/      
    /************** Excluindo as Parcelas do Contas a Receber *****************/      
    /*------------------------------------------------------------------------*/      
    DELETE FROM MOV_CONTAS_RECEBER                                                    
    WHERE EMPRESA = OLD.EMPRESA                                                       
      AND CAIXA = 'CM'                                                              
      AND DOCUMENTO = 'CM'                                                          
      AND NUMERO = OLD.NUMERO                                                         
      AND SERIE = '1';                                                              
END                                                                                   

Erro..:  unsuccessful metadata update
DEFINE TRIGGER failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_8"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                                               
ADD IMPRIME_CONTRATO_COMPRA_VENDA VARCHAR(1) DEFAULT '1' NOT NULL   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE MOV_TABELA_PRECO_VENDA                           
(EMPRESA INTEGER NOT NULL,                                    
 NUMERO INTEGER NOT NULL,                                     
 EMISSAO DATE NOT NULL,                                       
 DESCRICAO VARCHAR(80) NOT NULL,                              
 INATIVO VARCHAR(1) DEFAULT '1' NOT NULL ,                  
 FOREIGN KEY(EMPRESA) REFERENCES CAD_EMPRESA(CADASTRO),       
 PRIMARY KEY (EMPRESA, NUMERO))                               

Erro..:  unsuccessful metadata update
Table MOV_TABELA_PRECO_VENDA already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE MOV_IT_TABELA_PRECO_VENDA                                                
(EMPRESA INTEGER NOT NULL,                                                            
 NUMERO INTEGER NOT NULL,                                                             
 SEQ INTEGER NOT NULL,                                                                
 PRODUTO INTEGER NOT NULL,                                                            
 CODIGO_BARRA VARCHAR(25),                                                            
 PRECO_VENDA DOUBLE PRECISION DEFAULT 0 NOT NULL,                                     
 FOREIGN KEY(EMPRESA, NUMERO) REFERENCES MOV_TABELA_PRECO_VENDA(EMPRESA, NUMERO),     
 FOREIGN KEY(EMPRESA, PRODUTO) REFERENCES CAD_PRODUTO(EMPRESA, CADASTRO),             
 PRIMARY KEY (EMPRESA, NUMERO, SEQ))                                                  

Erro..:  unsuccessful metadata update
Table MOV_IT_TABELA_PRECO_VENDA already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE GENERATOR MOV_TABELA_PRECO_VENDA_001       

Erro..:  unsuccessful metadata update
Generator MOV_TABELA_PRECO_VENDA_001 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE GENERATOR MOV_TABELA_PRECO_VENDA_002       

Erro..:  unsuccessful metadata update
Generator MOV_TABELA_PRECO_VENDA_002 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TRIGGER MOV_TABELA_PRECO_VENDA_01 FOR MOV_TABELA_PRECO_VENDA   
ACTIVE BEFORE DELETE POSITION 0                                       
AS                                                                    
BEGIN                                                                 
    DELETE FROM MOV_IT_TABELA_PRECO_VENDA                             
    WHERE EMPRESA = OLD.EMPRESA                                       
      AND NUMERO = OLD.NUMERO;                                        
END                                                                   

Erro..:  unsuccessful metadata update
DEFINE TRIGGER failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_8"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TRIGGER MOV_IT_TABELA_PRECO_VENDA_01 FOR MOV_IT_TABELA_PRECO_VENDA             
ACTIVE BEFORE INSERT POSITION 0                                                       
AS                                                                                    
DECLARE VARIABLE VSEQ INTEGER;                                                        
BEGIN                                                                                 
    /*------------------------------------------------------------------------*/      
    /**** Definindo a Chave Primaria dos Itens da Tabela do Preo de Venda ****/      
    /*------------------------------------------------------------------------*/      
    SELECT MAX(SEQ) SEQ                                                               
    FROM MOV_IT_TABELA_PRECO_VENDA                                                    
    WHERE EMPRESA = NEW.EMPRESA                                                       
      AND NUMERO = NEW.NUMERO                                                         
    INTO VSEQ;                                                                        
                                                                                      
    IF (VSEQ IS NULL) THEN                                                            
    BEGIN                                                                             
        VSEQ = 0;                                                                     
    END                                                                               
    NEW.SEQ = VSEQ + 1;                                                               
END                                                                                   

Erro..:  unsuccessful metadata update
DEFINE TRIGGER failed
Malformed string
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                   
FROM CAD_TELA_SISTEMA                             
WHERE NOME = 'frmmov_tabela_preco_venda'        

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                                           
ADD UTILIZA_TABELA_PRECO_VENDA VARCHAR(1) DEFAULT '1' NOT NULL  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_PEDIDO_VENDA                                                                      
ADD TABELA_PRECO_VENDA INTEGER,                                                                   
ADD FOREIGN KEY(EMPRESA, TABELA_PRECO_VENDA) REFERENCES MOV_TABELA_PRECO_VENDA(EMPRESA, NUMERO)   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_VENDA                                                                 
ADD TABELA_PRECO_VENDA INTEGER,                                                                   
ADD FOREIGN KEY(EMPRESA, TABELA_PRECO_VENDA) REFERENCES MOV_TABELA_PRECO_VENDA(EMPRESA, NUMERO)   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_PRODUTO                                       
ADD FORNECEDOR INTEGER,                                       
ADD FOREIGN KEY(FORNECEDOR) REFERENCES CAD_PESSOA(CADASTRO)   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                   
FROM CAD_TELA_SISTEMA                             
WHERE NOME = 'frmrel_estoque_produto_por_grade' 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE MOV_CONTROLE_VALE_PRESENTE                                                           
(EMPRESA INTEGER NOT NULL,                                                                        
 NUMERO INTEGER NOT NULL,                                                                         
 EMISSAO DATE NOT NULL,                                                                           
 CLIENTE INTEGER NOT NULL,                                                                        
 VENDEDOR INTEGER NOT NULL,                                                                       
 INSTRUCAO_COBRANCA INTEGER NOT NULL,                                                             
 FORMA_PAGAMENTO VARCHAR(50),                                                                     
 OBSERVACAO BLOB(240),                                                                            
 FOREIGN KEY(EMPRESA) REFERENCES CAD_EMPRESA(CADASTRO),                                           
 FOREIGN KEY(CLIENTE) REFERENCES CAD_PESSOA(CADASTRO),                                            
 FOREIGN KEY(VENDEDOR) REFERENCES CAD_PESSOA(CADASTRO),                                           
 FOREIGN KEY(EMPRESA, INSTRUCAO_COBRANCA) REFERENCES CAD_INSTRUCAO_COBRANCA(EMPRESA, CADASTRO),   
 PRIMARY KEY (EMPRESA, NUMERO))                                                                   

Erro..:  unsuccessful metadata update
Table MOV_CONTROLE_VALE_PRESENTE already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE GENERATOR MOV_CONTROLE_VALE_PRESENTE_001   

Erro..:  unsuccessful metadata update
Generator MOV_CONTROLE_VALE_PRESENTE_001 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE GENERATOR MOV_CONTROLE_VALE_PRESENTE_002   

Erro..:  unsuccessful metadata update
Generator MOV_CONTROLE_VALE_PRESENTE_002 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE MOV_IT_CONTROLE_VALE_PRESENTE                                            
(EMPRESA INTEGER NOT NULL,                                                            
 NUMERO INTEGER NOT NULL,                                                             
 SEQ INTEGER NOT NULL,                                                                
 PRODUTO INTEGER NOT NULL,                                                            
 NOME_CLIENTE VARCHAR(80) NOT NULL,                                                   
 QUANTIDADE DOUBLE PRECISION DEFAULT 0 NOT NULL,                                      
 QUANTIDADE_BAIXADA DOUBLE PRECISION DEFAULT 0 NOT NULL,                              
 SITUACAO VARCHAR(10) DEFAULT 'Pendente' NOT NULL,                                  
 FOREIGN KEY(EMPRESA, NUMERO) REFERENCES MOV_CONTROLE_VALE_PRESENTE(EMPRESA, NUMERO), 
 FOREIGN KEY(EMPRESA, PRODUTO) REFERENCES CAD_PRODUTO(EMPRESA, CADASTRO),             
 PRIMARY KEY (EMPRESA, NUMERO, SEQ))                                                  

Erro..:  unsuccessful metadata update
Table MOV_IT_CONTROLE_VALE_PRESENTE already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                   
FROM CAD_TELA_SISTEMA                             
WHERE NOME = 'frmmov_controle_vale_presente'    

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TRIGGER MOV_CONTROLE_VALE_PRESENTE_01 FOR MOV_CONTROLE_VALE_PRESENTE   
ACTIVE BEFORE DELETE POSITION 0                                               
AS                                                                            
BEGIN                                                                         
    DELETE FROM MOV_IT_CONTROLE_VALE_PRESENTE                                 
    WHERE EMPRESA = OLD.EMPRESA                                               
      AND NUMERO = OLD.NUMERO;                                                
END                                                                           

Erro..:  unsuccessful metadata update
DEFINE TRIGGER failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_8"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE PARAMETRO_SISTEMA                     
ADD DIRETORIO_FTP VARCHAR(100)                    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                                         
ADD USA_VEICULO_PEDIDO_VENDA VARCHAR(1) DEFAULT '1' NOT NULL  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                                             
ADD USA_EQUIPAMENTO_PEDIDO_VENDA VARCHAR(1) DEFAULT '1' NOT NULL  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_PEDIDO_VENDA                                                  
ADD VEICULO INTEGER,                                                          
ADD FOREIGN KEY(EMPRESA, VEICULO) REFERENCES CAD_VEICULO(EMPRESA, CADASTRO)   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_PEDIDO_VENDA                                                          
ADD EQUIPAMENTO INTEGER,                                                              
ADD FOREIGN KEY(EMPRESA, EQUIPAMENTO) REFERENCES CAD_EQUIPAMENTO(EMPRESA, CADASTRO)   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                   
FROM CAD_TELA_SISTEMA                             
WHERE NOME = 'frmrel_carga_por_rota'            

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                                                    
ADD OPCAO_IMPRESSAO_PEDIDO_VENDA VARCHAR(10) DEFAULT 'Folha A4' NOT NULL 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                      
FROM CAD_TELA_SISTEMA                                
WHERE NOME = 'frmrel_estoque_produto_carregamento' 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_PEDIDO_VENDA                   
ADD PRECO_CUSTO DOUBLE PRECISION DEFAULT 0        

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
UPDATE MOV_IT_PEDIDO_VENDA SET                    
PRECO_CUSTO = 0                                   
WHERE PRECO_CUSTO IS NULL                         

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_PEDIDO_VENDA                   
ADD CUSTO_MEDIO DOUBLE PRECISION DEFAULT 0        

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
UPDATE MOV_IT_PEDIDO_VENDA SET                    
CUSTO_MEDIO = 0                                   
WHERE CUSTO_MEDIO IS NULL                         

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                           
ADD TIPO_GERACAO_CODIGO_BARRA VARCHAR(15)         

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                           
ADD PREFIXO_CODIGO_BARRA_EAN13 INTEGER            

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                       
FROM CAD_TELA_SISTEMA                                 
WHERE NOME = 'frmmov_gera_codigo_barra'             

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                                               
ADD USA_ORCAMENTO_ORDEM_SERVICO VARCHAR(1) DEFAULT '1' NOT NULL     

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                       
FROM CAD_TELA_SISTEMA                                 
WHERE NOME = 'frmrel_pedido_venda_resumido_mensal'  

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_NATUREZA_OPERACAO                                 
ADD INCIDE_SUBST_TRIBUTARIA VARCHAR(1) DEFAULT '1' NOT NULL     

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_VENDA_PRODUTO                     
ADD MVA_SUBST_TRIBUTARIA DOUBLE PRECISION DEFAULT 0       

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                                                            
ADD OPCAO_ASSINATURA_PEDIDO_VENDA VARCHAR(20) DEFAULT 'Nome do Usurio' NOT NULL 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
Malformed string
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_NATUREZA_OPERACAO                                         
ADD GERA_CREDITO_DEBITO_SUBST_TRIB VARCHAR(1) DEFAULT '1' NOT NULL      

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_VENDA_PRODUTO                             
ADD BASE_DEBITO_SUBST_TRIBUTARIA DOUBLE PRECISION DEFAULT 0       

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
UPDATE MOV_IT_NOTA_VENDA_PRODUTO SET          
BASE_DEBITO_SUBST_TRIBUTARIA = 0              
WHERE BASE_DEBITO_SUBST_TRIBUTARIA IS NULL    

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_VENDA_PRODUTO                             
ADD VALOR_DEBITO_SUBST_TRIBUTARIA DOUBLE PRECISION DEFAULT 0      

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
UPDATE MOV_IT_NOTA_VENDA_PRODUTO SET          
VALOR_DEBITO_SUBST_TRIBUTARIA = 0             
WHERE VALOR_DEBITO_SUBST_TRIBUTARIA IS NULL   

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_VENDA                                 
ADD BASE_DEBITO_SUBST_TRIBUTARIA DOUBLE PRECISION DEFAULT 0       

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
UPDATE MOV_NOTA_FISCAL_VENDA SET              
BASE_DEBITO_SUBST_TRIBUTARIA = 0              
WHERE BASE_DEBITO_SUBST_TRIBUTARIA IS NULL    

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_VENDA                                 
ADD VALOR_DEBITO_SUBST_TRIBUTARIA DOUBLE PRECISION DEFAULT 0      

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
UPDATE MOV_NOTA_FISCAL_VENDA SET              
VALOR_DEBITO_SUBST_TRIBUTARIA = 0             
WHERE VALOR_DEBITO_SUBST_TRIBUTARIA IS NULL   

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE GENERATOR MOV_TABELA_PRECO_PROMOCAO_001    

Erro..:  unsuccessful metadata update
Generator MOV_TABELA_PRECO_PROMOCAO_001 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE GENERATOR MOV_TABELA_PRECO_PROMOCAO_002    

Erro..:  unsuccessful metadata update
Generator MOV_TABELA_PRECO_PROMOCAO_002 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
DROP GENERATOR MOV_TABELA_PRECO_PROMOCAO_01       

Erro..:  unsuccessful metadata update
Generator MOV_TABELA_PRECO_PROMOCAO_01 not found
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
DROP GENERATOR MOV_TABELA_PRECO_PROMOCAO_02       

Erro..:  unsuccessful metadata update
Generator MOV_TABELA_PRECO_PROMOCAO_02 not found
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                                           
ADD TAMANHO_ETIQUETA VARCHAR(100) DEFAULT 'Gndula 01 Coluna'   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
Malformed string
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                               
FROM CAD_TELA_SISTEMA                                         
WHERE NOME = 'frmmov_emissao_codigo_barra_grade_produto'    

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                                           
ADD DIAS_ATRASO_SPC INTEGER                                       

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                           
ADD ENQUADRAMENTO_TRIBUTARIO VARCHAR(20)          

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                                       
ADD ALIQUOTA_ICMS_SIMPLES_NACIONAL DOUBLE PRECISION DEFAULT 0 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_VENDA_PRODUTO                             
ADD ALIQUOTA_DEBITO_ICMS DOUBLE PRECISION DEFAULT 0               

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
UPDATE MOV_IT_NOTA_VENDA_PRODUTO SET              
ALIQUOTA_DEBITO_ICMS = 0                          
WHERE ALIQUOTA_DEBITO_ICMS IS NULL                

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_VENDA_PRODUTO                             
ADD BASE_DEBITO_ICMS DOUBLE PRECISION DEFAULT 0                   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
UPDATE MOV_IT_NOTA_VENDA_PRODUTO SET          
BASE_DEBITO_ICMS = 0                          
WHERE BASE_DEBITO_ICMS IS NULL                

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_VENDA_PRODUTO                             
ADD VALOR_DEBITO_ICMS DOUBLE PRECISION DEFAULT 0                  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
UPDATE MOV_IT_NOTA_VENDA_PRODUTO SET          
VALOR_DEBITO_ICMS = 0                         
WHERE VALOR_DEBITO_ICMS IS NULL               

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_VENDA                                 
ADD BASE_DEBITO_ICMS DOUBLE PRECISION DEFAULT 0                   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
UPDATE MOV_NOTA_FISCAL_VENDA SET              
BASE_DEBITO_ICMS = 0                          
WHERE BASE_DEBITO_ICMS IS NULL                

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_VENDA                                 
ADD VALOR_DEBITO_ICMS DOUBLE PRECISION DEFAULT 0                  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
UPDATE MOV_NOTA_FISCAL_VENDA SET              
VALOR_DEBITO_ICMS = 0                         
WHERE VALOR_DEBITO_ICMS IS NULL               

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_PRODUTO                                           
ADD BAIXA_ESTOQUE_COMPOSICAO VARCHAR(1) DEFAULT '1' NOT NULL    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                                              
 ADD IMPRIME_COMPROVANTE_NAO_FISCAL VARCHAR(1) DEFAULT '2' NOT NULL 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_IT_NOTA_VENDA_PRODUTO                        
 ADD REDUCAO_SUBST_TRIBUTARIA DOUBLE PRECISION DEFAULT 0		

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
UPDATE MOV_IT_NOTA_VENDA_PRODUTO SET              
REDUCAO_SUBST_TRIBUTARIA = 0                      
WHERE REDUCAO_SUBST_TRIBUTARIA IS NULL            

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE CAD_MODELO_ETIQUETA                          
 (EMPRESA INTEGER NOT NULL,                               
 CADASTRO INTEGER NOT NULL,                               
 DESCRICAO VARCHAR(50) NOT NULL,                          
 COLUNA_ETIQUETA INTEGER DEFAULT 1 NOT NULL,              
 PORTA_COMUNICACAO VARCHAR(50) NOT NULL,                  
 INATIVO VARCHAR(1) DEFAULT '1' NOT NULL,               
 FOREIGN KEY(EMPRESA) REFERENCES CAD_EMPRESA(CADASTRO),   
 PRIMARY KEY (EMPRESA, CADASTRO))                         

Erro..:  unsuccessful metadata update
Table CAD_MODELO_ETIQUETA already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE GENERATOR CAD_MODELO_ETIQUETA_001     

Erro..:  unsuccessful metadata update
Generator CAD_MODELO_ETIQUETA_001 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE GENERATOR CAD_MODELO_ETIQUETA_002     

Erro..:  unsuccessful metadata update
Generator CAD_MODELO_ETIQUETA_002 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                           
FROM CAD_TELA_SISTEMA                     
WHERE NOME = 'frmcad_modelo_etiqueta'   

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                                              
 ADD EMPENHA_ESTOQUE_PEDIDO_VENDA VARCHAR(1) DEFAULT '2' NOT NULL   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_FRENTE_CAIXA                                         
 ADD DIGITA_QUANTIDADE_CUPOM_FISCAL VARCHAR(1) DEFAULT '1' NOT NULL 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                  
 DROP DIGITA_QUANTIDADE_CUPOM_FISCAL      

Erro..:  unsuccessful metadata update
column DIGITA_QUANTIDADE_CUPOM_FISCAL does not exist in table/view CAD_EMPRESA
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_FRENTE_CAIXA                                                                                                                     
 ADD TIPO_CONTROLE_FINANCEIRO_PDV VARCHAR(80) DEFAULT 'Utiliza a Conta / Forma de Pagamento do Frente de Caixa na Baixa de Ttulos' NOT NULL    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
Malformed string
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                  
 DROP TIPO_CONTROLE_FINANCEIRO_PDV        

Erro..:  unsuccessful metadata update
column TIPO_CONTROLE_FINANCEIRO_PDV does not exist in table/view CAD_EMPRESA
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                   
FROM CAD_TELA_SISTEMA                             
WHERE NOME = 'frmrel_cartao_fidelidade_cliente' 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE CAD_OBSERVACAO_FISCAL                            
(EMPRESA INTEGER NOT NULL,                                    
 CADASTRO INTEGER NOT NULL,                                   
 DESCRICAO BLOB(240),                                         
 INATIVO VARCHAR(1) DEFAULT '1' NOT NULL,                   
 FOREIGN KEY(EMPRESA) REFERENCES CAD_EMPRESA(CADASTRO),       
 PRIMARY KEY (EMPRESA, CADASTRO))                             

Erro..:  unsuccessful metadata update
Table CAD_OBSERVACAO_FISCAL already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                       
FROM CAD_TELA_SISTEMA                                 
WHERE NOME = 'frmcad_observacao_lancamento_fiscal'  

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE GENERATOR CAD_OBSERVACAO_FISCAL_001        

Erro..:  unsuccessful metadata update
Generator CAD_OBSERVACAO_FISCAL_001 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE GENERATOR CAD_OBSERVACAO_FISCAL_002        

Erro..:  unsuccessful metadata update
Generator CAD_OBSERVACAO_FISCAL_002 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_NOTA_FISCAL_VENDA                
 ADD TIPO_NOTA VARCHAR(3) DEFAULT 'NF' NOT NULL 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_VEICULO          
 ADD FROTA_VEICULO INTEGER        

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_ORDEM_SERVICO                                            
 ADD TIPO_ORDEM_SERVICO_MECANICA VARCHAR(20) DEFAULT 'Normal' NOT NULL  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE CAD_REGIME_TRIBUTARIO                            
(CADASTRO INTEGER NOT NULL,                                   
 DESCRICAO VARCHAR(50) NOT NULL,                              
 INATIVO VARCHAR(1) DEFAULT '1' NOT NULL,                   
 PRIMARY KEY (CADASTRO))                                      

Erro..:  unsuccessful metadata update
Table CAD_REGIME_TRIBUTARIO already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE GENERATOR CAD_REGIME_TRIBUTARIO        

Erro..:  unsuccessful metadata update
Generator CAD_REGIME_TRIBUTARIO already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                               
FROM CAD_TELA_SISTEMA                         
WHERE NOME = 'frmcad_regime_tributario'     

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE CAD_TRIBUTO_SIMPLES_NACIONAL                     
(CADASTRO VARCHAR(3) NOT NULL,                                
 DESCRICAO VARCHAR(100) NOT NULL,                             
 INATIVO VARCHAR(1) DEFAULT '1' NOT NULL,                   
 PRIMARY KEY (CADASTRO))                                      

Erro..:  unsuccessful metadata update
Table CAD_TRIBUTO_SIMPLES_NACIONAL already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                   
FROM CAD_TELA_SISTEMA                             
WHERE NOME = 'frmcad_tributo_simples_nacional'  

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_NATUREZA_OPERACAO                                                             
ADD TRIBUTO_SIMPLES_NACIONAL VARCHAR(3),                                                      
ADD FOREIGN KEY(TRIBUTO_SIMPLES_NACIONAL) REFERENCES CAD_TRIBUTO_SIMPLES_NACIONAL(CADASTRO)   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_VENDA_PRODUTO                                                         
ADD TRIBUTO_SIMPLES_NACIONAL VARCHAR(3),                                                      
ADD FOREIGN KEY(TRIBUTO_SIMPLES_NACIONAL) REFERENCES CAD_TRIBUTO_SIMPLES_NACIONAL(CADASTRO)   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                                                                   
ADD REGIME_TRIBUTARIO_NOTA_VENDA INTEGER,                                                 
ADD FOREIGN KEY(REGIME_TRIBUTARIO_NOTA_VENDA) REFERENCES CAD_REGIME_TRIBUTARIO(CADASTRO)  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_VENDA                                             
ADD REGIME_TRIBUTARIO INTEGER,                                                
ADD FOREIGN KEY(REGIME_TRIBUTARIO) REFERENCES CAD_REGIME_TRIBUTARIO(CADASTRO) 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                   
FROM CAD_TELA_SISTEMA                             
WHERE NOME = 'frmrel_venda_tributo_icms'        

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                        
FROM CAD_TELA_SISTEMA                                  
WHERE NOME = 'frmmov_alteracao_preco_tabela_produto' 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_FRENTE_CAIXA                                                                         
 ADD TIPO_CREDIARIO_CUPOM_FISCAL VARCHAR(50) DEFAULT 'Parcela(s) Definida(s) pelo Usurio' NOT NULL 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
Malformed string
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA              
 DROP TIPO_CREDIARIO_CUPOM_FISCAL     

Erro..:  unsuccessful metadata update
column TIPO_CREDIARIO_CUPOM_FISCAL does not exist in table/view CAD_EMPRESA
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                                      
 ADD USA_MARKUP_PRECO_VENDA VARCHAR(1) DEFAULT '1' NOT NULL 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_PRODUTO                              
 ADD PERCENTUAL_LUCRO DOUBLE PRECISION DEFAULT 0      

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_PRODUTO                      
 ADD MARKUP DOUBLE PRECISION DEFAULT 0        

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE CAD_PRODUTO SET               
 PERCENTUAL_LUCRO = 0                 
 WHERE PERCENTUAL_LUCRO IS NULL       

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE CAD_PRODUTO SET               
 MARKUP = PERCENTUAL_LUCRO            
 WHERE MARKUP IS NULL                 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_UNIDADE_MEDIDA_PRODUTO               
 ADD FATOR_CONVERSAO DOUBLE PRECISION DEFAULT 0       

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                            
FROM CAD_TELA_SISTEMA                      
WHERE NOME = 'frmmov_exportacao_produto' 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE CAD_SITUACAO_DOCUMENTO_FISCAL            
(CADASTRO INTEGER NOT NULL,                           
 DESCRICAO VARCHAR(100) NOT NULL,                     
 INATIVO VARCHAR(1) DEFAULT '1' NOT NULL,           
 PRIMARY KEY (CADASTRO))                              

Erro..:  unsuccessful metadata update
Table CAD_SITUACAO_DOCUMENTO_FISCAL already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                   
FROM CAD_TELA_SISTEMA                             
WHERE NOME = 'frmcad_situacao_documento_fiscal' 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE CAD_MODELO_DOCUMENTO_FISCAL              
(CADASTRO VARCHAR(2) NOT NULL,                        
 DESCRICAO VARCHAR(100) NOT NULL,                     
 INATIVO VARCHAR(1) DEFAULT '1' NOT NULL,           
 PRIMARY KEY (CADASTRO))                              

Erro..:  unsuccessful metadata update
Table CAD_MODELO_DOCUMENTO_FISCAL already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                   
FROM CAD_TELA_SISTEMA                             
WHERE NOME = 'frmcad_modelo_documento_fiscal'   

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE CAD_INDICADOR_TIPO_PAGAMENTO          
(CADASTRO INTEGER NOT NULL,                        
 DESCRICAO VARCHAR(50) NOT NULL,                   
 INATIVO VARCHAR(1) DEFAULT '1' NOT NULL,        
 PRIMARY KEY (CADASTRO))                           

Erro..:  unsuccessful metadata update
Table CAD_INDICADOR_TIPO_PAGAMENTO already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                   
FROM CAD_TELA_SISTEMA                             
WHERE NOME = 'frmcad_indicador_tipo_pagamento'  

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_IT_NOTA_FISCAL_COMPRA_01                                                                                                        
ACTIVE BEFORE INSERT POSITION 0                                                                                                                   
AS                                                                                                                                                
DECLARE VARIABLE VSEQ INTEGER;                                                                                                                    
DECLARE VARIABLE VPRODUTO INTEGER;                                                                                                                
DECLARE VARIABLE VESTOQUE REAL;                                                                                                                   
DECLARE VARIABLE VPRECO_CUSTO REAL;                                                                                                               
DECLARE VARIABLE VCUSTO_MEDIO REAL;                                                                                                               
DECLARE VARIABLE VPRECO_VENDA REAL;                                                                                                               
DECLARE VARIABLE VNUMERO_NOTA_FISCAL_COMPRA INTEGER;                                                                                              
DECLARE VARIABLE VMARKUP REAL;                                                                                                                    
DECLARE VARIABLE VUSA_MARKUP_PRECO_VENDA VARCHAR(1);                                                                                              
BEGIN                                                                                                                                             
    /*------------------------------------------------------------------------*/                                                                  
    /****** Definindo a Chave Primaria dos Itens da Nota Fiscal de Compra *****/                                                                  
    /*------------------------------------------------------------------------*/                                                                  
    SELECT MAX(SEQ) SEQ                                                                                                                           
    FROM MOV_IT_NOTA_FISCAL_COMPRA                                                                                                                
    WHERE EMPRESA = NEW.EMPRESA                                                                                                                   
      AND NUMERO = NEW.NUMERO                                                                                                                     
    INTO VSEQ;                                                                                                                                    
                                                                                                                                                  
    IF (VSEQ IS NULL) THEN                                                                                                                        
    BEGIN                                                                                                                                         
        VSEQ = 0;                                                                                                                                 
    END                                                                                                                                           
    NEW.SEQ = VSEQ + 1;                                                                                                                           
                                                                                                                                                  
    /*------------------------------------------------------------------------*/                                                                  
    /************ Verificando se o Cdigo do Produto foi lanado **************/                                                                  
    /***************** mais de uma vez na mesma Nota Fiscal *******************/                                                                  
    /*------------------------------------------------------------------------*/                                                                  
    IF ((NEW.PRODUTO IS NOT NULL) AND (NEW.PRODUTO > 0)) THEN                                                                                     
    BEGIN                                                                                                                                         
        VPRODUTO = 0;                                                                                                                             
                                                                                                                                                  
        FOR SELECT I.PRECO_CUSTO_ANTERIOR, I.CUSTO_MEDIO_ANTERIOR, I.ESTOQUE_ANTERIOR, I.NUMERO_NOTA_COMPRA_ANTERIOR                              
        FROM MOV_IT_NOTA_FISCAL_COMPRA I                                                                                                          
        WHERE I.EMPRESA = NEW.EMPRESA                                                                                                             
          AND I.NUMERO = NEW.NUMERO                                                                                                               
          AND I.PRODUTO = NEW.PRODUTO                                                                                                             
        ORDER BY I.SEQ                                                                                                                            
        INTO :VPRECO_CUSTO, :VCUSTO_MEDIO, :VESTOQUE, :VNUMERO_NOTA_FISCAL_COMPRA                                                                 
                                                                                                                                                  
        DO BEGIN                                                                                                                                  
            VPRODUTO = 1;                                                                                                                         
        END                                                                                                                                       
                                                                                                                                                  
        /*--------------------------------------------------------------------*/                                                                  
        /******* Guardando o Preo de Custo, Custo Mdio, Estoque e  **********/                                                                  
        /**** a Nota Fiscal do Produto nos Itens da Nota Fiscal de Compra *****/                                                                  
        /*--------------------------------------------------------------------*/                                                                  
        IF (VPRODUTO = 0) THEN                                                                                                                    
        BEGIN                                                                                                                                     
            SELECT PRECO_CUSTO, CUSTO_MEDIO, ESTOQUE, NUMERO_NOTA_FISCAL_COMPRA                                                                   
            FROM CAD_PRODUTO                                                                                                                      
            WHERE EMPRESA = NEW.EMPRESA                                                                                                           
              AND CADASTRO = NEW.PRODUTO                                                                                                          
            INTO :VPRECO_CUSTO, :VCUSTO_MEDIO, :VESTOQUE, :VNUMERO_NOTA_FISCAL_COMPRA;                                                            
        END                                                                                                                                       
                                                                                                                                                  
        NEW.PRECO_CUSTO_ANTERIOR = VPRECO_CUSTO;                                                                                                  
        NEW.CUSTO_MEDIO_ANTERIOR = VCUSTO_MEDIO;                                                                                                  
        NEW.ESTOQUE_ANTERIOR = VESTOQUE;                                                                                                          
        NEW.NUMERO_NOTA_COMPRA_ANTERIOR = VNUMERO_NOTA_FISCAL_COMPRA;                                                                             
                                                                                                                                                  
        /*--------------------------------------------------------------------*/                                                                  
        /*** Guardando o Preo de Venda nos Itens da Nota Fiscal de Compra ****/                                                                  
        /*--------------------------------------------------------------------*/                                                                  
        SELECT PRECO_VENDA, MARKUP                                                                                                                
        FROM CAD_PRODUTO                                                                                                                          
        WHERE EMPRESA = NEW.EMPRESA                                                                                                               
          AND CADASTRO = NEW.PRODUTO                                                                                                              
        INTO :VPRECO_VENDA, :VMARKUP;                                                                                                             
                                                                                                                                                  
        /*--------------------------------------------------------------------*/                                                                  
        /**** Calculando o Percentual de Lucro Itens Nota Fiscal de Compra ****/                                                                  
        /*--------------------------------------------------------------------*/                                                                  
        VPRECO_CUSTO = (NEW.VALOR + NEW.VALOR_FRETE_RATEADO + NEW.VALOR_CONHEC_FRETE_RATEADO + NEW.VALOR_DESPESA_RATEADO + NEW.VALOR_IPI_RATEADO  
                      + NEW.VALOR_SUBSTITUICAO_RATEADO - NEW.VALOR_DESCONTO_PRODUTO_RATEADO - NEW.VALOR_DESCONTO_NOTA_RATEADO);                   
                                                                                                                                                  
        SELECT USA_MARKUP_PRECO_VENDA                                                                                                             
        FROM CAD_EMPRESA                                                                                                                          
        WHERE CADASTRO = NEW.EMPRESA                                                                                                              
        INTO :VUSA_MARKUP_PRECO_VENDA;                                                                                                            
                                                                                                                                                  
        IF (VUSA_MARKUP_PRECO_VENDA = '2') THEN                                                                                                 
        BEGIN                                                                                                                                     
            NEW.PRECO_VENDA_ANTERIOR = UDF_FORMAT_FLOAT(VPRECO_VENDA, 2);                                                                         
            NEW.PERCENTUAL_LUCRO = UDF_FORMAT_FLOAT(VMARKUP, 2);                                                                                  
                                                                                                                                                  
            IF ((VPRECO_CUSTO > 0) AND (VMARKUP > 0)) THEN                                                                                        
            BEGIN                                                                                                                                 
                NEW.PRECO_VENDA = UDF_FORMAT_FLOAT((VPRECO_CUSTO + ((VMARKUP / 100) * VPRECO_CUSTO)), 2);                                         
            END                                                                                                                                   
            ELSE BEGIN                                                                                                                            
                NEW.PRECO_VENDA = UDF_FORMAT_FLOAT(VPRECO_VENDA, 2);                                                                              
            END                                                                                                                                   
                                                                                                                                                  
            IF ((NEW.PRECO_VENDA > 0) AND (NEW.PRECO_VENDA_ANTERIOR > 0)) THEN                                                                    
            BEGIN                                                                                                                                 
                NEW.PERCENTUAL_REAJUSTE = UDF_FORMAT_FLOAT((((NEW.PRECO_VENDA - NEW.PRECO_VENDA_ANTERIOR) / NEW.PRECO_VENDA_ANTERIOR) * 100), 2); 
            END                                                                                                                                   
            ELSE BEGIN                                                                                                                            
                NEW.PERCENTUAL_REAJUSTE = 0;                                                                                                      
            END                                                                                                                                   
        END                                                                                                                                       
        ELSE BEGIN                                                                                                                                
            NEW.PRECO_VENDA = UDF_FORMAT_FLOAT(VPRECO_VENDA, 2);                                                                                  
            NEW.PRECO_VENDA_ANTERIOR = UDF_FORMAT_FLOAT(VPRECO_VENDA, 2);                                                                         
                                                                                                                                                  
            IF ((NEW.PRECO_VENDA > 0) AND (VPRECO_CUSTO > 0)) THEN                                                                                
            BEGIN                                                                                                                                 
                NEW.PERCENTUAL_LUCRO = UDF_FORMAT_FLOAT((((NEW.PRECO_VENDA - VPRECO_CUSTO) / VPRECO_CUSTO) * 100), 2);                            
            END                                                                                                                                   
            ELSE BEGIN                                                                                                                            
                NEW.PERCENTUAL_LUCRO = 0;                                                                                                         
            END                                                                                                                                   
        END                                                                                                                                       
    END                                                                                                                                           
    ELSE BEGIN                                                                                                                                    
        NEW.PRECO_CUSTO_ANTERIOR = 0;                                                                                                             
        NEW.CUSTO_MEDIO_ANTERIOR = 0;                                                                                                             
        NEW.ESTOQUE_ANTERIOR = 0;                                                                                                                 
        NEW.NUMERO_NOTA_COMPRA_ANTERIOR = NULL;                                                                                                   
    END                                                                                                                                           
END                                                                                                                                               

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_IT_NOTA_FISCAL_COMPRA_03                                                                                                                                               
ACTIVE BEFORE UPDATE POSITION 0                                                                                                                                                          
AS                                                                                                                                                                                       
DECLARE VARIABLE VPRODUTO INTEGER;                                                                                                                                                       
DECLARE VARIABLE VESTOQUE REAL;                                                                                                                                                          
DECLARE VARIABLE VPRECO_CUSTO REAL;                                                                                                                                                      
DECLARE VARIABLE VCUSTO_MEDIO REAL;                                                                                                                                                      
DECLARE VARIABLE VPRECO_VENDA REAL;                                                                                                                                                      
DECLARE VARIABLE VNUMERO_NOTA_FISCAL_COMPRA INTEGER;                                                                                                                                     
DECLARE VARIABLE VMARKUP REAL;                                                                                                                                                           
DECLARE VARIABLE VUSA_MARKUP_PRECO_VENDA VARCHAR(1);                                                                                                                                     
BEGIN                                                                                                                                                                                    
    IF (((NEW.PRODUTO <> OLD.PRODUTO)                                                                                                                                                    
    OR ((NEW.PRODUTO IS NULL) AND (OLD.PRODUTO IS NOT NULL))                                                                                                                             
    OR ((NEW.PRODUTO IS NOT NULL) AND (OLD.PRODUTO IS NULL)))) THEN                                                                                                                      
    BEGIN                                                                                                                                                                                
        NEW.PRECO_VENDA = 0;                                                                                                                                                             
        NEW.PRECO_VENDA_ANTERIOR = 0;                                                                                                                                                    
        NEW.PERCENTUAL_LUCRO = 0;                                                                                                                                                        
        NEW.PERCENTUAL_REAJUSTE = 0;                                                                                                                                                     
                                                                                                                                                                                         
        IF ((NEW.PRODUTO IS NOT NULL) AND (NEW.PRODUTO > 0)) THEN                                                                                                                        
        BEGIN                                                                                                                                                                            
            /*----------------------------------------------------------------*/                                                                                                         
            /**** Guardando Preo Venda nos Itens da Nota Fiscal de Compra ****/                                                                                                         
            /*----------------------------------------------------------------*/                                                                                                         
            SELECT PRECO_VENDA, MARKUP                                                                                                                                                   
            FROM CAD_PRODUTO                                                                                                                                                             
            WHERE EMPRESA = NEW.EMPRESA                                                                                                                                                  
              AND CADASTRO = NEW.PRODUTO                                                                                                                                                 
            INTO :VPRECO_VENDA, :VMARKUP;                                                                                                                                                
                                                                                                                                                                                         
            /*----------------------------------------------------------------*/                                                                                                         
            /** Calculando o Percentual de Lucro Itens Nota Fiscal de Compra **/                                                                                                         
            /*----------------------------------------------------------------*/                                                                                                         
            VPRECO_CUSTO = (NEW.VALOR + NEW.VALOR_FRETE_RATEADO + NEW.VALOR_CONHEC_FRETE_RATEADO + NEW.VALOR_DESPESA_RATEADO + NEW.VALOR_IPI_RATEADO + NEW.VALOR_SUBSTITUICAO_RATEADO    
                          - NEW.VALOR_DESCONTO_PRODUTO_RATEADO - NEW.VALOR_DESCONTO_NOTA_RATEADO);                                                                                       
                                                                                                                                                                                         
            SELECT USA_MARKUP_PRECO_VENDA                                                                                                                                                
            FROM CAD_EMPRESA                                                                                                                                                             
            WHERE CADASTRO = NEW.EMPRESA                                                                                                                                                 
            INTO :VUSA_MARKUP_PRECO_VENDA;                                                                                                                                               
                                                                                                                                                                                         
            IF (VUSA_MARKUP_PRECO_VENDA = '2') THEN                                                                                                                                    
            BEGIN                                                                                                                                                                        
                NEW.PRECO_VENDA_ANTERIOR = UDF_FORMAT_FLOAT(VPRECO_VENDA, 2);                                                                                                            
                NEW.PERCENTUAL_LUCRO = UDF_FORMAT_FLOAT(VMARKUP, 2);                                                                                                                     
                                                                                                                                                                                         
                IF ((VPRECO_CUSTO > 0) AND (VMARKUP > 0)) THEN                                                                                                                           
                BEGIN                                                                                                                                                                    
                    NEW.PRECO_VENDA = UDF_FORMAT_FLOAT((VPRECO_CUSTO + ((VMARKUP / 100) * VPRECO_CUSTO)), 2);                                                                            
                END                                                                                                                                                                      
                ELSE BEGIN                                                                                                                                                               
                    NEW.PRECO_VENDA = UDF_FORMAT_FLOAT(VPRECO_VENDA, 2);                                                                                                                 
                END                                                                                                                                                                      
                                                                                                                                                                                         
                IF ((NEW.PRECO_VENDA > 0) AND (NEW.PRECO_VENDA_ANTERIOR > 0)) THEN                                                                                                       
                BEGIN                                                                                                                                                                    
                    NEW.PERCENTUAL_REAJUSTE = UDF_FORMAT_FLOAT((((NEW.PRECO_VENDA - NEW.PRECO_VENDA_ANTERIOR) / NEW.PRECO_VENDA_ANTERIOR) * 100), 2);                                    
                END                                                                                                                                                                      
                ELSE BEGIN                                                                                                                                                               
                    NEW.PERCENTUAL_REAJUSTE = 0;                                                                                                                                         
                END                                                                                                                                                                      
            END                                                                                                                                                                          
            ELSE BEGIN                                                                                                                                                                   
                NEW.PRECO_VENDA = VPRECO_VENDA;                                                                                                                                          
                NEW.PRECO_VENDA_ANTERIOR = VPRECO_VENDA;                                                                                                                                 
                                                                                                                                                                                         
                IF ((NEW.PRECO_VENDA > 0) AND (VPRECO_CUSTO > 0)) THEN                                                                                                                   
                BEGIN                                                                                                                                                                    
                    NEW.PERCENTUAL_LUCRO = ((NEW.PRECO_VENDA - VPRECO_CUSTO) / VPRECO_CUSTO) * 100;                                                                                      
                END                                                                                                                                                                      
                ELSE BEGIN                                                                                                                                                               
                    NEW.PERCENTUAL_LUCRO = 0;                                                                                                                                            
                END                                                                                                                                                                      
            END                                                                                                                                                                          
        END                                                                                                                                                                              
    END                                                                                                                                                                                  
    ELSE BEGIN                                                                                                                                                                           
        IF (NEW.VALOR <> OLD.VALOR) THEN                                                                                                                                                 
        BEGIN                                                                                                                                                                            
            IF ((NEW.PRODUTO IS NOT NULL) AND (NEW.PRODUTO > 0)) THEN                                                                                                                    
            BEGIN                                                                                                                                                                        
                /*------------------------------------------------------------*/                                                                                                         
                /*** Recalculando o % de Lucro Itens Nota Fiscal de Compra ****/                                                                                                         
                /*------------------------------------------------------------*/                                                                                                         
                VPRECO_CUSTO = (NEW.VALOR + NEW.VALOR_FRETE_RATEADO + NEW.VALOR_CONHEC_FRETE_RATEADO + NEW.VALOR_DESPESA_RATEADO + NEW.VALOR_IPI_RATEADO + NEW.VALOR_SUBSTITUICAO_RATEADO
                              - NEW.VALOR_DESCONTO_PRODUTO_RATEADO - NEW.VALOR_DESCONTO_NOTA_RATEADO);                                                                                   
                                                                                                                                                                                         
                SELECT USA_MARKUP_PRECO_VENDA                                                                                                                                            
                FROM CAD_EMPRESA                                                                                                                                                         
                WHERE CADASTRO = NEW.EMPRESA                                                                                                                                             
                INTO :VUSA_MARKUP_PRECO_VENDA;                                                                                                                                           
                                                                                                                                                                                         
                IF (VUSA_MARKUP_PRECO_VENDA = '2') THEN                                                                                                                                
                BEGIN                                                                                                                                                                    
                    SELECT MARKUP                                                                                                                                                        
                    FROM CAD_PRODUTO                                                                                                                                                     
                    WHERE EMPRESA = NEW.EMPRESA                                                                                                                                          
                      AND CADASTRO = NEW.PRODUTO                                                                                                                                         
                    INTO :VMARKUP;                                                                                                                                                       
                                                                                                                                                                                         
                    NEW.PERCENTUAL_LUCRO = UDF_FORMAT_FLOAT(VMARKUP, 2);                                                                                                                 
                                                                                                                                                                                         
                    IF ((VPRECO_CUSTO > 0) AND (VMARKUP > 0)) THEN                                                                                                                       
                    BEGIN                                                                                                                                                                
                        NEW.PRECO_VENDA = UDF_FORMAT_FLOAT((VPRECO_CUSTO + ((VMARKUP / 100) * VPRECO_CUSTO)), 2);                                                                        
                    END                                                                                                                                                                  
                    ELSE BEGIN                                                                                                                                                           
                        NEW.PRECO_VENDA = UDF_FORMAT_FLOAT(NEW.PRECO_VENDA_ANTERIOR, 2);                                                                                                 
                    END                                                                                                                                                                  
                                                                                                                                                                                         
                    IF ((NEW.PRECO_VENDA > 0) AND (NEW.PRECO_VENDA_ANTERIOR > 0)) THEN                                                                                                   
                    BEGIN                                                                                                                                                                
                        NEW.PERCENTUAL_REAJUSTE = UDF_FORMAT_FLOAT((((NEW.PRECO_VENDA - NEW.PRECO_VENDA_ANTERIOR) / NEW.PRECO_VENDA_ANTERIOR) * 100), 2);                                
                    END                                                                                                                                                                  
                    ELSE BEGIN                                                                                                                                                           
                        NEW.PERCENTUAL_REAJUSTE = 0;                                                                                                                                     
                    END                                                                                                                                                                  
                END                                                                                                                                                                      
                ELSE BEGIN                                                                                                                                                               
                    IF ((NEW.PRECO_VENDA > 0) AND (VPRECO_CUSTO > 0)) THEN                                                                                                               
                    BEGIN                                                                                                                                                                
                        NEW.PERCENTUAL_LUCRO = ((NEW.PRECO_VENDA - VPRECO_CUSTO) / VPRECO_CUSTO) * 100;                                                                                  
                    END                                                                                                                                                                  
                    ELSE BEGIN                                                                                                                                                           
                        NEW.PERCENTUAL_LUCRO = 0;                                                                                                                                        
                    END                                                                                                                                                                  
                END                                                                                                                                                                      
            END                                                                                                                                                                          
        END                                                                                                                                                                              
    END                                                                                                                                                                                  
                                                                                                                                                                                         
    IF (NEW.STATUS = 'Lanada') THEN                                                                                                                                                   
    BEGIN                                                                                                                                                                                
        IF (OLD.STATUS = 'Pendente') THEN                                                                                                                                              
        BEGIN                                                                                                                                                                            
            /****** ESSA PARTE DO COMANDO SQL ESTA NOS FONTES DO DELPHI *******/                                                                                                         
        END                                                                                                                                                                              
        ELSE BEGIN                                                                                                                                                                       
            IF (NEW.PRODUTO <> OLD.PRODUTO) THEN                                                                                                                                         
            BEGIN                                                                                                                                                                        
                IF ((NEW.PRODUTO IS NOT NULL) AND (NEW.PRODUTO > 0)) THEN                                                                                                                
                BEGIN                                                                                                                                                                    
                    /*------------------------------------------------------------*/                                                                                                     
                    /****** Verificando se o Cdigo do Produto foi lanado ********/                                                                                                     
                    /*********** mais de uma vez na mesma Nota Fiscal *************/                                                                                                     
                    /*------------------------------------------------------------*/                                                                                                     
                    VPRODUTO = 0;                                                                                                                                                        
                                                                                                                                                                                         
                    FOR SELECT I.PRECO_CUSTO_ANTERIOR, I.CUSTO_MEDIO_ANTERIOR, I.ESTOQUE_ANTERIOR, I.NUMERO_NOTA_COMPRA_ANTERIOR                                                         
                    FROM MOV_IT_NOTA_FISCAL_COMPRA I                                                                                                                                     
                    WHERE I.EMPRESA = NEW.EMPRESA                                                                                                                                        
                      AND I.NUMERO = NEW.NUMERO                                                                                                                                          
                      AND I.PRODUTO = NEW.PRODUTO                                                                                                                                        
                    ORDER BY I.SEQ                                                                                                                                                       
                    INTO :VPRECO_CUSTO, :VCUSTO_MEDIO, :VESTOQUE, :VNUMERO_NOTA_FISCAL_COMPRA                                                                                            
                                                                                                                                                                                         
                    DO BEGIN                                                                                                                                                             
                        VPRODUTO = 1;                                                                                                                                                    
                    END                                                                                                                                                                  
                                                                                                                                                                                         
                    /*------------------------------------------------------------*/                                                                                                     
                    /** Guardando o Preo de Custo, Custo Mdio e a Nota Fiscal ***/                                                                                                     
                    /******* do Produto nos Itens da Nota Fiscal de Compra ********/                                                                                                     
                    /*------------------------------------------------------------*/                                                                                                     
                    IF (VPRODUTO = 0) THEN                                                                                                                                               
                    BEGIN                                                                                                                                                                
                        SELECT PRECO_CUSTO, CUSTO_MEDIO, ESTOQUE, NUMERO_NOTA_FISCAL_COMPRA                                                                                              
                        FROM CAD_PRODUTO                                                                                                                                                 
                        WHERE EMPRESA = NEW.EMPRESA                                                                                                                                      
                          AND CADASTRO = NEW.PRODUTO                                                                                                                                     
                        INTO :VPRECO_CUSTO, :VCUSTO_MEDIO, :VESTOQUE, :VNUMERO_NOTA_FISCAL_COMPRA;                                                                                       
                    END                                                                                                                                                                  
                                                                                                                                                                                         
                    NEW.PRECO_CUSTO_ANTERIOR = VPRECO_CUSTO;                                                                                                                             
                    NEW.CUSTO_MEDIO_ANTERIOR = VCUSTO_MEDIO;                                                                                                                             
                    NEW.ESTOQUE_ANTERIOR = VESTOQUE;                                                                                                                                     
                    NEW.NUMERO_NOTA_COMPRA_ANTERIOR = VNUMERO_NOTA_FISCAL_COMPRA;                                                                                                        
                END                                                                                                                                                                      
                ELSE BEGIN                                                                                                                                                               
                    NEW.PRECO_CUSTO_ANTERIOR = 0;                                                                                                                                        
                    NEW.CUSTO_MEDIO_ANTERIOR = 0;                                                                                                                                        
                    NEW.ESTOQUE_ANTERIOR = 0;                                                                                                                                            
                    NEW.NUMERO_NOTA_COMPRA_ANTERIOR = NULL;                                                                                                                              
                END                                                                                                                                                                      
            END                                                                                                                                                                          
        END                                                                                                                                                                              
    END                                                                                                                                                                                  
END                                                                                                                                                                                      

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE CAD_INDICADOR_TIPO_FRETE                 
(CADASTRO INTEGER NOT NULL,                           
 DESCRICAO VARCHAR(50) NOT NULL,                      
 INATIVO VARCHAR(1) DEFAULT '1' NOT NULL,           
 PRIMARY KEY (CADASTRO))                              

Erro..:  unsuccessful metadata update
Table CAD_INDICADOR_TIPO_FRETE already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                   
FROM CAD_TELA_SISTEMA                             
WHERE NOME = 'frmcad_indicador_tipo_frete'      

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA          
 DROP MODELO_IMPRESSORA_ETIQUETA  

Erro..:  unsuccessful metadata update
column MODELO_IMPRESSORA_ETIQUETA does not exist in table/view CAD_EMPRESA
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA          
 DROP PORTA_IMPRESSORA_ETIQUETA   

Erro..:  unsuccessful metadata update
column PORTA_IMPRESSORA_ETIQUETA does not exist in table/view CAD_EMPRESA
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA          
 DROP TAMANHO_ETIQUETA            

Erro..:  unsuccessful metadata update
column TAMANHO_ETIQUETA does not exist in table/view CAD_EMPRESA
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_ORDEM_SERVICO                                
 ADD SEGURADORA INTEGER,                                      
 ADD FOREIGN KEY(SEGURADORA) REFERENCES CAD_PESSOA(CADASTRO)  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_ORDEM_SERVICO                        
 ADD VALOR_FRANQUIA DOUBLE PRECISION DEFAULT 0        

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_IT_NOTA_VENDA_PRODUTO                
 ADD NUMERO_ORDEM_SERVICO_IMPORTADO INTEGER           

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_IT_NOTA_VENDA_PRODUTO                
 ADD SEQ_ORDEM_SERVICO_IMPORTADO INTEGER              

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                                           
FROM CAD_TELA_SISTEMA                                                     
WHERE NOME = 'frmrel_ordem_servico_oficina_mecanica_resumido'           

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                                           
FROM CAD_TELA_SISTEMA                                                     
WHERE NOME = 'frmrel_ordem_servico_oficina_mecanica_detalhado'          

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                                           
FROM CAD_TELA_SISTEMA                                                     
WHERE NOME = 'frmmov_alteracao_markup_produto_por_grupo_subgrupo_linha' 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_IT_CONTAS_RECEBER                            
 ADD PERCENTUAL_DESCONTO_CONCEDIDO DOUBLE PRECISION DEFAULT 0 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                                            
 ADD USA_GRADE_FORNECEDOR_PRODUTO VARCHAR(1) DEFAULT '1' NOT NULL 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                                    
 ADD USA_NF_ORDEM_SERVICO VARCHAR(1) DEFAULT '1' NOT NULL 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE CAD_GRUPO_CARACTERISTICA                     
 (EMPRESA INTEGER NOT NULL,                               
 CADASTRO INTEGER NOT NULL,                               
 DESCRICAO VARCHAR(50) NOT NULL,                          
 INATIVO VARCHAR(1) DEFAULT '1' NOT NULL,               
 FOREIGN KEY(EMPRESA) REFERENCES CAD_EMPRESA(CADASTRO),   
 PRIMARY KEY (EMPRESA, CADASTRO))                         

Erro..:  unsuccessful metadata update
Table CAD_GRUPO_CARACTERISTICA already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE GENERATOR CAD_GRUPO_CARACTERISTICA_001       

Erro..:  unsuccessful metadata update
Generator CAD_GRUPO_CARACTERISTICA_001 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE GENERATOR CAD_GRUPO_CARACTERISTICA_002       

Erro..:  unsuccessful metadata update
Generator CAD_GRUPO_CARACTERISTICA_002 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                
FROM CAD_TELA_SISTEMA                          
WHERE NOME = 'frmcad_grupo_caracteristica'   

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EQUIPAMENTO                                                                           
ADD LOCALIZACAO VARCHAR(50),                                                                          
ADD GRUPO_CARACTERISTICA INTEGER,                                                                     
ADD FOREIGN KEY(EMPRESA, GRUPO_CARACTERISTICA) REFERENCES CAD_GRUPO_CARACTERISTICA(EMPRESA, CADASTRO) 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_PESSOA                    
DROP CLI_OPCAO_COBRANCA_CONTRATO          

Erro..:  unsuccessful metadata update
column CLI_OPCAO_COBRANCA_CONTRATO does not exist in table/view CAD_PESSOA
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA              
DROP USA_NUMERO_SERIE_PRODUTO        

Erro..:  unsuccessful metadata update
column USA_NUMERO_SERIE_PRODUTO does not exist in table/view CAD_EMPRESA
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_PRODUTO              
DROP USA_NUMERO_SERIE                

Erro..:  unsuccessful metadata update
column USA_NUMERO_SERIE does not exist in table/view CAD_PRODUTO
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                                          
ADD OBRIGA_EQUIP_ORDEM_SERVICO VARCHAR(1) DEFAULT '2' NOT NULL 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_PEDIDO_VENDA     
ADD DESCRICAO_PRODUTO VARCHAR(80)   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_PEDIDO_VENDA  
ADD UNIDADE_PRODUTO VARCHAR(3)   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                                                                               
ADD PRODUTO_FRANQUIA_ORDEM_SERVICO INTEGER,                                                           
ADD FOREIGN KEY(CADASTRO, PRODUTO_FRANQUIA_ORDEM_SERVICO) REFERENCES CAD_PRODUTO(EMPRESA, CADASTRO)   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_ORDEM_SERVICO          
DROP DESCRICAO_EQUIPAMENTO             

Erro..:  unsuccessful metadata update
column DESCRICAO_EQUIPAMENTO does not exist in table/view MOV_ORDEM_SERVICO
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                                            
 ADD EMITE_CF_ANTES_DE_IMPRIMIR_NF VARCHAR(1) DEFAULT '1' NOT NULL 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                                   
FROM CAD_TELA_SISTEMA                                             
WHERE NOME = 'frmcons_historico_ordem_servico_oficina_mecanica' 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                                           
 ADD UTILIZA_LETRAS_CODIGO_BARRA VARCHAR(1) DEFAULT '1' NOT NULL 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                                       
FROM CAD_TELA_SISTEMA                                                 
WHERE NOME = 'frmrel_ordem_servico_assistencia_tecnica_equipamento' 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                                    
FROM CAD_TELA_SISTEMA                                              
WHERE NOME = 'frmrel_ordem_servico_assistencia_tecnica_previsao' 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                                     
FROM CAD_TELA_SISTEMA                                               
WHERE NOME = 'frmrel_ordem_servico_assistencia_tecnica_qualidade' 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_PESSOA                                           
 ADD CLI_13_SALARIO_MANUTENCAO VARCHAR(1) DEFAULT '1' NOT NULL  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_CONTRATO_MANUTENCAO                                  
 ADD GERAR_13_SALARIO_MANUTENCAO VARCHAR(1) DEFAULT '1' NOT NULL    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                              
 ADD DIA_VENCIMENTO_13_MANUTENCAO INTEGER             

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE PARAMETRO_SISTEMA                            
 ADD CNPJ_CPF_CONTRATO_MANUTENCAO VARCHAR(18) NOT NULL    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE PARAMETRO_SISTEMA        
 DROP DIRETORIO_PASTA_SKINS           

Erro..:  unsuccessful metadata update
column DIRETORIO_PASTA_SKINS does not exist in table/view PARAMETRO_SISTEMA
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                                     
FROM CAD_TELA_SISTEMA                                               
WHERE NOME = 'frmmov_alteracao_classificacao_fiscal'              

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_NATUREZA_OPERACAO                                    
 ADD USA_NOTA_FISCAL_REFERENCIADA VARCHAR(1) DEFAULT '1' NOT NULL   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_NOTA_FISCAL_VENDA                                                            
 ADD MODELO_NOTA_REFERENCIADA VARCHAR(2),                                                     
 ADD FOREIGN KEY(MODELO_NOTA_REFERENCIADA) REFERENCES CAD_MODELO_DOCUMENTO_FISCAL(CADASTRO)   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_IT_PRODUTO_COMPOSICAO                                                        
 ADD CODIGO_BARRA VARCHAR(25)                                                                 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE CAD_IT_PRODUTO_COMPOSICAO SET         
 CODIGO_BARRA = PRODUTO_COMPOSICAO            
 WHERE CODIGO_BARRA IS NULL                   

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE TABLE MOV_IT_NOTA_VENDA_REFERENCIADA                                                                          
 (EMPRESA INTEGER NOT NULL,                                                                                           
 SERIE INTEGER NOT NULL,                                                                                              
 NUMERO INTEGER NOT NULL,                                                                                             
 SEQ INTEGER NOT NULL,                                                                                                
 EMISSAO DATE,                                                                                                        
 CNPJ_CPF VARCHAR(18),                                                                                                
 INSCRICAO_ESTADUAL VARCHAR(18),                                                                                      
 ESTADO VARCHAR(2),                                                                                                   
 CODIGO_ESTADO_IBGE INTEGER,                                                                                          
 SERIE_NOTA_FISCAL INTEGER,                                                                                           
 NUMERO_NOTA_FISCAL INTEGER,                                                                                          
 IDENTIFICACAO_ARQUIVO_XML VARCHAR(60),                                                                               
 CAIXA_ECF VARCHAR(3),                                                                                                
 ANO_ECF INTEGER,                                                                                                     
 NUMERO_ECF INTEGER,                                                                                                  
 NUMERO_CUPOM_FISCAL INTEGER,                                                                                         
 NUMERO_CONTADOR_CUPOM_FISCAL INTEGER,                                                                                
 FOREIGN KEY(ESTADO) REFERENCES CAD_ALIQUOTA_ICMS_ESTADO(ESTADO),                                                     
 FOREIGN KEY(EMPRESA, SERIE, NUMERO) REFERENCES MOV_NOTA_FISCAL_VENDA(EMPRESA, SERIE, NUMERO),                        
 FOREIGN KEY(EMPRESA, CAIXA_ECF, ANO_ECF, NUMERO_ECF) REFERENCES MOV_CUPOM_FISCAL(EMPRESA, CAIXA, ANO, NUMERO),       
 PRIMARY KEY(EMPRESA, SERIE, NUMERO, SEQ))                                                                            

Erro..:  unsuccessful metadata update
Table MOV_IT_NOTA_VENDA_REFERENCIADA already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER TRIGGER MOV_NOTA_FISCAL_VENDA_01 FOR MOV_NOTA_FISCAL_VENDA           
 ACTIVE BEFORE DELETE POSITION 0                                                      
 AS                                                                                   
 BEGIN                                                                                
     /*------------------------------------------------------------------------*/     
     /************ Excluindo os Itens da Nota Fiscal de Produto ****************/     
     /*------------------------------------------------------------------------*/     
     DELETE FROM MOV_IT_NOTA_VENDA_PRODUTO                                            
     WHERE EMPRESA = OLD.EMPRESA                                                      
       AND SERIE = OLD.SERIE                                                          
       AND NUMERO = OLD.NUMERO;                                                       
                                                                                      
     /*------------------------------------------------------------------------*/     
     /************ Excluindo os Itens da Nota Fiscal de Servio ****************/     
     /*------------------------------------------------------------------------*/     
     DELETE FROM MOV_IT_NOTA_VENDA_SERVICO                                            
     WHERE EMPRESA = OLD.EMPRESA                                                      
       AND SERIE = OLD.SERIE                                                          
       AND NUMERO = OLD.NUMERO;                                                       
                                                                                      
     /*------------------------------------------------------------------------*/     
     /*********** Excluindo os Itens da Nota Fiscal Referenciada ***************/     
     /*------------------------------------------------------------------------*/     
     DELETE FROM MOV_IT_NOTA_VENDA_REFERENCIADA                                       
     WHERE EMPRESA = OLD.EMPRESA                                                      
       AND SERIE = OLD.SERIE                                                          
       AND NUMERO = OLD.NUMERO;                                                       
 END                                                                                  

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER TRIGGER MOV_IT_NOTA_VENDA_REFERENCIADA FOR MOV_IT_NOTA_VENDA_REFERENCIADA    
 ACTIVE BEFORE INSERT POSITION 0                                                              
 AS                                                                                           
 DECLARE VARIABLE VSEQ INTEGER;                                                               
 BEGIN                                                                                        
     /*------------------------------------------------------------------------*/             
     /**** Definindo a Chave Primaria dos Itens da Nota Fiscal Referenciada ****/             
     /*------------------------------------------------------------------------*/             
     SELECT MAX(SEQ) SEQ                                                                      
     FROM MOV_IT_NOTA_VENDA_REFERENCIADA                                                      
     WHERE EMPRESA = NEW.EMPRESA                                                              
       AND SERIE = NEW.SERIE                                                                  
       AND NUMERO = NEW.NUMERO                                                                
     INTO VSEQ;                                                                               
                                                                                              
     IF (VSEQ IS NULL) THEN                                                                   
     BEGIN                                                                                    
         VSEQ = 0;                                                                            
     END                                                                                      
     NEW.SEQ = VSEQ + 1;                                                                      
 END                                                                                          

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                      
 ADD SERIE_NOTA_FISCAL_SERVICO INTEGER        

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                                     
FROM CAD_TELA_SISTEMA                                               
WHERE NOME = 'frmrel_contas_receber_por_cliente_resumido'         

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                                 
 ADD IMPRIME_DUPLICATA VARCHAR(1) DEFAULT '1' NOT NULL 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                                  
 ADD OPCAO_DUPLICATA VARCHAR(10) DEFAULT 'DOS' NOT NULL 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_VENDA             
ALTER FORMA_EMISSAO_NFE TYPE VARCHAR(25)      

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_PRODUTO                                                                              
 ADD UNIDADE_CONSUMO VARCHAR(3),                                                                      
 ADD FOREIGN KEY(EMPRESA, UNIDADE_CONSUMO) REFERENCES CAD_UNIDADE_MEDIDA_PRODUTO(EMPRESA, CADASTRO)   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_PRODUTO                                          
 ADD QUANTIDADE_UNIDADE_CONSUMO DOUBLE PRECISION DEFAULT 0        

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                                              
 ADD USA_UNIDADE_CONSUMO_PRODUTO VARCHAR(1) DEFAULT '1' NOT NULL    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_PESSOA                                               
 ADD CLI_MES_INICIAL_MENSALIDADE VARCHAR(10)                          

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_PESSOA                                               
 ADD CLI_ANO_INICIAL_MENSALIDADE INTEGER                              

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                                   
FROM CAD_TELA_SISTEMA                                             
WHERE NOME = 'frmmov_exportacao_nfe'                            

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                                              
 ADD CNPJ_CPF_OBRIGATORIO_PESSOA VARCHAR(1) DEFAULT '2' NOT NULL    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                                              
 ADD IE_RG_OBRIGATORIO_PESSOA VARCHAR(1) DEFAULT '2' NOT NULL       

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_PESSOA                                               
 ADD CLI_DATA_ULTIMA_CONSULTA_SPC DATE                                

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                                                  
 ADD INFORMA_PARCELA_CREDIARIO_ECF VARCHAR(1) DEFAULT '1' NOT NULL      

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                                                  
 ADD USA_GRADE_FORNECEDOR_PEDIDO VARCHAR(1) DEFAULT '1' NOT NULL        

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                  
 DROP USA_GRADE_FORNECEDOR_PRODUTO        

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA          
 ADD EMAIL_NFE VARCHAR(60)        

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_IT_NOTA_VENDA_PRODUTO                
 ADD VALOR_FRETE_RATEADO DOUBLE PRECISION DEFAULT 0   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_IT_NOTA_VENDA_PRODUTO                
 ADD VALOR_SEGURO_RATEADO DOUBLE PRECISION DEFAULT 0  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_IT_NOTA_VENDA_PRODUTO                
 ADD VALOR_DESPESA_RATEADO DOUBLE PRECISION DEFAULT 0 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_PEDIDO_VENDA             
 ALTER PRAZO_ENTREGA TYPE VARCHAR(50)     

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                              
 ALTER OPCAO_IMPRESSAO_PEDIDO_VENDA TYPE VARCHAR(30)  

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                                  
 ADD QUANTIDADE_COPIAS_PEDIDO_VENDA INTEGER DEFAULT 1     

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                            
FROM CAD_TELA_SISTEMA                      
WHERE NOME = 'frmmov_importacao_produto' 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE CAD_TELA_SISTEMA SET                  
 DESCRICAO = 'EXPORTACAO DOS PRODUTOS'      
 WHERE NOME = 'frmmov_exportacao_produto'   

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_IT_NOTA_VENDA_PRODUTO                
 ADD VALOR_DESCONTO DOUBLE PRECISION DEFAULT 0        

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER trigger mov_contas_receber_01 for mov_contas_receber                  
inactive before insert position 0                                                     
AS                                                                                    
DECLARE VARIABLE VPARCELA INTEGER;                                                    
BEGIN                                                                                 
    /*------------------------------------------------------------------------*/      
    /*********** Defininando a Chave Primaria do Contas a Receber *************/      
    /*------------------------------------------------------------------------*/      
    SELECT MAX(PARCELA) PARCELA                                                       
    FROM MOV_CONTAS_RECEBER                                                           
    WHERE EMPRESA = NEW.EMPRESA                                                       
      AND CAIXA = NEW.CAIXA                                                           
      AND DOCUMENTO = NEW.DOCUMENTO                                                   
      AND CLIENTE = NEW.CLIENTE                                                       
      AND NUMERO = NEW.NUMERO                                                         
      AND SERIE = NEW.SERIE                                                           
    INTO VPARCELA;                                                                    
                                                                                      
    IF (VPARCELA IS NULL) THEN                                                        
    BEGIN                                                                             
        VPARCELA = 0;                                                                 
    END                                                                               
    NEW.PARCELA = VPARCELA + 1;                                                       
END                                                                                   

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER trigger mov_it_contas_receber_01 for mov_it_contas_receber            
inactive before insert position 0                                                     
AS                                                                                    
DECLARE VARIABLE VSEQ INTEGER;                                                        
BEGIN                                                                                 
    /*------------------------------------------------------------------------*/      
    /****** Defininando a Chave Primaria dos Itens do Contas a Receber ********/      
    /*------------------------------------------------------------------------*/      
    SELECT MAX(SEQ) SEQ                                                               
    FROM MOV_IT_CONTAS_RECEBER                                                        
    WHERE EMPRESA = NEW.EMPRESA                                                       
      AND CAIXA = NEW.CAIXA                                                           
      AND DOCUMENTO = NEW.DOCUMENTO                                                   
      AND CLIENTE = NEW.CLIENTE                                                       
      AND NUMERO = NEW.NUMERO                                                         
      AND SERIE = NEW.SERIE                                                           
      AND PARCELA = NEW.PARCELA                                                       
    INTO VSEQ;                                                                        
                                                                                      
    IF (VSEQ IS NULL) THEN                                                            
    BEGIN                                                                             
        VSEQ = 0;                                                                     
    END                                                                               
    NEW.SEQ = VSEQ + 1;                                                               
END                                                                                   
                                                                                      

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER trigger mov_contas_pagar_01 for mov_contas_pagar                      
inactive before insert position 0                                                     
AS                                                                                    
DECLARE VARIABLE VPARCELA INTEGER;                                                    
BEGIN                                                                                 
    /*------------------------------------------------------------------------*/      
    /************ Defininando a Chave Primaria do Contas a Pagar **************/      
    /*------------------------------------------------------------------------*/      
    SELECT MAX(PARCELA) PARCELA                                                       
    FROM MOV_CONTAS_PAGAR                                                             
    WHERE EMPRESA = NEW.EMPRESA                                                       
      AND DOCUMENTO = NEW.DOCUMENTO                                                   
      AND FORNECEDOR = NEW.FORNECEDOR                                                 
      AND NUMERO = NEW.NUMERO                                                         
      AND SERIE = NEW.SERIE                                                           
    INTO VPARCELA;                                                                    
                                                                                      
    IF (VPARCELA IS NULL) THEN                                                        
    BEGIN                                                                             
        VPARCELA = 0;                                                                 
    END                                                                               
    NEW.PARCELA = VPARCELA + 1;                                                       
END                                                                                   

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER trigger mov_it_contas_pagar_01 for mov_it_contas_pagar                
inactive before insert position 0                                                     
AS                                                                                    
DECLARE VARIABLE VSEQ INTEGER;                                                        
BEGIN                                                                                 
    /*------------------------------------------------------------------------*/      
    /******* Defininando a Chave Primaria dos Itens do Contas a Pagar *********/      
    /*------------------------------------------------------------------------*/      
    SELECT MAX(SEQ) SEQ                                                               
    FROM MOV_IT_CONTAS_PAGAR                                                          
    WHERE EMPRESA = NEW.EMPRESA                                                       
      AND DOCUMENTO = NEW.DOCUMENTO                                                   
      AND FORNECEDOR = NEW.FORNECEDOR                                                 
      AND NUMERO = NEW.NUMERO                                                         
      AND SERIE = NEW.SERIE                                                           
      AND PARCELA = NEW.PARCELA                                                       
    INTO VSEQ;                                                                        
                                                                                      
    IF (VSEQ IS NULL) THEN                                                            
    BEGIN                                                                             
        VSEQ = 0;                                                                     
    END                                                                               
    NEW.SEQ = VSEQ + 1;                                                               
END                                                                                   

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                                              
 ADD LISTAR_CONTATO_CONS_CLIENTE VARCHAR(1) DEFAULT '1' NOT NULL    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                                          
 ADD IMPRIME_ACRESCIMO_OS_CF VARCHAR(1) DEFAULT '2' NOT NULL    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                                                           
ADD OPCAO_IMPRESSAO_ORDEM_SERVICO VARCHAR(30) DEFAULT 'Folha A4 - DOS' NOT NULL 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_PESSOA                                                
ADD CLI_BLOQUEAR_VENDA_DIAS_ATRASO VARCHAR(1) DEFAULT '1' NOT NULL  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_PESSOA                        
ADD CLI_QUANTIDADE_DIAS_ATRASO INTEGER        

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_IT_ORDEM_SERVICO           
 ADD DESCRICAO_PRODUTO VARCHAR(80) NOT NULL 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_ORDEM_SERVICO          
ADD UNIDADE_PRODUTO VARCHAR(3) NOT NULL   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_ORDEM_SERVICO    
 ADD DATA_ORCAMENTO DATE          

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_ORDEM_SERVICO    
 ADD HORA_ORCAMENTO VARCHAR(5)    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_ORDEM_SERVICO            
 ADD NOME_CONTATO_ORCAMENTO VARCHAR(50)   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_ORDEM_SERVICO                    
 ADD VALOR_ORCAMENTO DOUBLE PRECISION DEFAULT 0   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_ORDEM_SERVICO        
 ADD STATUS_ORCAMENTO VARCHAR(25)     

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_ORDEM_SERVICO        
 ADD OBSERVACAO_ORCAMENTO BLOB(240)   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_ORDEM_SERVICO                                                                            
 ADD USUARIO_SISTEMA_ORCAMENTO INTEGER,                                                                   
 ADD FOREIGN KEY(EMPRESA, USUARIO_SISTEMA_ORCAMENTO) REFERENCES CAD_USUARIO_SISTEMA(EMPRESA, CADASTRO)    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_NATUREZA_OPERACAO                             
 ADD USA_PRECO_CUSTO_PRODUTO VARCHAR(1) DEFAULT '1' NOT NULL 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                                            
ADD OPCAO_IMPRESSAO_RECIBO VARCHAR(10) DEFAULT '01 Via' NOT NULL 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_CONTA       
 ADD TIPO_LAYOUT VARCHAR(20) 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                                              
 ADD LISTAR_COMPLEMENTO_PRODUTO_NFE VARCHAR(1) DEFAULT '1' NOT NULL 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                              
 ADD TIPO_COMPLEMENTO_PRODUTO_NFE VARCHAR(30)         

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                  
 DROP IMPRIME_REF_DESCRICAO_PRODUTO       

Erro..:  unsuccessful metadata update
column IMPRIME_REF_DESCRICAO_PRODUTO does not exist in table/view CAD_EMPRESA
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                                   
FROM CAD_TELA_SISTEMA                                             
WHERE NOME = 'frmrel_cupom_fiscal_condicao_pagamento_resumido'  

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                      
 ADD COMPLEMENTO_CONTABILIDADE VARCHAR(60)    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_PESSOA           
 ADD COMPLEMENTO VARCHAR(50)      

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
UPDATE RDB$RELATION_FIELDS SET                    
RDB$NULL_FLAG = NULL                              
WHERE (RDB$FIELD_NAME = 'TIPO_ITEM_PRODUTO')    
  AND (RDB$RELATION_NAME = 'CAD_PRODUTO')       

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_PRODUTO               
ADD TIPO_PATRIMONIO VARCHAR(15)       

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_PRODUTO               
ADD PATRIMONIO_PRINCIPAL INTEGER      

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_PRODUTO                                                                           
ADD PLANO_CONTAS_PATRIMONIO VARCHAR(15),                                                          
ADD FOREIGN KEY(EMPRESA, PLANO_CONTAS_PATRIMONIO) REFERENCES CAD_PLANO_CONTAS(EMPRESA, CADASTRO)  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_PRODUTO                   
ADD TOTAL_PARCELAS_PATRIMONIO INTEGER     

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_PRODUTO                                                                           
ADD CENTRO_CUSTO_PATRIMONIO INTEGER,                                                              
ADD FOREIGN KEY(EMPRESA, CENTRO_CUSTO_PATRIMONIO) REFERENCES CAD_CENTRO_CUSTO(EMPRESA, CADASTRO)  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_PRODUTO                   
ADD FUNCAO_PATRIMONIO VARCHAR(100)        

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_PRODUTO               
ADD VIDA_UTIL_PATRIMONIO INTEGER      

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_NATUREZA_OPERACAO                                 
ALTER GERA_CREDITO_DEBITO_PIS_COFINS TO GERA_CREDITO_DEBITO_PIS   

Erro..:  unsuccessful metadata update
column GERA_CREDITO_DEBITO_PIS_COFINS does not exist in table/view CAD_NATUREZA_OPERACAO
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_NATUREZA_OPERACAO                                 
ADD GERA_CREDITO_DEBITO_COFINS VARCHAR(1) DEFAULT '1' NOT NULL  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_NATUREZA_OPERACAO                         
ADD MOVIMENTA_ESTOQUE VARCHAR(1) DEFAULT '2' NOT NULL   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_LEGISLACAO                    
ADD TIPO_LANCAMENTO VARCHAR(10) NOT NULL      

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
UPDATE CAD_LEGISLACAO SET     
OBSERVACAO = DESCRICAO        
WHERE OBSERVACAO IS NULL      

Erro..:  Dynamic SQL Error
SQL error code = -206
Column unknown
OBSERVACAO
At line 2, column 1
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_VENDA     
DROP DESCRICAO_LEGISLACAO             

Erro..:  unsuccessful metadata update
column DESCRICAO_LEGISLACAO does not exist in table/view MOV_NOTA_FISCAL_VENDA
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_PLANO_CONTAS          
ADD DATA_INCLUSAO_ALTERACAO DATE      

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_PLANO_CONTAS              
ADD CODIGO_NATUREZA_CONTA VARCHAR(50)     

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_PLANO_CONTAS          
ADD NIVEL_CONTA_ANALITICA INTEGER     

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_PLANO_CONTAS              
ADD CODIGO_CONTA_ANALITICA VARCHAR(20)    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_PLANO_CONTAS              
ADD NOME_CONTA_ANALITICA VARCHAR(60)      

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                       
ADD HORARIO_REDUCAO_Z_SEG_A_SEX VARCHAR(5)    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                   
ADD HORARIO_REDUCAO_Z_SABADO VARCHAR(5)   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                   
ADD HORARIO_REDUCAO_Z_DOMINGO VARCHAR(5)  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                                                                               
ADD PLANO_CONTAS_ORDEM_SERVICO VARCHAR(15),                                                           
ADD FOREIGN KEY(CADASTRO, PLANO_CONTAS_ORDEM_SERVICO) REFERENCES CAD_PLANO_CONTAS(EMPRESA, CADASTRO)  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                                                                               
ADD CENTRO_CUSTO_ORDEM_SERVICO INTEGER,                                                               
ADD FOREIGN KEY(CADASTRO, CENTRO_CUSTO_ORDEM_SERVICO) REFERENCES CAD_CENTRO_CUSTO(EMPRESA, CADASTRO)  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                                                                                           
ADD INSTRUCAO_COBRANCA_OS INTEGER,                                                                    
ADD FOREIGN KEY(CADASTRO, INSTRUCAO_COBRANCA_OS) REFERENCES CAD_INSTRUCAO_COBRANCA(EMPRESA, CADASTRO) 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TRIGGER MOV_ORDEM_SERVICO_03 FOR MOV_ORDEM_SERVICO                             
ACTIVE AFTER DELETE POSITION 0                                                        
AS                                                                                    
BEGIN                                                                                 
    /*------------------------------------------------------------------------*/      
    /************** Excluindo as Parcelas do Contas a Receber *****************/      
    /*------------------------------------------------------------------------*/      
    DELETE FROM MOV_CONTAS_RECEBER                                                    
    WHERE EMPRESA = OLD.EMPRESA                                                       
      AND CAIXA = 'OS'                                                              
      AND DOCUMENTO = 'OS'                                                          
      AND CLIENTE = OLD.CLIENTE                                                       
      AND NUMERO = OLD.NUMERO                                                         
      AND SERIE = '1';                                                              
END                                                                                   

Erro..:  unsuccessful metadata update
DEFINE TRIGGER failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_8"

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_CENTRO_CUSTO          
ADD DATA_INCLUSAO_ALTERACAO DATE      

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE CAD_INDICADOR_FORMA_PAGAMENTO                                                    
(CADASTRO INTEGER NOT NULL,                                                                   
 DESCRICAO VARCHAR(50) NOT NULL,                                                              
 INDICADOR_TIPO_PAGAMENTO INTEGER NOT NULL,                                                   
 INATIVO VARCHAR(1) DEFAULT '1' NOT NULL,                                                   
 FOREIGN KEY(INDICADOR_TIPO_PAGAMENTO) REFERENCES CAD_INDICADOR_TIPO_PAGAMENTO(CADASTRO),     
 PRIMARY KEY(CADASTRO))                                                                       

Erro..:  unsuccessful metadata update
Table CAD_INDICADOR_FORMA_PAGAMENTO already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                       
FROM CAD_TELA_SISTEMA                                 
WHERE NOME = 'frmcad_indicador_forma_pagamento'     

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_VENDA                                                             
ADD INDICADOR_FORMA_PAGAMENTO INTEGER,                                                        
ADD FOREIGN KEY(INDICADOR_FORMA_PAGAMENTO) REFERENCES CAD_INDICADOR_FORMA_PAGAMENTO(CADASTRO) 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE CAD_MODALIDADE_FRETE                                                     
(CADASTRO INTEGER NOT NULL,                                                           
 DESCRICAO VARCHAR(50) NOT NULL,                                                      
 INDICADOR_TIPO_FRETE INTEGER NOT NULL,                                               
 INATIVO VARCHAR(1) DEFAULT '1' NOT NULL,                                           
 FOREIGN KEY(INDICADOR_TIPO_FRETE) REFERENCES CAD_INDICADOR_TIPO_FRETE(CADASTRO),     
 PRIMARY KEY(CADASTRO))                                                               

Erro..:  unsuccessful metadata update
Table CAD_MODALIDADE_FRETE already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                               
FROM CAD_TELA_SISTEMA                         
WHERE NOME = 'frmcad_modalidade_frete'      

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_VENDA                                                 
ADD MODALIDADE_FRETE INTEGER,                                                     
ADD FOREIGN KEY(MODALIDADE_FRETE) REFERENCES CAD_MODALIDADE_FRETE(CADASTRO)       

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
UPDATE CAD_TELA_SISTEMA SET                   
MODULO_SISTEMA = 1                            
WHERE NOME = 'frmcad_tipo_item_produto'     

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
UPDATE CAD_TELA_SISTEMA SET                   
MODULO_SISTEMA = 1                            
WHERE NOME = 'frmcad_genero_item_produto'   

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
UPDATE CAD_TELA_SISTEMA SET               
MODULO_SISTEMA = 1                        
WHERE NOME = 'frmcad_lista_servico'     

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_TRIBUTO_PIS           
ALTER DESCRICAO TYPE VARCHAR(120)     

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_TRIBUTO_COFINS        
ALTER DESCRICAO TYPE VARCHAR(120)     

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE CAD_MEDICO                           
(CADASTRO INTEGER NOT NULL,                       
 NOME VARCHAR(80) NOT NULL,                       
 CRM VARCHAR(15),                                 
 AREA_ATUACAO VARCHAR(30),                        
 INATIVO VARCHAR(1) DEFAULT '1' NOT NULL,       
 PRIMARY KEY (CADASTRO))                          

Erro..:  unsuccessful metadata update
Table CAD_MEDICO already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
FROM CAD_TELA_SISTEMA                 
WHERE NOME = 'frmcad_medico'        

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_VENDA                                                         
ADD MODELO_DOCUMENTO_FISCAL VARCHAR(2),                                                   
ADD FOREIGN KEY(MODELO_DOCUMENTO_FISCAL) REFERENCES CAD_MODELO_DOCUMENTO_FISCAL(CADASTRO) 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_VENDA                                                             
ADD SITUACAO_DOCUMENTO_FISCAL INTEGER,                                                        
ADD FOREIGN KEY(SITUACAO_DOCUMENTO_FISCAL) REFERENCES CAD_SITUACAO_DOCUMENTO_FISCAL(CADASTRO) 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE GENERATOR CAD_MEDICO       

Erro..:  unsuccessful metadata update
Generator CAD_MEDICO already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_PESSOA                                            
ALTER CLI_ENQUADRAMENTO_TRIBUTARIO TO ENQUADRAMENTO_TRIBUTARIO    

Erro..:  unsuccessful metadata update
column CLI_ENQUADRAMENTO_TRIBUTARIO does not exist in table/view CAD_PESSOA
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE TABLE MOV_RECEITA_MEDICA                          
 (EMPRESA INTEGER NOT NULL,                               
  NUMERO INTEGER NOT NULL,                                
  CLIENTE INTEGER NOT NULL,                               
  MEDICO INTEGER NOT NULL,                                
  EMISSAO DATE NOT NULL,                                  
  ESFERICO_DIREITO DOUBLE PRECISION DEFAULT 0,            
  CILINDRO_DIREITO DOUBLE PRECISION DEFAULT 0,            
  EIXO_DIREITO DOUBLE PRECISION DEFAULT 0,                
  ADICAO_DIREITO DOUBLE PRECISION DEFAULT 0,              
  DNP_DIREITO DOUBLE PRECISION DEFAULT 0,                 
  ALTURA_DIREITO DOUBLE PRECISION DEFAULT 0,              
  ESFERICO_ESQUERDO DOUBLE PRECISION DEFAULT 0,           
  CILINDRO_ESQUERDO DOUBLE PRECISION DEFAULT 0,           
  EIXO_ESQUERDO DOUBLE PRECISION DEFAULT 0,               
  ADICAO_ESQUERDO DOUBLE PRECISION DEFAULT 0,             
  DNP_ESQUERDO DOUBLE PRECISION DEFAULT 0,                
  ALTURA_ESQUERDO DOUBLE PRECISION DEFAULT 0,             
  ARMACAO VARCHAR(50),                                    
  TIPO_LENTE VARCHAR(50),                                 
  DATA_CONSULTA DATE,                                     
  OBSERVACAO VARCHAR(80),                                 
  FOREIGN KEY (EMPRESA) REFERENCES CAD_EMPRESA(CADASTRO), 
  FOREIGN KEY (CLIENTE) REFERENCES CAD_PESSOA (CADASTRO), 
  FOREIGN KEY (MEDICO) REFERENCES CAD_MEDICO (CADASTRO),  
  PRIMARY KEY (EMPRESA, NUMERO))                          

Erro..:  unsuccessful metadata update
Table MOV_RECEITA_MEDICA already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE GENERATOR MOV_RECEITA_MEDICA_001 

Erro..:  unsuccessful metadata update
Generator MOV_RECEITA_MEDICA_001 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE GENERATOR MOV_RECEITA_MEDICA_002 

Erro..:  unsuccessful metadata update
Generator MOV_RECEITA_MEDICA_002 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                        
FROM CAD_TELA_SISTEMA                  
WHERE NOME = 'frmmov_receita_medica' 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                                     
 ADD USA_RECEITA_MEDICA_OS VARCHAR(1) DEFAULT '1' NOT NULL 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EQUIPAMENTO                                                             
 ADD RECEITA_MEDICA INTEGER,                                                             
 ADD FOREIGN KEY(EMPRESA, RECEITA_MEDICA) REFERENCES MOV_RECEITA_MEDICA(EMPRESA, NUMERO) 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                           
ADD INDICADOR_PERIODO_APURACAO_IPI VARCHAR(10)    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
UPDATE RDB$RELATION_FIELDS SET                                
RDB$NULL_FLAG = NULL                                          
WHERE (RDB$FIELD_NAME = 'TRIBUTO_ICMS')                     
  AND (RDB$RELATION_NAME = 'MOV_IT_NOTA_FISCAL_COMPRA')     

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_COMPRA                            
ADD TIPO_NOTA_FISCAL VARCHAR(30) DEFAULT 'Compra' NOT NULL  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_COMPRA                                                        
ADD MODELO_DOCUMENTO_FISCAL VARCHAR(2),                                                   
ADD FOREIGN KEY(MODELO_DOCUMENTO_FISCAL) REFERENCES CAD_MODELO_DOCUMENTO_FISCAL(CADASTRO) 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_COMPRA                                                            
ADD SITUACAO_DOCUMENTO_FISCAL INTEGER,                                                        
ADD FOREIGN KEY(SITUACAO_DOCUMENTO_FISCAL) REFERENCES CAD_SITUACAO_DOCUMENTO_FISCAL(CADASTRO) 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_COMPRA                                    
ADD TRIBUTO_ICMS VARCHAR(3),                                          
ADD FOREIGN KEY(TRIBUTO_ICMS) REFERENCES CAD_TRIBUTO_ICMS(CADASTRO)   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_COMPRA                
ADD ALIQUOTA_ICMS DOUBLE PRECISION DEFAULT 0      

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_COMPRA                                                
ADD MODALIDADE_FRETE INTEGER,                                                     
ADD FOREIGN KEY(MODALIDADE_FRETE) REFERENCES CAD_MODALIDADE_FRETE(CADASTRO)       

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_COMPRA                                                            
ADD INDICADOR_FORMA_PAGAMENTO INTEGER,                                                        
ADD FOREIGN KEY(INDICADOR_FORMA_PAGAMENTO) REFERENCES CAD_INDICADOR_FORMA_PAGAMENTO(CADASTRO) 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_COMPRA                                                                            
ADD OBSERVACAO_LANCAMENTO_FISCAL INTEGER,                                                                     
ADD FOREIGN KEY(EMPRESA, OBSERVACAO_LANCAMENTO_FISCAL) REFERENCES CAD_OBSERVACAO_FISCAL(EMPRESA, CADASTRO)    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_COMPRA            
ADD BASE_PIS DOUBLE PRECISION DEFAULT 0       

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_COMPRA            
ADD VALOR_PIS DOUBLE PRECISION DEFAULT 0      

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_COMPRA            
ADD BASE_COFINS DOUBLE PRECISION DEFAULT 0    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_COMPRA            
ADD VALOR_COFINS DOUBLE PRECISION DEFAULT 0   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_FISCAL_COMPRA                 
ADD ITEM_CONFERIDO VARCHAR(1) DEFAULT '2' NOT NULL  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_FISCAL_COMPRA                                                             
ADD NATUREZA_OPERACAO VARCHAR(8) NOT NULL,                                                        
ADD FOREIGN KEY(EMPRESA, NATUREZA_OPERACAO) REFERENCES CAD_NATUREZA_OPERACAO(EMPRESA, CADASTRO)   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_FISCAL_COMPRA                         
ADD MOVIMENTA_ESTOQUE VARCHAR(1) DEFAULT '2' NOT NULL       

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_FISCAL_COMPRA                                                             
ADD PLANO_CONTAS VARCHAR(15),                                                         
ADD FOREIGN KEY(EMPRESA, PLANO_CONTAS) REFERENCES CAD_PLANO_CONTAS(EMPRESA, CADASTRO) 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_FISCAL_COMPRA                         
ADD ALIQUOTA_SUBST_TRIBUTARIA DOUBLE PRECISION DEFAULT 0      

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_FISCAL_COMPRA                         
ADD BASE_SUBSTITUICAO_TRIBUTARIA DOUBLE PRECISION DEFAULT 0   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_FISCAL_COMPRA                         
ADD VALOR_SUBSTITUICAO_TRIBUTARIA DOUBLE PRECISION DEFAULT 0  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_FISCAL_COMPRA                             
ADD TRIBUTO_IPI VARCHAR(2),                                       
ADD FOREIGN KEY(TRIBUTO_IPI) REFERENCES CAD_TRIBUTO_IPI(CADASTRO) 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_FISCAL_COMPRA             
ADD INDICADOR_PERIODO_APURACAO_IPI VARCHAR(10)    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_FISCAL_COMPRA                             
ADD TRIBUTO_PIS VARCHAR(2),                                       
ADD FOREIGN KEY(TRIBUTO_PIS) REFERENCES CAD_TRIBUTO_PIS(CADASTRO) 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_FISCAL_COMPRA             
ADD ALIQUOTA_PIS DOUBLE PRECISION DEFAULT 0       

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_FISCAL_COMPRA         
ADD BASE_PIS DOUBLE PRECISION DEFAULT 0       

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_FISCAL_COMPRA         
ADD VALOR_PIS DOUBLE PRECISION DEFAULT 0      

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_FISCAL_COMPRA                                     
ADD TRIBUTO_COFINS VARCHAR(2),                                            
ADD FOREIGN KEY(TRIBUTO_COFINS) REFERENCES CAD_TRIBUTO_COFINS(CADASTRO)   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_FISCAL_COMPRA             
ADD ALIQUOTA_COFINS DOUBLE PRECISION DEFAULT 0    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_FISCAL_COMPRA         
ADD BASE_COFINS DOUBLE PRECISION DEFAULT 0    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_FISCAL_COMPRA         
ADD VALOR_COFINS DOUBLE PRECISION DEFAULT 0   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_NOTA_FISCAL_COMPRA_03 ACTIVE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_IT_NOTA_FISCAL_COMPRA_03 ACTIVE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_IT_NOTA_FISCAL_COMPRA_04 ACTIVE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_IT_NOTA_FISCAL_COMPRA_06 ACTIVE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE MOV_IT_NOTA_COMPRA_LEGISLACAO                                            
(EMPRESA INTEGER NOT NULL,                                                            
 NUMERO INTEGER NOT NULL,                                                             
 SEQ INTEGER NOT NULL,                                                                
 LEGISLACAO INTEGER NOT NULL,                                                         
 FOREIGN KEY(EMPRESA, NUMERO) REFERENCES MOV_NOTA_FISCAL_COMPRA(EMPRESA, NUMERO),     
 FOREIGN KEY(EMPRESA, LEGISLACAO) REFERENCES CAD_LEGISLACAO(EMPRESA, CADASTRO),       
 PRIMARY KEY(EMPRESA, NUMERO, SEQ))                                                   

Erro..:  unsuccessful metadata update
Table MOV_IT_NOTA_COMPRA_LEGISLACAO already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE MOV_IT_NOTA_COMPRA_REFERENCIADA                                                                              
(EMPRESA INTEGER NOT NULL,                                                                                                
 NUMERO INTEGER NOT NULL,                                                                                                 
 SEQ INTEGER NOT NULL,                                                                                                    
 SERIE_NOTA_FISCAL INTEGER NOT NULL,                                                                                      
 NUMERO_NOTA_FISCAL INTEGER NOT NULL,                                                                                     
 FOREIGN KEY(EMPRESA, NUMERO) REFERENCES MOV_NOTA_FISCAL_COMPRA(EMPRESA, NUMERO),                                         
 FOREIGN KEY(EMPRESA, SERIE_NOTA_FISCAL, NUMERO_NOTA_FISCAL) REFERENCES MOV_NOTA_FISCAL_VENDA(EMPRESA, SERIE, NUMERO),    
 PRIMARY KEY(EMPRESA, NUMERO, SEQ))                                                                                       

Erro..:  unsuccessful metadata update
Table MOV_IT_NOTA_COMPRA_REFERENCIADA already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER MOV_NOTA_FISCAL_COMPRA_01 FOR MOV_NOTA_FISCAL_COMPRA          
ACTIVE BEFORE DELETE POSITION 1                                                       
AS                                                                                    
BEGIN                                                                                 
    /*------------------------------------------------------------------------*/      
    /************** Excluindo os Itens da Nota Fiscal de Compra ***************/      
    /*------------------------------------------------------------------------*/      
    DELETE FROM MOV_IT_NOTA_FISCAL_COMPRA                                             
    WHERE EMPRESA = OLD.EMPRESA                                                       
      AND NUMERO = OLD.NUMERO;                                                        
                                                                                      
    /*------------------------------------------------------------------------*/      
    /******************** Excluindo os Itens da Legislao ********************/      
    /*------------------------------------------------------------------------*/      
    DELETE FROM MOV_IT_NOTA_COMPRA_LEGISLACAO                                         
    WHERE EMPRESA = OLD.EMPRESA                                                       
      AND NUMERO = OLD.NUMERO;                                                        
                                                                                      
    /*------------------------------------------------------------------------*/      
    /**************** Excluindo os Itens da Nota Referenciada *****************/      
    /*------------------------------------------------------------------------*/      
    DELETE FROM MOV_IT_NOTA_COMPRA_REFERENCIADA                                       
    WHERE EMPRESA = OLD.EMPRESA                                                       
      AND NUMERO = OLD.NUMERO;                                                        
END                                                                                   

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                                               
ADD USA_REFERENCIA_COMPRA_VENDA VARCHAR(1) DEFAULT '1' NOT NULL     

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_VENDA_PRODUTO                     
ADD BASE_CALCULO_REDUCAO_ICMS DOUBLE PRECISION DEFAULT 0  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_VENDA_PRODUTO                     
ADD VALOR_PRODUTOR_RATEADO DOUBLE PRECISION DEFAULT 0     

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                                           
ADD USA_OBSERVACAO_CLIENTE_CF VARCHAR(1) DEFAULT '1' NOT NULL   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_CUPOM_FISCAL                      
ADD ALIQUOTA_PIS DOUBLE PRECISION DEFAULT 0       

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_CUPOM_FISCAL                    
ADD BASE_PIS DOUBLE PRECISION DEFAULT 0         

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_CUPOM_FISCAL                     
ADD VALOR_PIS DOUBLE PRECISION DEFAULT 0         

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_CUPOM_FISCAL                      
ADD ALIQUOTA_COFINS DOUBLE PRECISION DEFAULT 0    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_CUPOM_FISCAL                     
ADD BASE_COFINS DOUBLE PRECISION DEFAULT 0       

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_CUPOM_FISCAL                     
ADD VALOR_COFINS DOUBLE PRECISION DEFAULT 0      

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_CUPOM_FISCAL                 
ADD BASE_PIS DOUBLE PRECISION DEFAULT 0         

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_CUPOM_FISCAL                  
ADD VALOR_PIS DOUBLE PRECISION DEFAULT 0         

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_CUPOM_FISCAL                  
ADD BASE_COFINS DOUBLE PRECISION DEFAULT 0       

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_CUPOM_FISCAL                  
ADD VALOR_COFINS DOUBLE PRECISION DEFAULT 0      

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_PEDIDO_VENDA                         
ADD ITEM_CANCELADO VARCHAR(3) DEFAULT 'No' NOT NULL  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
Malformed string
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_PEDIDO_VENDA          
ADD NUMERO_CUPOM_FISCAL INTEGER       

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_ORDEM_SERVICO         
ADD NUMERO_CUPOM_FISCAL INTEGER       

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                               
FROM CAD_TELA_SISTEMA                         
WHERE NOME = 'frmmov_sped_fiscal'           

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
UPDATE RDB$RELATION_FIELDS SET                    
RDB$NULL_FLAG = NULL                              
WHERE (RDB$FIELD_NAME = 'VENDEDOR')             
  AND (RDB$RELATION_NAME = 'MOV_CUPOM_FISCAL')  

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
UPDATE RDB$RELATION_FIELDS SET                    
RDB$NULL_FLAG = NULL                              
WHERE (RDB$FIELD_NAME = 'NOME_VENDEDOR')        
  AND (RDB$RELATION_NAME = 'MOV_CUPOM_FISCAL')  

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_CUPOM_FISCAL                       
ADD VALOR_JUROS_RATEADO DOUBLE PRECISION DEFAULT 0    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_PEDIDO_VENDA   
ADD DATA_INCLUSAO DATE NOT NULL   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_ORDEM_SERVICO      
ADD DATA_INCLUSAO DATE NOT NULL       

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_ORDEM_SERVICO                        
ADD ITEM_CANCELADO VARCHAR(3) DEFAULT 'No' NOT NULL  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
Malformed string
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_CUPOM_FISCAL                  
ADD NUMERO_CAIXA_IMPRESSORA_FISCAL INTEGER    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_NOTA_FISCAL_VENDA_03 INACTIVE   

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
UPDATE MOV_NOTA_FISCAL_VENDA SET          
MODELO_DOCUMENTO_FISCAL = '55'          
WHERE MODELO_DOCUMENTO_FISCAL IS NULL     
  AND ((STATUS = 'NFE Pendente')        
    OR (STATUS = 'NFE Gerada')          
    OR (STATUS = 'NFE Enviada')         
    OR (STATUS = 'NFE Inutilizada')     
    OR (STATUS = 'NFE Cancelada')       
    OR (STATUS = 'NFE Autorizada'))     

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
UPDATE MOV_NOTA_FISCAL_VENDA SET          
MODELO_DOCUMENTO_FISCAL = '01'          
WHERE MODELO_DOCUMENTO_FISCAL IS NULL     
  AND ((STATUS = 'Pendente')            
    OR (STATUS = 'Cancelada')           
    OR (STATUS = 'Faturada'))           

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_NOTA_FISCAL_VENDA_03 ACTIVE     

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
DECLARE EXTERNAL FUNCTION UDF_GERA_CRIPTOGRAFIA               
    CSTRING(1000)                                             
RETURNS CSTRING(1000)                                         
ENTRY_POINT 'gera_criptografia_texto' MODULE_NAME 'Udf';  

Erro..:  unsuccessful metadata update
DEFINE FUNCTION failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_9"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
DECLARE EXTERNAL FUNCTION UDF_FORMAT_STRING               
    CSTRING(1000)                                         
RETURNS CSTRING(1000)                                     
ENTRY_POINT 'formata_campo_string' MODULE_NAME 'Udf'; 

Erro..:  unsuccessful metadata update
DEFINE FUNCTION failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_9"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
DECLARE EXTERNAL FUNCTION UDF_INT_TO_STR          
    INTEGER                                       
RETURNS CSTRING(1000)                             
ENTRY_POINT 'int_to_str' MODULE_NAME 'Udf';   

Erro..:  unsuccessful metadata update
DEFINE FUNCTION failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_9"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
DECLARE EXTERNAL FUNCTION UDF_FLOAT_TO_STR        
    DOUBLE PRECISION                              
RETURNS CSTRING(1000)                             
ENTRY_POINT 'float_to_str' MODULE_NAME 'Udf'; 

Erro..:  unsuccessful metadata update
DEFINE FUNCTION failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_9"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
DECLARE EXTERNAL FUNCTION UDF_DATE_TO_STR         
    CSTRING(10)                                   
RETURNS CSTRING(10)                               
ENTRY_POINT 'date_to_str' MODULE_NAME 'Udf';  

Erro..:  unsuccessful metadata update
DEFINE FUNCTION failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_9"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
DECLARE EXTERNAL FUNCTION UDF_BLOB_TO_STR         
    BLOB                                          
RETURNS CSTRING(100)                              
ENTRY_POINT 'blob_to_str' MODULE_NAME 'Udf';  

Erro..:  unsuccessful metadata update
DEFINE FUNCTION failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_9"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
DECLARE EXTERNAL FUNCTION UDF_GERA_HASH_MD5           
    CSTRING(32),                                      
    CSTRING(1000)                                     
RETURNS CSTRING(32)                                   
ENTRY_POINT 'gera_hash_md5' MODULE_NAME 'Udf';    

Erro..:  unsuccessful metadata update
DEFINE FUNCTION failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_9"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER trigger mov_it_movimentacao_estoque_01 for mov_it_movimentacao_estoque
active after insert position 0
AS
DECLARE VARIABLE VCONTROLA_ESTOQUE VARCHAR(1);
DECLARE VARIABLE VTIPO_CODIGO_BARRAS VARCHAR(10);
DECLARE VARIABLE VTIPO_MOVIMENTACAO_ESTOQUE VARCHAR(10);
DECLARE VARIABLE VBAIXA_ESTOQUE_COMPOSICAO VARCHAR(1);
DECLARE VARIABLE VPRODUTO_COMPOSICAO INTEGER;
DECLARE VARIABLE VPERCENTUAL_COMPOSICAO REAL;
BEGIN
    /*------------------------------------------------------------------------*/
    /***************** Entrada / Sada do Estoque dos Produtos ****************/
    /*------------------------------------------------------------------------*/
    SELECT P.CONTROLA_ESTOQUE, P.BAIXA_ESTOQUE_COMPOSICAO
    FROM CAD_PRODUTO P
    WHERE P.EMPRESA = NEW.EMPRESA
      AND P.CADASTRO = NEW.PRODUTO
    INTO :VCONTROLA_ESTOQUE, :VBAIXA_ESTOQUE_COMPOSICAO;

    SELECT TIPO_MOVIMENTACAO_ESTOQUE
    FROM CAD_MOVIMENTACAO_ESTOQUE
    WHERE EMPRESA = NEW.EMPRESA
      AND CADASTRO = NEW.MOTIVO_MOVIMENTACAO_ESTOQUE
    INTO :VTIPO_MOVIMENTACAO_ESTOQUE;

    IF (VTIPO_MOVIMENTACAO_ESTOQUE = 'Sada') THEN
    BEGIN
        IF (VBAIXA_ESTOQUE_COMPOSICAO = '2') THEN
        BEGIN
            FOR SELECT I.PRODUTO_COMPOSICAO, I.PERCENTUAL
            FROM CAD_IT_PRODUTO_COMPOSICAO I
            LEFT OUTER JOIN CAD_PRODUTO PR ON(PR.EMPRESA = I.EMPRESA
                                          AND PR.CADASTRO = I.PRODUTO_COMPOSICAO)
            WHERE I.EMPRESA = NEW.EMPRESA
              AND I.PRODUTO = NEW.PRODUTO
              AND PR.CONTROLA_ESTOQUE = '2'
            INTO :VPRODUTO_COMPOSICAO, :VPERCENTUAL_COMPOSICAO

            DO BEGIN
                UPDATE CAD_PRODUTO P SET
                P.ESTOQUE = P.ESTOQUE - (NEW.QUANTIDADE * :VPERCENTUAL_COMPOSICAO),
                P.HASH_MD5 = UDF_GERA_CRIPTOGRAFIA(CAST(P.EMPRESA || P.CADASTRO AS VARCHAR(32)))
                WHERE P.EMPRESA = NEW.EMPRESA
                  AND P.CADASTRO = :VPRODUTO_COMPOSICAO;
            END
        END

        IF (VCONTROLA_ESTOQUE = '2') THEN
        BEGIN
            SELECT E.TIPO_CODIGO_BARRAS
            FROM CAD_EMPRESA E
            WHERE E.CADASTRO = NEW.EMPRESA
            INTO :VTIPO_CODIGO_BARRAS;

            IF (VTIPO_CODIGO_BARRAS = 'Grade') THEN
            BEGIN
                UPDATE CAD_IT_PRODUTO_CODIGO_BARRA I SET
                I.ESTOQUE = I.ESTOQUE - NEW.QUANTIDADE
                WHERE I.EMPRESA = NEW.EMPRESA
                  AND I.PRODUTO = NEW.PRODUTO
                  AND I.CODIGO_BARRA = NEW.CODIGO_BARRA;
            END

            UPDATE CAD_PRODUTO P SET
            P.ESTOQUE = P.ESTOQUE - NEW.QUANTIDADE,
            P.HASH_MD5 = UDF_GERA_CRIPTOGRAFIA(CAST(P.EMPRESA || P.CADASTRO AS VARCHAR(32)))
            WHERE P.EMPRESA = NEW.EMPRESA
              AND P.CADASTRO = NEW.PRODUTO;
        END
    END
    ELSE BEGIN
        IF (VBAIXA_ESTOQUE_COMPOSICAO = '2') THEN
        BEGIN
            FOR SELECT I.PRODUTO_COMPOSICAO, I.PERCENTUAL
            FROM CAD_IT_PRODUTO_COMPOSICAO I
            LEFT OUTER JOIN CAD_PRODUTO PR ON(PR.EMPRESA = I.EMPRESA
                                          AND PR.CADASTRO = I.PRODUTO_COMPOSICAO)
            WHERE I.EMPRESA = NEW.EMPRESA
              AND I.PRODUTO = NEW.PRODUTO
              AND PR.CONTROLA_ESTOQUE = '2'
            INTO :VPRODUTO_COMPOSICAO, :VPERCENTUAL_COMPOSICAO

            DO BEGIN
                UPDATE CAD_PRODUTO P SET
                P.ESTOQUE = P.ESTOQUE + (NEW.QUANTIDADE * :VPERCENTUAL_COMPOSICAO),
                P.HASH_MD5 = UDF_GERA_CRIPTOGRAFIA(CAST(P.EMPRESA || P.CADASTRO AS VARCHAR(32)))
                WHERE P.EMPRESA = NEW.EMPRESA
                  AND P.CADASTRO = :VPRODUTO_COMPOSICAO;
            END
        END

        IF (VCONTROLA_ESTOQUE = '2') THEN
        BEGIN
            SELECT E.TIPO_CODIGO_BARRAS
            FROM CAD_EMPRESA E
            WHERE E.CADASTRO = NEW.EMPRESA
            INTO :VTIPO_CODIGO_BARRAS;

            IF (VTIPO_CODIGO_BARRAS = 'Grade') THEN
            BEGIN
                UPDATE CAD_IT_PRODUTO_CODIGO_BARRA I SET
                I.ESTOQUE = I.ESTOQUE + NEW.QUANTIDADE
                WHERE I.EMPRESA = NEW.EMPRESA
                  AND I.PRODUTO = NEW.PRODUTO
                  AND I.CODIGO_BARRA = NEW.CODIGO_BARRA;
            END

            UPDATE CAD_PRODUTO P SET
            P.ESTOQUE = P.ESTOQUE + NEW.QUANTIDADE,
            P.HASH_MD5 = UDF_GERA_CRIPTOGRAFIA(CAST(P.EMPRESA || P.CADASTRO AS VARCHAR(32)))
            WHERE P.EMPRESA = NEW.EMPRESA
              AND P.CADASTRO = NEW.PRODUTO;
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER trigger mov_it_movimentacao_estoque_02 for mov_it_movimentacao_estoque
active after update position 0
AS
DECLARE VARIABLE VCONTROLA_ESTOQUE VARCHAR(1);
DECLARE VARIABLE VTIPO_CODIGO_BARRAS VARCHAR(10);
DECLARE VARIABLE VTIPO_MOVIMENTACAO_ESTOQUE VARCHAR(10);
DECLARE VARIABLE VBAIXA_ESTOQUE_COMPOSICAO VARCHAR(1);
DECLARE VARIABLE VPRODUTO_COMPOSICAO INTEGER;
DECLARE VARIABLE VPERCENTUAL_COMPOSICAO REAL;
BEGIN
    IF ((NEW.PRODUTO <> OLD.PRODUTO)
     OR (NEW.CODIGO_BARRA <> OLD.CODIGO_BARRA)
     OR (NEW.MOTIVO_MOVIMENTACAO_ESTOQUE <> OLD.MOTIVO_MOVIMENTACAO_ESTOQUE)) THEN
    BEGIN
        /*--------------------------------------------------------------------*/
        /********* Estorno da Entrada / Sada do Estoque dos Produtos *********/
        /*--------------------------------------------------------------------*/
        SELECT P.CONTROLA_ESTOQUE, P.BAIXA_ESTOQUE_COMPOSICAO
        FROM CAD_PRODUTO P
        WHERE P.EMPRESA = OLD.EMPRESA
          AND P.CADASTRO = OLD.PRODUTO
        INTO :VCONTROLA_ESTOQUE, :VBAIXA_ESTOQUE_COMPOSICAO;

        SELECT TIPO_MOVIMENTACAO_ESTOQUE
        FROM CAD_MOVIMENTACAO_ESTOQUE
        WHERE EMPRESA = OLD.EMPRESA
          AND CADASTRO = OLD.MOTIVO_MOVIMENTACAO_ESTOQUE
        INTO :VTIPO_MOVIMENTACAO_ESTOQUE;

        IF (VTIPO_MOVIMENTACAO_ESTOQUE = 'Sada') THEN
        BEGIN
            IF (VBAIXA_ESTOQUE_COMPOSICAO = '2') THEN
            BEGIN
                FOR SELECT I.PRODUTO_COMPOSICAO, I.PERCENTUAL
                FROM CAD_IT_PRODUTO_COMPOSICAO I
                LEFT OUTER JOIN CAD_PRODUTO PR ON(PR.EMPRESA = I.EMPRESA
                                              AND PR.CADASTRO = I.PRODUTO_COMPOSICAO)
                WHERE I.EMPRESA = OLD.EMPRESA
                  AND I.PRODUTO = OLD.PRODUTO
                  AND PR.CONTROLA_ESTOQUE = '2'
                INTO :VPRODUTO_COMPOSICAO, :VPERCENTUAL_COMPOSICAO

                DO BEGIN
                    UPDATE CAD_PRODUTO P SET
                    P.ESTOQUE = P.ESTOQUE + (OLD.QUANTIDADE * :VPERCENTUAL_COMPOSICAO),
                    P.HASH_MD5 = UDF_GERA_CRIPTOGRAFIA(CAST(P.EMPRESA || P.CADASTRO AS VARCHAR(32)))
                    WHERE P.EMPRESA = OLD.EMPRESA
                      AND P.CADASTRO = :VPRODUTO_COMPOSICAO;
                END
            END

            IF (VCONTROLA_ESTOQUE = '2') THEN
            BEGIN
                SELECT E.TIPO_CODIGO_BARRAS
                FROM CAD_EMPRESA E
                WHERE E.CADASTRO = OLD.EMPRESA
                INTO :VTIPO_CODIGO_BARRAS;

                IF (VTIPO_CODIGO_BARRAS = 'Grade') THEN
                BEGIN
                    UPDATE CAD_IT_PRODUTO_CODIGO_BARRA I SET
                    I.ESTOQUE = I.ESTOQUE + OLD.QUANTIDADE
                    WHERE I.EMPRESA = OLD.EMPRESA
                      AND I.PRODUTO = OLD.PRODUTO
                      AND I.CODIGO_BARRA = OLD.CODIGO_BARRA;
                END

                UPDATE CAD_PRODUTO P SET
                P.ESTOQUE = P.ESTOQUE + OLD.QUANTIDADE,
                P.HASH_MD5 = UDF_GERA_CRIPTOGRAFIA(CAST(P.EMPRESA || P.CADASTRO AS VARCHAR(32)))
                WHERE P.EMPRESA = OLD.EMPRESA
                  AND P.CADASTRO = OLD.PRODUTO;
            END
        END
        ELSE BEGIN
            IF (VBAIXA_ESTOQUE_COMPOSICAO = '2') THEN
            BEGIN
                FOR SELECT I.PRODUTO_COMPOSICAO, I.PERCENTUAL
                FROM CAD_IT_PRODUTO_COMPOSICAO I
                LEFT OUTER JOIN CAD_PRODUTO PR ON(PR.EMPRESA = I.EMPRESA
                                              AND PR.CADASTRO = I.PRODUTO_COMPOSICAO)
                WHERE I.EMPRESA = OLD.EMPRESA
                  AND I.PRODUTO = OLD.PRODUTO
                  AND PR.CONTROLA_ESTOQUE = '2'
                INTO :VPRODUTO_COMPOSICAO, :VPERCENTUAL_COMPOSICAO

                DO BEGIN
                    UPDATE CAD_PRODUTO P SET
                    P.ESTOQUE = P.ESTOQUE - (OLD.QUANTIDADE * :VPERCENTUAL_COMPOSICAO),
                    P.HASH_MD5 = UDF_GERA_CRIPTOGRAFIA(CAST(P.EMPRESA || P.CADASTRO AS VARCHAR(32)))
                    WHERE P.EMPRESA = OLD.EMPRESA
                      AND P.CADASTRO = :VPRODUTO_COMPOSICAO;
                END
            END

            IF (VCONTROLA_ESTOQUE = '2') THEN
            BEGIN
                SELECT E.TIPO_CODIGO_BARRAS
                FROM CAD_EMPRESA E
                WHERE E.CADASTRO = OLD.EMPRESA
                INTO :VTIPO_CODIGO_BARRAS;

                IF (VTIPO_CODIGO_BARRAS = 'Grade') THEN
                BEGIN
                    UPDATE CAD_IT_PRODUTO_CODIGO_BARRA I SET
                    I.ESTOQUE = I.ESTOQUE - OLD.QUANTIDADE
                    WHERE I.EMPRESA = OLD.EMPRESA
                      AND I.PRODUTO = OLD.PRODUTO
                      AND I.CODIGO_BARRA = OLD.CODIGO_BARRA;
                END

                UPDATE CAD_PRODUTO P SET
                P.ESTOQUE = P.ESTOQUE - OLD.QUANTIDADE,
                P.HASH_MD5 = UDF_GERA_CRIPTOGRAFIA(CAST(P.EMPRESA || P.CADASTRO AS VARCHAR(32)))
                WHERE P.EMPRESA = OLD.EMPRESA
                  AND P.CADASTRO = OLD.PRODUTO;
            END
        END

        /*--------------------------------------------------------------------*/
        /************** Entrada / Sada do Estoque dos Produtos ***************/
        /*--------------------------------------------------------------------*/
        SELECT P.CONTROLA_ESTOQUE, P.BAIXA_ESTOQUE_COMPOSICAO
        FROM CAD_PRODUTO P
        WHERE P.EMPRESA = NEW.EMPRESA
          AND P.CADASTRO = NEW.PRODUTO
        INTO :VCONTROLA_ESTOQUE, :VBAIXA_ESTOQUE_COMPOSICAO;

        SELECT TIPO_MOVIMENTACAO_ESTOQUE
        FROM CAD_MOVIMENTACAO_ESTOQUE
        WHERE EMPRESA = NEW.EMPRESA
          AND CADASTRO = NEW.MOTIVO_MOVIMENTACAO_ESTOQUE
        INTO :VTIPO_MOVIMENTACAO_ESTOQUE;

        IF (VTIPO_MOVIMENTACAO_ESTOQUE = 'Sada') THEN
        BEGIN
            IF (VBAIXA_ESTOQUE_COMPOSICAO = '2') THEN
            BEGIN
                FOR SELECT I.PRODUTO_COMPOSICAO, I.PERCENTUAL
                FROM CAD_IT_PRODUTO_COMPOSICAO I
                LEFT OUTER JOIN CAD_PRODUTO PR ON(PR.EMPRESA = I.EMPRESA
                                              AND PR.CADASTRO = I.PRODUTO_COMPOSICAO)
                WHERE I.EMPRESA = NEW.EMPRESA
                  AND I.PRODUTO = NEW.PRODUTO
                  AND PR.CONTROLA_ESTOQUE = '2'
                INTO :VPRODUTO_COMPOSICAO, :VPERCENTUAL_COMPOSICAO

                DO BEGIN
                    UPDATE CAD_PRODUTO P SET
                    P.ESTOQUE = P.ESTOQUE - (NEW.QUANTIDADE * :VPERCENTUAL_COMPOSICAO),
                    P.HASH_MD5 = UDF_GERA_CRIPTOGRAFIA(CAST(P.EMPRESA || P.CADASTRO AS VARCHAR(32)))
                    WHERE P.EMPRESA = NEW.EMPRESA
                      AND P.CADASTRO = :VPRODUTO_COMPOSICAO;
                END
            END

            IF (VCONTROLA_ESTOQUE = '2') THEN
            BEGIN
                SELECT E.TIPO_CODIGO_BARRAS
                FROM CAD_EMPRESA E
                WHERE E.CADASTRO = NEW.EMPRESA
                INTO :VTIPO_CODIGO_BARRAS;

                IF (VTIPO_CODIGO_BARRAS = 'Grade') THEN
                BEGIN
                    UPDATE CAD_IT_PRODUTO_CODIGO_BARRA I SET
                    I.ESTOQUE = I.ESTOQUE - NEW.QUANTIDADE
                    WHERE I.EMPRESA = NEW.EMPRESA
                      AND I.PRODUTO = NEW.PRODUTO
                      AND I.CODIGO_BARRA = NEW.CODIGO_BARRA;
                END

                UPDATE CAD_PRODUTO P SET
                P.ESTOQUE = P.ESTOQUE - NEW.QUANTIDADE,
                P.HASH_MD5 = UDF_GERA_CRIPTOGRAFIA(CAST(P.EMPRESA || P.CADASTRO AS VARCHAR(32)))
                WHERE P.EMPRESA = NEW.EMPRESA
                  AND P.CADASTRO = NEW.PRODUTO;
            END
        END
        ELSE BEGIN
            IF (VBAIXA_ESTOQUE_COMPOSICAO = '2') THEN
            BEGIN
                FOR SELECT I.PRODUTO_COMPOSICAO, I.PERCENTUAL
                FROM CAD_IT_PRODUTO_COMPOSICAO I
                LEFT OUTER JOIN CAD_PRODUTO PR ON(PR.EMPRESA = I.EMPRESA
                                              AND PR.CADASTRO = I.PRODUTO_COMPOSICAO)
                WHERE I.EMPRESA = NEW.EMPRESA
                  AND I.PRODUTO = NEW.PRODUTO
                  AND PR.CONTROLA_ESTOQUE = '2'
                INTO :VPRODUTO_COMPOSICAO, :VPERCENTUAL_COMPOSICAO

                DO BEGIN
                    UPDATE CAD_PRODUTO P SET
                    P.ESTOQUE = P.ESTOQUE + (NEW.QUANTIDADE * :VPERCENTUAL_COMPOSICAO),
                    P.HASH_MD5 = UDF_GERA_CRIPTOGRAFIA(CAST(P.EMPRESA || P.CADASTRO AS VARCHAR(32)))
                    WHERE P.EMPRESA = NEW.EMPRESA
                      AND P.CADASTRO = :VPRODUTO_COMPOSICAO;
                END
            END

            IF (VCONTROLA_ESTOQUE = '2') THEN
            BEGIN
                SELECT E.TIPO_CODIGO_BARRAS
                FROM CAD_EMPRESA E
                WHERE E.CADASTRO = NEW.EMPRESA
                INTO :VTIPO_CODIGO_BARRAS;

                IF (VTIPO_CODIGO_BARRAS = 'Grade') THEN
                BEGIN
                    UPDATE CAD_IT_PRODUTO_CODIGO_BARRA I SET
                    I.ESTOQUE = I.ESTOQUE + NEW.QUANTIDADE
                    WHERE I.EMPRESA = NEW.EMPRESA
                      AND I.PRODUTO = NEW.PRODUTO
                      AND I.CODIGO_BARRA = NEW.CODIGO_BARRA;
                END

                UPDATE CAD_PRODUTO P SET
                P.ESTOQUE = P.ESTOQUE + NEW.QUANTIDADE,
                P.HASH_MD5 = UDF_GERA_CRIPTOGRAFIA(CAST(P.EMPRESA || P.CADASTRO AS VARCHAR(32)))
                WHERE P.EMPRESA = NEW.EMPRESA
                  AND P.CADASTRO = NEW.PRODUTO;
            END
        END
    END
    ELSE BEGIN
        IF (NEW.QUANTIDADE <> OLD.QUANTIDADE) THEN
        BEGIN
            SELECT P.CONTROLA_ESTOQUE, P.BAIXA_ESTOQUE_COMPOSICAO
            FROM CAD_PRODUTO P
            WHERE P.EMPRESA = NEW.EMPRESA
              AND P.CADASTRO = NEW.PRODUTO
            INTO :VCONTROLA_ESTOQUE, :VBAIXA_ESTOQUE_COMPOSICAO;

            SELECT TIPO_MOVIMENTACAO_ESTOQUE
            FROM CAD_MOVIMENTACAO_ESTOQUE
            WHERE EMPRESA = NEW.EMPRESA
              AND CADASTRO = NEW.MOTIVO_MOVIMENTACAO_ESTOQUE
            INTO :VTIPO_MOVIMENTACAO_ESTOQUE;

            IF (VTIPO_MOVIMENTACAO_ESTOQUE = 'Sada') THEN
            BEGIN
                IF (VBAIXA_ESTOQUE_COMPOSICAO = '2') THEN
                BEGIN
                    FOR SELECT I.PRODUTO_COMPOSICAO, I.PERCENTUAL
                    FROM CAD_IT_PRODUTO_COMPOSICAO I
                    LEFT OUTER JOIN CAD_PRODUTO PR ON(PR.EMPRESA = I.EMPRESA
                                                  AND PR.CADASTRO = I.PRODUTO_COMPOSICAO)
                    WHERE I.EMPRESA = NEW.EMPRESA
                      AND I.PRODUTO = NEW.PRODUTO
                      AND PR.CONTROLA_ESTOQUE = '2'
                    INTO :VPRODUTO_COMPOSICAO, :VPERCENTUAL_COMPOSICAO

                    DO BEGIN
                        UPDATE CAD_PRODUTO P SET
                        P.ESTOQUE = P.ESTOQUE - ((NEW.QUANTIDADE - OLD.QUANTIDADE) * :VPERCENTUAL_COMPOSICAO),
                        P.HASH_MD5 = UDF_GERA_CRIPTOGRAFIA(CAST(P.EMPRESA || P.CADASTRO AS VARCHAR(32)))
                        WHERE P.EMPRESA = NEW.EMPRESA
                          AND P.CADASTRO = :VPRODUTO_COMPOSICAO;
                    END
                END

                IF (VCONTROLA_ESTOQUE = '2') THEN
                BEGIN
                    SELECT E.TIPO_CODIGO_BARRAS
                    FROM CAD_EMPRESA E
                    WHERE E.CADASTRO = NEW.EMPRESA
                    INTO :VTIPO_CODIGO_BARRAS;

                    IF (VTIPO_CODIGO_BARRAS = 'Grade') THEN
                    BEGIN
                        UPDATE CAD_IT_PRODUTO_CODIGO_BARRA I SET
                        I.ESTOQUE = I.ESTOQUE - (NEW.QUANTIDADE - OLD.QUANTIDADE)
                        WHERE I.EMPRESA = NEW.EMPRESA
                          AND I.PRODUTO = NEW.PRODUTO
                          AND I.CODIGO_BARRA = NEW.CODIGO_BARRA;
                    END

                    UPDATE CAD_PRODUTO P SET
                    P.ESTOQUE = P.ESTOQUE - (NEW.QUANTIDADE - OLD.QUANTIDADE),
                    P.HASH_MD5 = UDF_GERA_CRIPTOGRAFIA(CAST(P.EMPRESA || P.CADASTRO AS VARCHAR(32)))
                    WHERE P.EMPRESA = NEW.EMPRESA
                      AND P.CADASTRO = NEW.PRODUTO;
                END
            END
            ELSE BEGIN
                IF (VCONTROLA_ESTOQUE = '2') THEN
                BEGIN
                    IF (VBAIXA_ESTOQUE_COMPOSICAO = '2') THEN
                    BEGIN
                        FOR SELECT I.PRODUTO_COMPOSICAO, I.PERCENTUAL
                        FROM CAD_IT_PRODUTO_COMPOSICAO I
                        LEFT OUTER JOIN CAD_PRODUTO PR ON(PR.EMPRESA = I.EMPRESA
                                                      AND PR.CADASTRO = I.PRODUTO_COMPOSICAO)
                        WHERE I.EMPRESA = NEW.EMPRESA
                          AND I.PRODUTO = NEW.PRODUTO
                          AND PR.CONTROLA_ESTOQUE = '2'
                        INTO :VPRODUTO_COMPOSICAO, :VPERCENTUAL_COMPOSICAO

                        DO BEGIN
                            UPDATE CAD_PRODUTO P SET
                            P.ESTOQUE = P.ESTOQUE + ((NEW.QUANTIDADE - OLD.QUANTIDADE) * :VPERCENTUAL_COMPOSICAO),
                            P.HASH_MD5 = UDF_GERA_CRIPTOGRAFIA(CAST(P.EMPRESA || P.CADASTRO AS VARCHAR(32)))
                            WHERE P.EMPRESA = NEW.EMPRESA
                              AND P.CADASTRO = :VPRODUTO_COMPOSICAO;
                        END
                    END

                    SELECT E.TIPO_CODIGO_BARRAS
                    FROM CAD_EMPRESA E
                    WHERE E.CADASTRO = NEW.EMPRESA
                    INTO :VTIPO_CODIGO_BARRAS;

                    IF (VTIPO_CODIGO_BARRAS = 'Grade') THEN
                    BEGIN
                        UPDATE CAD_IT_PRODUTO_CODIGO_BARRA I SET
                        I.ESTOQUE = I.ESTOQUE + (NEW.QUANTIDADE - OLD.QUANTIDADE)
                        WHERE I.EMPRESA = NEW.EMPRESA
                          AND I.PRODUTO = NEW.PRODUTO
                          AND I.CODIGO_BARRA = NEW.CODIGO_BARRA;
                    END

                    UPDATE CAD_PRODUTO P SET
                    P.ESTOQUE = P.ESTOQUE + (NEW.QUANTIDADE - OLD.QUANTIDADE),
                    P.HASH_MD5 = UDF_GERA_CRIPTOGRAFIA(CAST(P.EMPRESA || P.CADASTRO AS VARCHAR(32)))
                    WHERE P.EMPRESA = NEW.EMPRESA
                      AND P.CADASTRO = NEW.PRODUTO;
                END
            END
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER trigger mov_it_movimentacao_estoque_03 for mov_it_movimentacao_estoque
active after delete position 0
AS
DECLARE VARIABLE VCONTROLA_ESTOQUE VARCHAR(1);
DECLARE VARIABLE VTIPO_CODIGO_BARRAS VARCHAR(10);
DECLARE VARIABLE VTIPO_MOVIMENTACAO_ESTOQUE VARCHAR(10);
DECLARE VARIABLE VBAIXA_ESTOQUE_COMPOSICAO VARCHAR(1);
DECLARE VARIABLE VPRODUTO_COMPOSICAO INTEGER;
DECLARE VARIABLE VPERCENTUAL_COMPOSICAO REAL;
BEGIN
    /*------------------------------------------------------------------------*/
    /*********** Estorno da Entrada / Sada do Estoque dos Produtos ***********/
    /*------------------------------------------------------------------------*/
    SELECT P.CONTROLA_ESTOQUE, P.BAIXA_ESTOQUE_COMPOSICAO
    FROM CAD_PRODUTO P
    WHERE P.EMPRESA = OLD.EMPRESA
      AND P.CADASTRO = OLD.PRODUTO
    INTO :VCONTROLA_ESTOQUE, :VBAIXA_ESTOQUE_COMPOSICAO;

    SELECT TIPO_MOVIMENTACAO_ESTOQUE
    FROM CAD_MOVIMENTACAO_ESTOQUE
    WHERE EMPRESA = OLD.EMPRESA
      AND CADASTRO = OLD.MOTIVO_MOVIMENTACAO_ESTOQUE
    INTO :VTIPO_MOVIMENTACAO_ESTOQUE;

    IF (VTIPO_MOVIMENTACAO_ESTOQUE = 'Sada') THEN
    BEGIN
        IF (VBAIXA_ESTOQUE_COMPOSICAO = '2') THEN
        BEGIN
            FOR SELECT I.PRODUTO_COMPOSICAO, I.PERCENTUAL
            FROM CAD_IT_PRODUTO_COMPOSICAO I
            LEFT OUTER JOIN CAD_PRODUTO PR ON(PR.EMPRESA = I.EMPRESA
                                          AND PR.CADASTRO = I.PRODUTO_COMPOSICAO)
            WHERE I.EMPRESA = OLD.EMPRESA
              AND I.PRODUTO = OLD.PRODUTO
              AND PR.CONTROLA_ESTOQUE = '2'
            INTO :VPRODUTO_COMPOSICAO, :VPERCENTUAL_COMPOSICAO

            DO BEGIN
                UPDATE CAD_PRODUTO P SET
                P.ESTOQUE = P.ESTOQUE + (OLD.QUANTIDADE * :VPERCENTUAL_COMPOSICAO),
                P.HASH_MD5 = UDF_GERA_CRIPTOGRAFIA(CAST(P.EMPRESA || P.CADASTRO AS VARCHAR(32)))
                WHERE P.EMPRESA = OLD.EMPRESA
                  AND P.CADASTRO = :VPRODUTO_COMPOSICAO;
            END
        END

        IF (VCONTROLA_ESTOQUE = '2') THEN
        BEGIN
            SELECT E.TIPO_CODIGO_BARRAS
            FROM CAD_EMPRESA E
            WHERE E.CADASTRO = OLD.EMPRESA
            INTO :VTIPO_CODIGO_BARRAS;

            IF (VTIPO_CODIGO_BARRAS = 'Grade') THEN
            BEGIN
                UPDATE CAD_IT_PRODUTO_CODIGO_BARRA I SET
                I.ESTOQUE = I.ESTOQUE + OLD.QUANTIDADE
                WHERE I.EMPRESA = OLD.EMPRESA
                  AND I.PRODUTO = OLD.PRODUTO
                  AND I.CODIGO_BARRA = OLD.CODIGO_BARRA;
            END

            UPDATE CAD_PRODUTO P SET
            P.ESTOQUE = P.ESTOQUE + OLD.QUANTIDADE,
            P.HASH_MD5 = UDF_GERA_CRIPTOGRAFIA(CAST(P.EMPRESA || P.CADASTRO AS VARCHAR(32)))
            WHERE P.EMPRESA = OLD.EMPRESA
              AND P.CADASTRO = OLD.PRODUTO;
        END
    END
    ELSE BEGIN
        IF (VBAIXA_ESTOQUE_COMPOSICAO = '2') THEN
        BEGIN
            FOR SELECT I.PRODUTO_COMPOSICAO, I.PERCENTUAL
            FROM CAD_IT_PRODUTO_COMPOSICAO I
            LEFT OUTER JOIN CAD_PRODUTO PR ON(PR.EMPRESA = I.EMPRESA
                                          AND PR.CADASTRO = I.PRODUTO_COMPOSICAO)
            WHERE I.EMPRESA = OLD.EMPRESA
              AND I.PRODUTO = OLD.PRODUTO
              AND PR.CONTROLA_ESTOQUE = '2'
            INTO :VPRODUTO_COMPOSICAO, :VPERCENTUAL_COMPOSICAO

            DO BEGIN
                UPDATE CAD_PRODUTO P SET
                P.ESTOQUE = P.ESTOQUE - (OLD.QUANTIDADE * :VPERCENTUAL_COMPOSICAO),
                P.HASH_MD5 = UDF_GERA_CRIPTOGRAFIA(CAST(P.EMPRESA || P.CADASTRO AS VARCHAR(32)))
                WHERE P.EMPRESA = OLD.EMPRESA
                  AND P.CADASTRO = :VPRODUTO_COMPOSICAO;
            END
        END

        IF (VCONTROLA_ESTOQUE = '2') THEN
        BEGIN
            SELECT E.TIPO_CODIGO_BARRAS
            FROM CAD_EMPRESA E
            WHERE E.CADASTRO = OLD.EMPRESA
            INTO :VTIPO_CODIGO_BARRAS;

            IF (VTIPO_CODIGO_BARRAS = 'Grade') THEN
            BEGIN
                UPDATE CAD_IT_PRODUTO_CODIGO_BARRA I SET
                I.ESTOQUE = I.ESTOQUE - OLD.QUANTIDADE
                WHERE I.EMPRESA = OLD.EMPRESA
                  AND I.PRODUTO = OLD.PRODUTO
                  AND I.CODIGO_BARRA = OLD.CODIGO_BARRA;
            END

            UPDATE CAD_PRODUTO P SET
            P.ESTOQUE = P.ESTOQUE - OLD.QUANTIDADE,
            P.HASH_MD5 = UDF_GERA_CRIPTOGRAFIA(CAST(P.EMPRESA || P.CADASTRO AS VARCHAR(32)))
            WHERE P.EMPRESA = OLD.EMPRESA
              AND P.CADASTRO = OLD.PRODUTO;
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
DROP EXTERNAL FUNCTION UDF_GERA_HASH_MD5_PRODUTO      

Erro..:  unsuccessful metadata update
Function UDF_GERA_HASH_MD5_PRODUTO not found
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
DROP EXTERNAL FUNCTION UDF_HASH_MD5_IT_PEDIDO_VENDA   

Erro..:  unsuccessful metadata update
Function UDF_HASH_MD5_IT_PEDIDO_VENDA not found
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
DROP EXTERNAL FUNCTION UDF_HASH_MD5_PEDIDO_VENDA  

Erro..:  unsuccessful metadata update
Function UDF_HASH_MD5_PEDIDO_VENDA not found
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
DROP EXTERNAL FUNCTION UDF_HASH_MD5_PRODUTO   

Erro..:  unsuccessful metadata update
Function UDF_HASH_MD5_PRODUTO not found
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_ORDEM_SERVICO      
ADD TOTALIZADOR_PARCIAL VARCHAR(10)   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
UPDATE MOV_CUPOM_FISCAL SET       
DATA_FINAL_EMISSAO = EMISSAO      
WHERE DATA_FINAL_EMISSAO IS NULL  

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
UPDATE MOV_CUPOM_FISCAL SET       
HORA_FINAL_EMISSAO = HORA         
WHERE HORA_FINAL_EMISSAO IS NULL  

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
DECLARE EXTERNAL FUNCTION UDF_TIME_TO_STR         
    CSTRING(13)                                   
RETURNS CSTRING(8)                                
ENTRY_POINT 'time_to_str' MODULE_NAME 'Udf';  

Erro..:  unsuccessful metadata update
DEFINE FUNCTION failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_9"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_CUPOM_FISCAL          
ADD HASH_MD5 VARCHAR(32) NOT NULL     

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_CUPOM_FISCAL       
ADD HASH_MD5 VARCHAR(32) NOT NULL     

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_CUPOM_FISCAL_CONDICAO_PAGTO   
ADD HASH_MD5 VARCHAR(32) NOT NULL             

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_CUPOM_FISCAL_REDUCAO_Z    
ADD HASH_MD5 VARCHAR(32) NOT NULL         

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_CUPOM_FISCAL_REDUCAO_Z 
ADD HASH_MD5 VARCHAR(32) NOT NULL         

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA                                           
ADD IMPRIME_QTD_CAIXA_ETIQUETA VARCHAR(1) DEFAULT '1' NOT NULL  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_FRENTE_CAIXA                
ADD BITSPARADA_BALANCA INTEGER DEFAULT 0    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA   
DROP GERA_SINTEGRA        

Erro..:  unsuccessful metadata update
column GERA_SINTEGRA does not exist in table/view CAD_EMPRESA
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
DROP GENERATOR MOV_ORCAMENTO_001  

Erro..:  unsuccessful metadata update
Generator MOV_ORCAMENTO_001 not found
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
DROP GENERATOR MOV_ORCAMENTO_002  

Erro..:  unsuccessful metadata update
Generator MOV_ORCAMENTO_002 not found
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
DROP PROCEDURE PRO_HIST_ORCAMENTO 

Erro..:  unsuccessful metadata update
Procedure PRO_HIST_ORCAMENTO not found
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
DROP TRIGGER MOV_IT_ORCAMENTO_01  

Erro..:  unsuccessful metadata update
Trigger MOV_IT_ORCAMENTO_01 not found

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
DROP TRIGGER MOV_ORCAMENTO_01 

Erro..:  unsuccessful metadata update
Trigger MOV_ORCAMENTO_01 not found

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
DROP TABLE MOV_IT_ORCAMENTO   

Erro..:  Dynamic SQL Error
SQL error code = -607
Invalid command
Table MOV_IT_ORCAMENTO does not exist
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
DROP TABLE MOV_ORCAMENTO  

Erro..:  Dynamic SQL Error
SQL error code = -607
Invalid command
Table MOV_ORCAMENTO does not exist
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE MOV_REGISTRO_PRE_VENDA                                                                               
(EMPRESA INTEGER NOT NULL,                                                                                        
 NUMERO INTEGER NOT NULL,                                                                                         
 CLIENTE INTEGER NOT NULL,                                                                                        
 EMISSAO DATE NOT NULL,                                                                                           
 VENDEDOR INTEGER NOT NULL,                                                                                       
 PERCENTUAL_COMISSAO DOUBLE PRECISION DEFAULT 0,                                                                  
 VALOR_DESCONTO DOUBLE PRECISION DEFAULT 0,                                                                       
 VALOR_ACRESCIMO DOUBLE PRECISION DEFAULT 0,                                                                      
 TOTAL_PRODUTO DOUBLE PRECISION DEFAULT 0,                                                                        
 TOTAL_REGISTRO_PRE_VENDA DOUBLE PRECISION DEFAULT 0,                                                             
 STATUS VARCHAR(15) DEFAULT 'Pendente' NOT NULL,                                                                
 UTILIZAR_PRECO_PROMOCAO VARCHAR(1) DEFAULT '1' NOT NULL,                                                       
 CAIXA_ECF VARCHAR(3),                                                                                            
 ANO_ECF INTEGER,                                                                                                 
 NUMERO_ECF INTEGER,                                                                                              
 NUMERO_CUPOM_FISCAL INTEGER,                                                                                     
 HASH_MD5 VARCHAR(32) NOT NULL,                                                                                   
 FOREIGN KEY(EMPRESA) REFERENCES CAD_EMPRESA(CADASTRO),                                                           
 FOREIGN KEY(CLIENTE) REFERENCES CAD_PESSOA(CADASTRO),                                                            
 FOREIGN KEY(VENDEDOR) REFERENCES CAD_PESSOA(CADASTRO),                                                           
 FOREIGN KEY(EMPRESA, CAIXA_ECF, ANO_ECF, NUMERO_ECF) REFERENCES MOV_CUPOM_FISCAL(EMPRESA, CAIXA, ANO, NUMERO),   
 PRIMARY KEY(EMPRESA, NUMERO))                                                                                    

Erro..:  unsuccessful metadata update
Table MOV_REGISTRO_PRE_VENDA already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE GENERATOR MOV_REGISTRO_PRE_VENDA_001   

Erro..:  unsuccessful metadata update
Generator MOV_REGISTRO_PRE_VENDA_001 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE GENERATOR MOV_REGISTRO_PRE_VENDA_002   

Erro..:  unsuccessful metadata update
Generator MOV_REGISTRO_PRE_VENDA_002 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE MOV_IT_REGISTRO_PRE_VENDA                                            
(EMPRESA INTEGER NOT NULL,                                                        
 NUMERO INTEGER NOT NULL,                                                         
 SEQ INTEGER NOT NULL,                                                            
 PRODUTO INTEGER NOT NULL,                                                        
 CODIGO_BARRA VARCHAR(25),                                                        
 QUANTIDADE DOUBLE PRECISION DEFAULT 0,                                           
 VALOR DOUBLE PRECISION DEFAULT 0,                                                
 PERCENTUAL_DESCONTO DOUBLE PRECISION DEFAULT 0,                                  
 TOTAL DOUBLE PRECISION DEFAULT 0,                                                
 PRECO_CUSTO DOUBLE PRECISION DEFAULT 0,                                          
 CUSTO_MEDIO DOUBLE PRECISION DEFAULT 0,                                          
 ITEM_CANCELADO VARCHAR(3) DEFAULT 'No' NOT NULL,                              
 DATA_INCLUSAO DATE NOT NULL,                                                     
 TOTALIZADOR_PARCIAL VARCHAR(10),                                                 
 HASH_MD5 VARCHAR(32) NOT NULL,                                                   
 FOREIGN KEY(EMPRESA, NUMERO) REFERENCES MOV_REGISTRO_PRE_VENDA(EMPRESA, NUMERO), 
 FOREIGN KEY(EMPRESA, PRODUTO) REFERENCES CAD_PRODUTO(EMPRESA, CADASTRO),         
 PRIMARY KEY(EMPRESA, NUMERO, SEQ))                                               

Erro..:  unsuccessful metadata update
Table MOV_IT_REGISTRO_PRE_VENDA already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE trigger mov_registro_pre_venda_02 for mov_registro_pre_venda
active before delete position 0
AS
BEGIN
    DELETE FROM MOV_IT_REGISTRO_PRE_VENDA
    WHERE EMPRESA = OLD.EMPRESA
      AND NUMERO = OLD.NUMERO;
END

Erro..:  unsuccessful metadata update
DEFINE TRIGGER failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_8"

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                               
FROM CAD_TELA_SISTEMA                         
WHERE NOME = 'frmmov_registro_pre_venda'    

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                                       
FROM CAD_TELA_SISTEMA                                 
WHERE NOME = 'frmmov_registro_pre_venda_gerenciar'  

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 SELECT CADASTRO                                 
 FROM CAD_TELA_SISTEMA                           
 WHERE NOME = 'frmmov_emissao_etiqueta_pessoa' 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE CAD_PRODUTO_ESPELHO      
(EMPRESA VARCHAR(15) NOT NULL,        
 CADASTRO VARCHAR(15) NOT NULL,       
 PRIMARY KEY(EMPRESA, CADASTRO))      

Erro..:  unsuccessful metadata update
Table CAD_PRODUTO_ESPELHO already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER PROCEDURE PRO_ESPELHO_PRODUTO (
    e_evento varchar(20),
    e_empresa integer)
returns (
    cadastro integer)
as
DECLARE VARIABLE VREGISTRO_EXCLUIDO INTEGER;
DECLARE VARIABLE VREGISTRO_INCLUIDO VARCHAR(15);
BEGIN
    IF (:E_EVENTO = 'Excluso') THEN
    BEGIN
        FOR SELECT UDF_GERA_CRIPTOGRAFIA(E.CADASTRO)
        FROM CAD_PRODUTO_ESPELHO E
        WHERE E.EMPRESA = UDF_GERA_CRIPTOGRAFIA(:E_EMPRESA)
        ORDER BY E.CADASTRO
        INTO :CADASTRO
        DO BEGIN
            VREGISTRO_EXCLUIDO = 0;

            SELECT PR.CADASTRO
            FROM CAD_PRODUTO PR
            WHERE PR.EMPRESA = :E_EMPRESA
              AND PR.CADASTRO = :CADASTRO
            INTO VREGISTRO_EXCLUIDO;

            IF ((VREGISTRO_EXCLUIDO IS NULL) OR (VREGISTRO_EXCLUIDO = 0)) THEN
            BEGIN
                SUSPEND;
            END
        END
    END
    ELSE BEGIN
        IF (:E_EVENTO = 'Incluso') THEN
        BEGIN
            FOR SELECT PR.CADASTRO
            FROM CAD_PRODUTO PR
            WHERE PR.EMPRESA = :E_EMPRESA
            ORDER BY PR.CADASTRO
            INTO :CADASTRO
            DO BEGIN
                VREGISTRO_INCLUIDO = '';

                SELECT E.CADASTRO
                FROM CAD_PRODUTO_ESPELHO E
                WHERE E.EMPRESA = UDF_GERA_CRIPTOGRAFIA(:E_EMPRESA)
                  AND E.CADASTRO = UDF_GERA_CRIPTOGRAFIA(:CADASTRO)
                INTO VREGISTRO_INCLUIDO;

                IF ((VREGISTRO_INCLUIDO IS NULL) OR (VREGISTRO_INCLUIDO = '')) THEN
                BEGIN
                    SUSPEND;
                END
            END
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE MOV_DAV_ESPELHO          
(EMPRESA VARCHAR(15) NOT NULL,        
 TIPO VARCHAR(2) NOT NULL,            
 NUMERO VARCHAR(15) NOT NULL,         
 PRIMARY KEY(EMPRESA, TIPO, NUMERO))  

Erro..:  unsuccessful metadata update
Table MOV_DAV_ESPELHO already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER PROCEDURE PRO_ESPELHO_DAV (
    e_evento varchar(20),
    e_empresa integer)
returns (
    numero integer)
as
declare variable vtipo varchar(2);
declare variable vregistro_excluido integer;
declare variable vregistro_incluido varchar(15);
BEGIN
    IF (:E_EVENTO = 'Excluso') THEN
    BEGIN
        FOR SELECT UDF_GERA_CRIPTOGRAFIA(E.TIPO), UDF_GERA_CRIPTOGRAFIA(E.NUMERO)
        FROM MOV_DAV_ESPELHO E
        WHERE E.EMPRESA = UDF_GERA_CRIPTOGRAFIA(:E_EMPRESA)
        ORDER BY E.NUMERO
        INTO :VTIPO, :NUMERO
        DO BEGIN
            VREGISTRO_EXCLUIDO = 0;

            IF (VTIPO = 'PV') THEN
            BEGIN
                SELECT PV.NUMERO
                FROM MOV_PEDIDO_VENDA PV
                WHERE PV.EMPRESA = :E_EMPRESA
                  AND PV.NUMERO = :NUMERO
                INTO VREGISTRO_EXCLUIDO;

                IF ((VREGISTRO_EXCLUIDO IS NULL) OR (VREGISTRO_EXCLUIDO = 0)) THEN
                BEGIN
                    SUSPEND;
                END
            END
            ELSE BEGIN
                IF (VTIPO = 'OS') THEN
                BEGIN
                    SELECT OS.NUMERO
                    FROM MOV_ORDEM_SERVICO OS
                    WHERE OS.EMPRESA = :E_EMPRESA
                      AND OS.NUMERO = :NUMERO
                    INTO VREGISTRO_EXCLUIDO;

                    IF ((VREGISTRO_EXCLUIDO IS NULL) OR (VREGISTRO_EXCLUIDO = 0)) THEN
                    BEGIN
                        SUSPEND;
                    END
                END
                ELSE BEGIN
                    IF (VTIPO = 'RP') THEN
                    BEGIN
                        SELECT RP.NUMERO
                        FROM MOV_REGISTRO_PRE_VENDA RP
                        WHERE RP.EMPRESA = :E_EMPRESA
                          AND RP.NUMERO = :NUMERO
                        INTO VREGISTRO_EXCLUIDO;

                        IF ((VREGISTRO_EXCLUIDO IS NULL) OR (VREGISTRO_EXCLUIDO = 0)) THEN
                        BEGIN
                            SUSPEND;
                        END
                    END
                END
            END
        END
    END
    ELSE BEGIN
        IF (:E_EVENTO = 'Incluso') THEN
        BEGIN
            FOR SELECT PV.NUMERO
            FROM MOV_PEDIDO_VENDA PV
            WHERE PV.EMPRESA = :E_EMPRESA
            ORDER BY PV.NUMERO
            INTO :NUMERO
            DO BEGIN
                VREGISTRO_INCLUIDO = '';

                SELECT E.NUMERO
                FROM MOV_DAV_ESPELHO E
                WHERE E.EMPRESA = UDF_GERA_CRIPTOGRAFIA(:E_EMPRESA)
                  AND E.TIPO = UDF_GERA_CRIPTOGRAFIA('PV')
                  AND E.NUMERO = UDF_GERA_CRIPTOGRAFIA(:NUMERO)
                INTO VREGISTRO_INCLUIDO;

                IF ((VREGISTRO_INCLUIDO IS NULL) OR (VREGISTRO_INCLUIDO = '')) THEN
                BEGIN
                    SUSPEND;
                END
            END

            FOR SELECT OS.NUMERO
            FROM MOV_ORDEM_SERVICO OS
            WHERE OS.EMPRESA = :E_EMPRESA
            ORDER BY OS.NUMERO
            INTO :NUMERO
            DO BEGIN
                VREGISTRO_INCLUIDO = '';

                SELECT E.NUMERO
                FROM MOV_DAV_ESPELHO E
                WHERE E.EMPRESA = UDF_GERA_CRIPTOGRAFIA(:E_EMPRESA)
                  AND E.TIPO = UDF_GERA_CRIPTOGRAFIA('OS')
                  AND E.NUMERO = UDF_GERA_CRIPTOGRAFIA(:NUMERO)
                INTO VREGISTRO_INCLUIDO;

                IF ((VREGISTRO_INCLUIDO IS NULL) OR (VREGISTRO_INCLUIDO = '')) THEN
                BEGIN
                    SUSPEND;
                END
            END

            FOR SELECT RP.NUMERO
            FROM MOV_REGISTRO_PRE_VENDA RP
            WHERE RP.EMPRESA = :E_EMPRESA
            ORDER BY RP.NUMERO
            INTO :NUMERO
            DO BEGIN
                VREGISTRO_INCLUIDO = '';

                SELECT E.NUMERO
                FROM MOV_DAV_ESPELHO E
                WHERE E.EMPRESA = UDF_GERA_CRIPTOGRAFIA(:E_EMPRESA)
                  AND E.TIPO = UDF_GERA_CRIPTOGRAFIA('RP')
                  AND E.NUMERO = UDF_GERA_CRIPTOGRAFIA(:NUMERO)
                INTO VREGISTRO_INCLUIDO;

                IF ((VREGISTRO_INCLUIDO IS NULL) OR (VREGISTRO_INCLUIDO = '')) THEN
                BEGIN
                    SUSPEND;
                END
            END
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE MOV_IT_DAV_ESPELHO           
(EMPRESA VARCHAR(15) NOT NULL,            
 TIPO VARCHAR(2) NOT NULL,                
 NUMERO VARCHAR(15) NOT NULL,             
 SEQ VARCHAR(15) NOT NULL,                
 PRIMARY KEY(EMPRESA, TIPO, NUMERO, SEQ)) 

Erro..:  unsuccessful metadata update
Table MOV_IT_DAV_ESPELHO already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER PROCEDURE PRO_ESPELHO_IT_DAV (
    e_evento varchar(20),
    e_empresa integer)
returns (
    numero integer,
    seq integer)
as
declare variable vtipo varchar(2);
declare variable vregistro_excluido integer;
declare variable vregistro_incluido varchar(15);
BEGIN
    IF (:E_EVENTO = 'Excluso') THEN
    BEGIN
        FOR SELECT UDF_GERA_CRIPTOGRAFIA(I.TIPO), UDF_GERA_CRIPTOGRAFIA(I.NUMERO), UDF_GERA_CRIPTOGRAFIA(I.SEQ)
        FROM MOV_IT_DAV_ESPELHO I
        WHERE I.EMPRESA = UDF_GERA_CRIPTOGRAFIA(:E_EMPRESA)
        ORDER BY I.NUMERO, I.SEQ
        INTO :VTIPO, :NUMERO, :SEQ
        DO BEGIN
            VREGISTRO_EXCLUIDO = 0;

            IF (VTIPO = 'PV') THEN
            BEGIN
                SELECT PV.NUMERO
                FROM MOV_IT_PEDIDO_VENDA PV
                WHERE PV.EMPRESA = :E_EMPRESA
                  AND PV.NUMERO = :NUMERO
                  AND PV.SEQ = :SEQ
                INTO VREGISTRO_EXCLUIDO;

                IF ((VREGISTRO_EXCLUIDO IS NULL) OR (VREGISTRO_EXCLUIDO = 0)) THEN
                BEGIN
                    SUSPEND;
                END
            END
            ELSE BEGIN
                IF (VTIPO = 'OS') THEN
                BEGIN
                    SELECT OS.NUMERO
                    FROM MOV_IT_ORDEM_SERVICO OS
                    WHERE OS.EMPRESA = :E_EMPRESA
                      AND OS.NUMERO = :NUMERO
                      AND OS.SEQ = :SEQ
                    INTO VREGISTRO_EXCLUIDO;

                    IF ((VREGISTRO_EXCLUIDO IS NULL) OR (VREGISTRO_EXCLUIDO = 0)) THEN
                    BEGIN
                        SUSPEND;
                    END
                END
                ELSE BEGIN
                    IF (VTIPO = 'RP') THEN
                    BEGIN
                        SELECT RP.NUMERO
                        FROM MOV_IT_REGISTRO_PRE_VENDA RP
                        WHERE RP.EMPRESA = :E_EMPRESA
                          AND RP.NUMERO = :NUMERO
                          AND RP.SEQ = :SEQ
                        INTO VREGISTRO_EXCLUIDO;

                        IF ((VREGISTRO_EXCLUIDO IS NULL) OR (VREGISTRO_EXCLUIDO = 0)) THEN
                        BEGIN
                            SUSPEND;
                        END
                    END
                END
            END
        END
    END
    ELSE BEGIN
        IF (:E_EVENTO = 'Incluso') THEN
        BEGIN
            FOR SELECT PV.NUMERO, PV.SEQ
            FROM MOV_IT_PEDIDO_VENDA PV
            WHERE PV.EMPRESA = :E_EMPRESA
            ORDER BY PV.NUMERO, PV.SEQ
            INTO :NUMERO, :SEQ
            DO BEGIN
                VREGISTRO_INCLUIDO = '';

                SELECT I.NUMERO
                FROM MOV_IT_DAV_ESPELHO I
                WHERE I.EMPRESA = UDF_GERA_CRIPTOGRAFIA(:E_EMPRESA)
                  AND I.TIPO = UDF_GERA_CRIPTOGRAFIA('PV')
                  AND I.NUMERO = UDF_GERA_CRIPTOGRAFIA(:NUMERO)
                  AND I.SEQ = UDF_GERA_CRIPTOGRAFIA(:SEQ)
                INTO VREGISTRO_INCLUIDO;

                IF ((VREGISTRO_INCLUIDO IS NULL) OR (VREGISTRO_INCLUIDO = '')) THEN
                BEGIN
                    SUSPEND;
                END
            END

            FOR SELECT OS.NUMERO, OS.SEQ
            FROM MOV_IT_ORDEM_SERVICO OS
            WHERE OS.EMPRESA = :E_EMPRESA
            ORDER BY OS.NUMERO, OS.SEQ
            INTO :NUMERO, :SEQ
            DO BEGIN
                VREGISTRO_INCLUIDO = '';

                SELECT I.NUMERO
                FROM MOV_IT_DAV_ESPELHO I
                WHERE I.EMPRESA = UDF_GERA_CRIPTOGRAFIA(:E_EMPRESA)
                  AND I.TIPO = UDF_GERA_CRIPTOGRAFIA('OS')
                  AND I.NUMERO = UDF_GERA_CRIPTOGRAFIA(:NUMERO)
                  AND I.SEQ = UDF_GERA_CRIPTOGRAFIA(:SEQ)
                INTO VREGISTRO_INCLUIDO;

                IF ((VREGISTRO_INCLUIDO IS NULL) OR (VREGISTRO_INCLUIDO = '')) THEN
                BEGIN
                    SUSPEND;
                END
            END

            FOR SELECT RP.NUMERO, RP.SEQ
            FROM MOV_IT_REGISTRO_PRE_VENDA RP
            WHERE RP.EMPRESA = :E_EMPRESA
            ORDER BY RP.NUMERO, RP.SEQ
            INTO :NUMERO, :SEQ
            DO BEGIN
                VREGISTRO_INCLUIDO = '';

                SELECT I.NUMERO
                FROM MOV_IT_DAV_ESPELHO I
                WHERE I.EMPRESA = UDF_GERA_CRIPTOGRAFIA(:E_EMPRESA)
                  AND I.TIPO = UDF_GERA_CRIPTOGRAFIA('RP')
                  AND I.NUMERO = UDF_GERA_CRIPTOGRAFIA(:NUMERO)
                  AND I.SEQ = UDF_GERA_CRIPTOGRAFIA(:SEQ)
                INTO VREGISTRO_INCLUIDO;

                IF ((VREGISTRO_INCLUIDO IS NULL) OR (VREGISTRO_INCLUIDO = '')) THEN
                BEGIN
                    SUSPEND;
                END
            END
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE MOV_CUPOM_FISCAL_ESPELHO         
(EMPRESA VARCHAR(15) NOT NULL,                
 CAIXA VARCHAR(15) NOT NULL,                  
 ANO VARCHAR(15) NOT NULL,                    
 NUMERO VARCHAR(15) NOT NULL,                 
 PRIMARY KEY(EMPRESA, CAIXA, ANO, NUMERO))    

Erro..:  unsuccessful metadata update
Table MOV_CUPOM_FISCAL_ESPELHO already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE MOV_IT_CUPOM_FISCAL_ESPELHO          
(EMPRESA VARCHAR(15) NOT NULL,                    
 CAIXA VARCHAR(15) NOT NULL,                      
 ANO VARCHAR(15) NOT NULL,                        
 NUMERO VARCHAR(15) NOT NULL,                     
 SEQ VARCHAR(15) NOT NULL,                        
 PRIMARY KEY(EMPRESA, CAIXA, ANO, NUMERO, SEQ))   

Erro..:  unsuccessful metadata update
Table MOV_IT_CUPOM_FISCAL_ESPELHO already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE MOV_CUPOM_FISCAL_PAGTO_ESPELHO                       
(EMPRESA VARCHAR(15) NOT NULL,                                    
 CAIXA VARCHAR(15) NOT NULL,                                      
 ANO VARCHAR(15) NOT NULL,                                        
 NUMERO VARCHAR(15) NOT NULL,                                     
 CONDICAO_PAGAMENTO VARCHAR(15) NOT NULL,                         
 PRIMARY KEY(EMPRESA, CAIXA, ANO, NUMERO, CONDICAO_PAGAMENTO))    

Erro..:  unsuccessful metadata update
Table MOV_CUPOM_FISCAL_PAGTO_ESPELHO already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER PROCEDURE PRO_ESPELHO_CUPOM_FISCAL (
    E_EVENTO VARCHAR(20),
    E_EMPRESA INTEGER)
RETURNS (
    NUMERO INTEGER)
AS
DECLARE VARIABLE VREGISTRO_EXCLUIDO INTEGER;
DECLARE VARIABLE VREGISTRO_INCLUIDO VARCHAR(15);
DECLARE VARIABLE VCAIXA VARCHAR(15);
DECLARE VARIABLE VANO VARCHAR(15);
BEGIN
    IF (:E_EVENTO = 'Excluso') THEN
    BEGIN
        FOR SELECT UDF_GERA_CRIPTOGRAFIA(E.CAIXA), UDF_GERA_CRIPTOGRAFIA(E.ANO), UDF_GERA_CRIPTOGRAFIA(E.NUMERO)
        FROM MOV_CUPOM_FISCAL_ESPELHO E
        WHERE E.EMPRESA = UDF_GERA_CRIPTOGRAFIA(:E_EMPRESA)
        ORDER BY E.CAIXA, E.ANO, E.NUMERO
        INTO :VCAIXA, :VANO, NUMERO
        DO BEGIN
            VREGISTRO_EXCLUIDO = 0;

            SELECT F.NUMERO
            FROM MOV_CUPOM_FISCAL F
            WHERE F.EMPRESA = :E_EMPRESA
              AND F.CAIXA = :VCAIXA
              AND F.ANO = :VANO
              AND F.NUMERO = :NUMERO
            INTO VREGISTRO_EXCLUIDO;

            IF ((VREGISTRO_EXCLUIDO IS NULL) OR (VREGISTRO_EXCLUIDO = 0)) THEN
            BEGIN
                SUSPEND;
            END
        END
    END
    ELSE BEGIN
        IF (:E_EVENTO = 'Incluso') THEN
        BEGIN
            FOR SELECT F.CAIXA, F.ANO, F.NUMERO
            FROM MOV_CUPOM_FISCAL F
            WHERE F.EMPRESA = :E_EMPRESA
            ORDER BY F.CAIXA, F.ANO, F.NUMERO
            INTO :VCAIXA, :VANO, NUMERO
            DO BEGIN
                VREGISTRO_INCLUIDO = '';

                SELECT E.NUMERO
                FROM MOV_CUPOM_FISCAL_ESPELHO E
                WHERE E.EMPRESA = UDF_GERA_CRIPTOGRAFIA(:E_EMPRESA)
                  AND E.CAIXA = UDF_GERA_CRIPTOGRAFIA(:VCAIXA)
                  AND E.ANO = UDF_GERA_CRIPTOGRAFIA(:VANO)
                  AND E.NUMERO = UDF_GERA_CRIPTOGRAFIA(:NUMERO)
                INTO VREGISTRO_INCLUIDO;

                IF ((VREGISTRO_INCLUIDO IS NULL) OR (VREGISTRO_INCLUIDO = '')) THEN
                BEGIN
                    SUSPEND;
                END
            END
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER PROCEDURE PRO_ESPELHO_IT_CUPOM_FISCAL (
    E_EVENTO VARCHAR(20),
    E_EMPRESA INTEGER)
RETURNS (
    NUMERO INTEGER)
AS
DECLARE VARIABLE VREGISTRO_EXCLUIDO INTEGER;
DECLARE VARIABLE VREGISTRO_INCLUIDO VARCHAR(15);
DECLARE VARIABLE VCAIXA VARCHAR(15);
DECLARE VARIABLE VANO VARCHAR(15);
DECLARE VARIABLE VSEQ VARCHAR(15);
BEGIN
    IF (:E_EVENTO = 'Excluso') THEN
    BEGIN
        FOR SELECT UDF_GERA_CRIPTOGRAFIA(E.CAIXA), UDF_GERA_CRIPTOGRAFIA(E.ANO), UDF_GERA_CRIPTOGRAFIA(E.NUMERO), UDF_GERA_CRIPTOGRAFIA(E.SEQ)
        FROM MOV_IT_CUPOM_FISCAL_ESPELHO E
        WHERE E.EMPRESA = UDF_GERA_CRIPTOGRAFIA(:E_EMPRESA)
        ORDER BY E.CAIXA, E.ANO, E.NUMERO, E.SEQ
        INTO :VCAIXA, :VANO, NUMERO, :VSEQ
        DO BEGIN
            VREGISTRO_EXCLUIDO = 0;

            SELECT I.NUMERO
            FROM MOV_IT_CUPOM_FISCAL I
            WHERE I.EMPRESA = :E_EMPRESA
              AND I.CAIXA = :VCAIXA
              AND I.ANO = :VANO
              AND I.NUMERO = :NUMERO
              AND I.SEQ = :VSEQ
            INTO VREGISTRO_EXCLUIDO;

            IF ((VREGISTRO_EXCLUIDO IS NULL) OR (VREGISTRO_EXCLUIDO = 0)) THEN
            BEGIN
                SUSPEND;
            END
        END
    END
    ELSE BEGIN
        IF (:E_EVENTO = 'Incluso') THEN
        BEGIN
            FOR SELECT I.CAIXA, I.ANO, I.NUMERO, I.SEQ
            FROM MOV_IT_CUPOM_FISCAL I
            WHERE I.EMPRESA = :E_EMPRESA
            ORDER BY I.CAIXA, I.ANO, I.NUMERO, I.SEQ
            INTO :VCAIXA, :VANO, NUMERO, :VSEQ
            DO BEGIN
                VREGISTRO_INCLUIDO = '';

                SELECT E.NUMERO
                FROM MOV_IT_CUPOM_FISCAL_ESPELHO E
                WHERE E.EMPRESA = UDF_GERA_CRIPTOGRAFIA(:E_EMPRESA)
                  AND E.CAIXA = UDF_GERA_CRIPTOGRAFIA(:VCAIXA)
                  AND E.ANO = UDF_GERA_CRIPTOGRAFIA(:VANO)
                  AND E.NUMERO = UDF_GERA_CRIPTOGRAFIA(:NUMERO)
                  AND E.SEQ = UDF_GERA_CRIPTOGRAFIA(:VSEQ)
                INTO VREGISTRO_INCLUIDO;

                IF ((VREGISTRO_INCLUIDO IS NULL) OR (VREGISTRO_INCLUIDO = '')) THEN
                BEGIN
                    SUSPEND;
                END
            END
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER PROCEDURE PRO_ESPELHO_CUPOM_FISCAL_PAGTO (
    E_EVENTO VARCHAR(20),
    E_EMPRESA INTEGER)
RETURNS (
    NUMERO INTEGER)
AS
DECLARE VARIABLE VREGISTRO_EXCLUIDO INTEGER;
DECLARE VARIABLE VREGISTRO_INCLUIDO VARCHAR(15);
DECLARE VARIABLE VCAIXA VARCHAR(15);
DECLARE VARIABLE VANO VARCHAR(15);
DECLARE VARIABLE VCONDICAO_PAGAMENTO VARCHAR(15);
BEGIN
    IF (:E_EVENTO = 'Excluso') THEN
    BEGIN
        FOR SELECT UDF_GERA_CRIPTOGRAFIA(E.CAIXA), UDF_GERA_CRIPTOGRAFIA(E.ANO), UDF_GERA_CRIPTOGRAFIA(E.NUMERO), UDF_GERA_CRIPTOGRAFIA(E.CONDICAO_PAGAMENTO)
        FROM MOV_CUPOM_FISCAL_PAGTO_ESPELHO E
        WHERE E.EMPRESA = UDF_GERA_CRIPTOGRAFIA(:E_EMPRESA)
        ORDER BY E.CAIXA, E.ANO, E.NUMERO, E.CONDICAO_PAGAMENTO
        INTO :VCAIXA, :VANO, NUMERO, :VCONDICAO_PAGAMENTO
        DO BEGIN
            VREGISTRO_EXCLUIDO = 0;

            SELECT F.NUMERO
            FROM MOV_CUPOM_FISCAL_CONDICAO_PAGTO F
            WHERE F.EMPRESA = :E_EMPRESA
              AND F.CAIXA = :VCAIXA
              AND F.ANO = :VANO
              AND F.NUMERO = :NUMERO
              AND F.CONDICAO_PAGAMENTO = :VCONDICAO_PAGAMENTO
            INTO VREGISTRO_EXCLUIDO;

            IF ((VREGISTRO_EXCLUIDO IS NULL) OR (VREGISTRO_EXCLUIDO = 0)) THEN
            BEGIN
                SUSPEND;
            END
        END
    END
    ELSE BEGIN
        IF (:E_EVENTO = 'Incluso') THEN
        BEGIN
            FOR SELECT F.CAIXA, F.ANO, F.NUMERO, F.CONDICAO_PAGAMENTO
            FROM MOV_CUPOM_FISCAL_CONDICAO_PAGTO F
            WHERE F.EMPRESA = :E_EMPRESA
            ORDER BY F.CAIXA, F.ANO, F.NUMERO, F.CONDICAO_PAGAMENTO
            INTO :VCAIXA, :VANO, NUMERO, :VCONDICAO_PAGAMENTO
            DO BEGIN
                VREGISTRO_INCLUIDO = '';

                SELECT E.NUMERO
                FROM MOV_CUPOM_FISCAL_PAGTO_ESPELHO E
                WHERE E.EMPRESA = UDF_GERA_CRIPTOGRAFIA(:E_EMPRESA)
                  AND E.CAIXA = UDF_GERA_CRIPTOGRAFIA(:VCAIXA)
                  AND E.ANO = UDF_GERA_CRIPTOGRAFIA(:VANO)
                  AND E.NUMERO = UDF_GERA_CRIPTOGRAFIA(:NUMERO)
                  AND E.CONDICAO_PAGAMENTO = UDF_GERA_CRIPTOGRAFIA(:VCONDICAO_PAGAMENTO)
                INTO VREGISTRO_INCLUIDO;

                IF ((VREGISTRO_INCLUIDO IS NULL) OR (VREGISTRO_INCLUIDO = '')) THEN
                BEGIN
                    SUSPEND;
                END
            END
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE MOV_CUPOM_REDUCAO_Z_ESPELHO  
(EMPRESA VARCHAR(15) NOT NULL,            
 NUMERO VARCHAR(15) NOT NULL,             
 PRIMARY KEY(EMPRESA, NUMERO))            

Erro..:  unsuccessful metadata update
Table MOV_CUPOM_REDUCAO_Z_ESPELHO already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE MOV_IT_CUPOM_REDUCAO_Z_ESPELHO   
(EMPRESA VARCHAR(15) NOT NULL,                
 NUMERO VARCHAR(15) NOT NULL,                 
 SEQ VARCHAR(15) NOT NULL,                    
 PRIMARY KEY(EMPRESA, NUMERO, SEQ))           

Erro..:  unsuccessful metadata update
Table MOV_IT_CUPOM_REDUCAO_Z_ESPELHO already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER PROCEDURE PRO_ESPELHO_CUPOM_REDUCAO_Z (
    E_EVENTO VARCHAR(20),
    E_EMPRESA INTEGER)
RETURNS (
    NUMERO INTEGER)
AS
DECLARE VARIABLE VREGISTRO_EXCLUIDO INTEGER;
DECLARE VARIABLE VREGISTRO_INCLUIDO VARCHAR(15);
BEGIN
    IF (:E_EVENTO = 'Excluso') THEN
    BEGIN
        FOR SELECT UDF_GERA_CRIPTOGRAFIA(E.NUMERO)
        FROM MOV_CUPOM_REDUCAO_Z_ESPELHO E
        WHERE E.EMPRESA = UDF_GERA_CRIPTOGRAFIA(:E_EMPRESA)
        ORDER BY E.NUMERO
        INTO NUMERO
        DO BEGIN
            VREGISTRO_EXCLUIDO = 0;

            SELECT F.NUMERO
            FROM MOV_CUPOM_FISCAL_REDUCAO_Z F
            WHERE F.EMPRESA = :E_EMPRESA
              AND F.NUMERO = :NUMERO
            INTO VREGISTRO_EXCLUIDO;

            IF ((VREGISTRO_EXCLUIDO IS NULL) OR (VREGISTRO_EXCLUIDO = 0)) THEN
            BEGIN
                SUSPEND;
            END
        END
    END
    ELSE BEGIN
        IF (:E_EVENTO = 'Incluso') THEN
        BEGIN
            FOR SELECT F.NUMERO
            FROM MOV_CUPOM_FISCAL_REDUCAO_Z F
            WHERE F.EMPRESA = :E_EMPRESA
            ORDER BY F.NUMERO
            INTO NUMERO
            DO BEGIN
                VREGISTRO_INCLUIDO = '';

                SELECT E.NUMERO
                FROM MOV_CUPOM_REDUCAO_Z_ESPELHO E
                WHERE E.EMPRESA = UDF_GERA_CRIPTOGRAFIA(:E_EMPRESA)
                  AND E.NUMERO = UDF_GERA_CRIPTOGRAFIA(:NUMERO)
                INTO VREGISTRO_INCLUIDO;

                IF ((VREGISTRO_INCLUIDO IS NULL) OR (VREGISTRO_INCLUIDO = '')) THEN
                BEGIN
                    SUSPEND;
                END
            END
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER PROCEDURE PRO_ESPELHO_IT_CUPOM_REDUCAO_Z (
    E_EVENTO VARCHAR(20),
    E_EMPRESA INTEGER)
RETURNS (
    NUMERO INTEGER)
AS
DECLARE VARIABLE VSEQ VARCHAR(15);
DECLARE VARIABLE VREGISTRO_EXCLUIDO INTEGER;
DECLARE VARIABLE VREGISTRO_INCLUIDO VARCHAR(15);
BEGIN
    IF (:E_EVENTO = 'Excluso') THEN
    BEGIN
        FOR SELECT UDF_GERA_CRIPTOGRAFIA(E.NUMERO), UDF_GERA_CRIPTOGRAFIA(E.SEQ)
        FROM MOV_IT_CUPOM_REDUCAO_Z_ESPELHO E
        WHERE E.EMPRESA = UDF_GERA_CRIPTOGRAFIA(:E_EMPRESA)
        ORDER BY E.NUMERO, E.SEQ
        INTO NUMERO, :VSEQ
        DO BEGIN
            VREGISTRO_EXCLUIDO = 0;

            SELECT I.NUMERO
            FROM MOV_IT_CUPOM_FISCAL_REDUCAO_Z I
            WHERE I.EMPRESA = :E_EMPRESA
              AND I.NUMERO = :NUMERO
              AND I.SEQ = :VSEQ
            INTO VREGISTRO_EXCLUIDO;

            IF ((VREGISTRO_EXCLUIDO IS NULL) OR (VREGISTRO_EXCLUIDO = 0)) THEN
            BEGIN
                SUSPEND;
            END
        END
    END
    ELSE BEGIN
        IF (:E_EVENTO = 'Incluso') THEN
        BEGIN
            FOR SELECT I.NUMERO, I.SEQ
            FROM MOV_IT_CUPOM_FISCAL_REDUCAO_Z I
            WHERE I.EMPRESA = :E_EMPRESA
            ORDER BY I.NUMERO, I.SEQ
            INTO NUMERO, :VSEQ
            DO BEGIN
                VREGISTRO_INCLUIDO = '';

                SELECT E.NUMERO
                FROM MOV_IT_CUPOM_REDUCAO_Z_ESPELHO E
                WHERE E.EMPRESA = UDF_GERA_CRIPTOGRAFIA(:E_EMPRESA)
                  AND E.NUMERO = UDF_GERA_CRIPTOGRAFIA(:NUMERO)
                  AND E.SEQ = UDF_GERA_CRIPTOGRAFIA(:VSEQ)
                INTO VREGISTRO_INCLUIDO;

                IF ((VREGISTRO_INCLUIDO IS NULL) OR (VREGISTRO_INCLUIDO = '')) THEN
                BEGIN
                    SUSPEND;
                END
            END
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_PEDIDO_VENDA        
 ADD NUMERO_COO_IMPRESSO_DAV INTEGER 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_ORDEM_SERVICO         
ADD NUMERO_COO_IMPRESSO_DAV INTEGER   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA                                                                                
 ADD PLANO_CONTAS_ESTOQUE_PRODUTO VARCHAR(15),                                                          
 ADD FOREIGN KEY(CADASTRO, PLANO_CONTAS_ESTOQUE_PRODUTO) REFERENCES CAD_PLANO_CONTAS(EMPRESA, CADASTRO) 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_PEDIDO_VENDA                          
ADD DAV_IMPRESSO VARCHAR(1) DEFAULT '1' NOT NULL    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE TABLE CAD_SOFTWARE_HOUSE(           
 CADASTRO INTEGER NOT NULL,                 
 NOME VARCHAR(80) NOT NULL,                 
 ENDERECO VARCHAR(60) NOT NULL,             
 BAIRRO VARCHAR(50) NOT NULL,               
 NOME_CIDADE VARCHAR(50) NOT NULL,          
 ESTADO VARCHAR(2) NOT NULL,                
 CNPJ VARCHAR(18) NOT NULL,                 
 INSCRICAO_ESTADUAL VARCHAR(18) NOT NULL,   
 INSCRICAO_MUNICIPAL VARCHAR(18) NOT NULL,  
 FONE VARCHAR(13) NOT NULL,                 
 PESSOA_CONTATO VARCHAR(80) NOT NULL,       
 NOME_SOFTWARE VARCHAR(50) NOT NULL,        
 VERSAO_SOFTWARE VARCHAR(10) NOT NULL,      
 ARQUIVO_EXECUTAVEL VARCHAR(50) NOT NULL,   
 NUMERO_LAUDO_PAF_ECF VARCHAR(50) NOT NULL, 
 HASH_MD5 VARCHAR(32) NOT NULL,             
 PRIMARY KEY(CADASTRO))                     

Erro..:  unsuccessful metadata update
Table CAD_SOFTWARE_HOUSE already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE CAD_IMPRESSORA_FISCAL    
(NUMERO_SERIE VARCHAR(20) NOT NULL,   
MARCA VARCHAR(20) NOT NULL,           
MODELO VARCHAR(20) NOT NULL,          
TIPO VARCHAR(7),                      
USUARIO INTEGER,                      
MF_ADICIONAL VARCHAR(1),              
NUMERO_CAIXA INTEGER,                 
VERSAO_SOFTWARE_BASICO VARCHAR(10),   
DATA_INSTALACAO VARCHAR(10),          
HORA_INSTALACAO VARCHAR(8),           
CNPJ VARCHAR(18),                     
INSCRICAO_ESTADUAL VARCHAR(18),       
HASH_MD5 VARCHAR(32) NOT NULL,        
PRIMARY KEY(NUMERO_SERIE))            

Erro..:  unsuccessful metadata update
Table CAD_IMPRESSORA_FISCAL already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE trigger cad_impressora_fiscal_01 for cad_impressora_fiscal
active before insert or update position 0
AS
BEGIN
    /*------------------------------------------------------------------------*/
    /*************************** Gerando o HASH MD5 ***************************/
    /******* Para saber se o registro est sendo alterado pelo sistema, *******/
    /******** no BeforePost do ClientDataSet o campo HASH_MD5 recebe a ********/
    /************* informao do campo NUMERO_SERIE (criptografado) ***********/
    /*------------------------------------------------------------------------*/
    NEW.HASH_MD5 = UDF_GERA_HASH_MD5(NEW.HASH_MD5,
                                     UDF_FORMAT_STRING(NEW.MARCA) ||
                                     UDF_FORMAT_STRING(NEW.MODELO) ||
                                     UDF_FORMAT_STRING(NEW.TIPO) ||
                                     UDF_INT_TO_STR(NEW.USUARIO) ||
                                     UDF_FORMAT_STRING(NEW.MF_ADICIONAL) ||
                                     UDF_INT_TO_STR(NEW.NUMERO_CAIXA) ||
                                     UDF_FORMAT_STRING(NEW.VERSAO_SOFTWARE_BASICO) ||
                                     UDF_FORMAT_STRING(NEW.DATA_INSTALACAO) ||
                                     UDF_FORMAT_STRING(NEW.HORA_INSTALACAO) ||
                                     UDF_FORMAT_STRING(NEW.CNPJ) ||
                                     UDF_FORMAT_STRING(NEW.INSCRICAO_ESTADUAL));


END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_EMPRESA               
ADD HASH_MD5 VARCHAR(32) NOT NULL     

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_CUPOM_FISCAL_REDUCAO_Z                
ADD NUMERO_SERIE_CRIPTOGRAFADO VARCHAR(20) NOT NULL   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_CUPOM_FISCAL                          
ADD NUMERO_SERIE_CRIPTOGRAFADO VARCHAR(20) NOT NULL   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_PEDIDO_VENDA                   
 ADD EMISSAO_CRIPTOGRAFADO VARCHAR(10) NOT NULL 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_REGISTRO_PRE_VENDA                
ADD EMISSAO_CRIPTOGRAFADO VARCHAR(10) NOT NULL    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_ORDEM_SERVICO                     
ADD EMISSAO_CRIPTOGRAFADO VARCHAR(10) NOT NULL    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_ORDEM_SERVICO                         
ADD DAV_IMPRESSO VARCHAR(1) DEFAULT '1' NOT NULL    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_NOTA_FISCAL_VENDA_03 INACTIVE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_VENDA             
ADD NUMERO_DOCUMENTO_IMPORTACAO VARCHAR(10)   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_VENDA     
ADD DATA_REGISTRO_IMPORTACAO DATE     

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_VENDA             
ADD LOCAL_DESEMBARACO_IMPORTACAO VARCHAR(60)  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_VENDA         
ADD UF_DESEMBARACO_IMPORTACAO VARCHAR(2)  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_VENDA     
ADD DATA_DESEMBARACO_IMPORTACAO DATE  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_VENDA                         
ADD BASE_CALCULO_IMPORTACAO DOUBLE PRECISION DEFAULT 0    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_VENDA                 
ADD VALOR_IMPORTACAO DOUBLE PRECISION DEFAULT 0   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_VENDA                         
ADD TOTAL_IMPORTACAO_INVOICE DOUBLE PRECISION DEFAULT 0   

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_NOTA_FISCAL_VENDA                     
ADD TOTAL_IMPORTACAO_REAL DOUBLE PRECISION DEFAULT 0  

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_NOTA_FISCAL_VENDA_03 ACTIVE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_VENDA_PRODUTO                     
ADD VALOR_UNITARIO_INVOICE DOUBLE PRECISION DEFAULT 0     

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_VENDA_PRODUTO     
ADD NUMERO_ADICAO_IMPORTACAO INTEGER      

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_VENDA_PRODUTO     
ADD SEQ_ADICAO_IMPORTACAO INTEGER         

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE MOV_IT_NOTA_VENDA_PRODUTO                     
ADD VALOR_DESPESA_ADUANEIRA DOUBLE PRECISION DEFAULT 0    

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TABLE CAD_PRODUTO                                                 
ADD TRIBUTO_PIS VARCHAR(2),                                             
ADD TRIBUTO_COFINS VARCHAR(2),                                          
ADD FOREIGN KEY(TRIBUTO_PIS) REFERENCES CAD_TRIBUTO_PIS(CADASTRO),      
ADD FOREIGN KEY(TRIBUTO_COFINS) REFERENCES CAD_TRIBUTO_COFINS(CADASTRO) 

Erro..:  unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
UPDATE CAD_PRODUTO P SET                                      
P.TRIBUTO_ICMS = '041',                                     
P.HASH_MD5 = UDF_GERA_CRIPTOGRAFIA(P.EMPRESA || P.CADASTRO)   
WHERE P.TIPO = 'Prestao de Servio'                       

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
UPDATE MOV_IT_CUPOM_FISCAL I SET                                                          
I.TRIBUTO_ICMS = '041',                                                                 
I.HASH_MD5 = UDF_GERA_CRIPTOGRAFIA(I.EMPRESA || I.CAIXA || I.ANO || I.NUMERO || I.SEQ)    
WHERE I.BASE_ISS > 0                                                                      

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmrel_controle_crediario'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmrel_contas_receber_diario_detalhado'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE MOV_PREVISAO_PEDIDO_COMPRA                       
(EMPRESA INTEGER NOT NULL,                                    
 NUMERO INTEGER NOT NULL,                                     
 FORNECEDOR INTEGER NOT NULL,                                 
 EMISSAO DATE NOT NULL,                                       
 PREVISAO_FATURAMENTO DATE NOT NULL,                          
 NUMERO_PEDIDO VARCHAR(15),                                   
 OBSERVACAO BLOB(240),                                        
 FOREIGN KEY(EMPRESA) REFERENCES CAD_EMPRESA(CADASTRO),       
 FOREIGN KEY(FORNECEDOR) REFERENCES CAD_PESSOA(CADASTRO),     
 PRIMARY KEY(EMPRESA, NUMERO))                                

Erro..:  unsuccessful metadata update
Table MOV_PREVISAO_PEDIDO_COMPRA already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE GENERATOR MOV_PREVISAO_PEDIDO_COMPRA_001

Erro..:  unsuccessful metadata update
Generator MOV_PREVISAO_PEDIDO_COMPRA_001 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE GENERATOR MOV_PREVISAO_PEDIDO_COMPRA_002

Erro..:  unsuccessful metadata update
Generator MOV_PREVISAO_PEDIDO_COMPRA_002 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE MOV_IT_PREVISAO_PEDIDO_COMPRA                                            
(EMPRESA INTEGER NOT NULL,                                                            
 NUMERO INTEGER NOT NULL,                                                             
 SEQ INTEGER NOT NULL,                                                                
 VENCIMENTO DATE,                                                                     
 VALOR DOUBLE PRECISION DEFAULT 0,                                                    
 FOREIGN KEY(EMPRESA, NUMERO) REFERENCES MOV_PREVISAO_PEDIDO_COMPRA(EMPRESA, NUMERO), 
 PRIMARY KEY(EMPRESA, NUMERO, SEQ))                                                   

Erro..:  unsuccessful metadata update
Table MOV_IT_PREVISAO_PEDIDO_COMPRA already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE trigger mov_previsao_pedido_compra_01 for mov_previsao_pedido_compra
active before delete position 0
AS
BEGIN
    DELETE FROM MOV_IT_PREVISAO_PEDIDO_COMPRA
    WHERE EMPRESA = OLD.EMPRESA
      AND NUMERO = OLD.NUMERO;
END

Erro..:  unsuccessful metadata update
DEFINE TRIGGER failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_8"

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_previsao_pedido_compra'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmrel_previsao_pedido_compra'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER PROCEDURE PRO_MOV_CONTAS_RECEBER (
    e_evento varchar(20),
    e_empresa integer,
    e_caixa varchar(3),
    e_documento varchar(2),
    e_cliente integer,
    e_numero integer,
    e_serie integer,
    e_parcela integer)
returns (
    empresa integer,
    caixa varchar(3),
    documento varchar(2),
    cliente integer,
    nome_cliente varchar(80),
    endereco_cliente varchar(50),
    cnpj_cpf_cliente varchar(18),
    numero integer,
    serie integer,
    parcela integer,
    emissao date,
    vencimento date,
    valor double precision,
    referencia varchar(80),
    observacao varchar(80),
    valor_pago double precision,
    juros_pago double precision,
    desconto_concedido double precision,
    saldo double precision,
    saldo_liquido double precision,
    plano_contas varchar(15),
    descricao_plano_contas varchar(50),
    centro_custo integer,
    descricao_centro_custo varchar(50),
    instrucao_cobranca integer,
    descricao_instrucao_cobranca varchar(50),
    vendedor integer,
    nome_vendedor varchar(80),
    situacao_titulo integer,
    descricao_situacao_titulo varchar(50),
    valor_despesa double precision,
    convenio integer,
    nome_convenio varchar(80),
    entrada varchar(1),
    a_vista varchar(1),
    ultima_data_pagamento date,
    seleciona_registro varchar(1),
    cli_nao_cobrar_juros_mensal varchar(1),
    data_entrada_spc date,
    titulo_impresso_entrada_spc varchar(1),
    data_saida_spc date,
    titulo_impresso_saida_spc varchar(1),
    saldo_disponivel_cartao double precision,
    saldo_bloqueado_cartao double precision,
    status_cartao_fidelidade varchar(10),
    conta_boleto_bancario integer,
    descricao_conta varchar(50),
    agencia varchar(30),
    numero_conta varchar(30),
    numero_boleto_bancario varchar(25),
    numero_documento_boleto integer,
    numero_lote_boleto_bancario integer,
    numero_renegociacao_titulo integer,
    numero_fechamento_receber integer,
    numero_documento integer)
as
BEGIN
    IF (:E_EVENTO = 'Pendente') THEN
    BEGIN
        FOR SELECT R.EMPRESA, R.CAIXA, R.DOCUMENTO, R.CLIENTE, R.NUMERO, R.SERIE, R.PARCELA, R.EMISSAO,
                   R.VENCIMENTO, R.VALOR, R.REFERENCIA, R.OBSERVACAO, R.SALDO, R.SALDO_LIQUIDO, R.ULTIMA_DATA_PAGAMENTO,
                   R.SELECIONA_REGISTRO, R.CONVENIO, CL.CLI_NAO_COBRAR_JUROS_MENSAL, R.DATA_ENTRADA_SPC,
                   R.TITULO_IMPRESSO_ENTRADA_SPC, R.DATA_SAIDA_SPC, R.TITULO_IMPRESSO_SAIDA_SPC, R.STATUS_CARTAO_FIDELIDADE,
                   R.SITUACAO_TITULO, R.NUMERO_RENEGOCIACAO_TITULO, R.NUMERO_FECHAMENTO_RECEBER, R.NUMERO_DOCUMENTO,
                   SUM(I.VALOR_PAGO) I_VALOR_PAGO, SUM(I.JUROS_PAGO) I_JUROS_PAGO, SUM(I.DESCONTO_CONCEDIDO) I_DESCONTO_CONCEDIDO,
                   R.NUMERO_BOLETO_BANCARIO,  R.NUMERO_LOTE_BOLETO_BANCARIO
        FROM MOV_CONTAS_RECEBER R
        LEFT OUTER JOIN MOV_IT_CONTAS_RECEBER I ON (I.EMPRESA = R.EMPRESA
                                                AND I.CAIXA = R.CAIXA
                                                AND I.DOCUMENTO = R.DOCUMENTO
                                                AND I.CLIENTE = R.CLIENTE
                                                AND I.NUMERO = R.NUMERO
                                                AND I.SERIE = R.SERIE
                                                AND I.PARCELA = R.PARCELA)
        LEFT OUTER JOIN CAD_PESSOA CL ON (CL.CADASTRO = R.CLIENTE)
        WHERE R.EMPRESA = :E_EMPRESA
          AND R.CLIENTE = :E_CLIENTE
          AND R.CONVENIO IS NULL
          AND R.SALDO > 0
        GROUP BY R.EMPRESA, R.CAIXA, R.DOCUMENTO, R.CLIENTE, R.NUMERO, R.SERIE, R.PARCELA, R.EMISSAO,
                 R.VENCIMENTO, R.VALOR, R.REFERENCIA, R.OBSERVACAO, R.SALDO, R.SALDO_LIQUIDO, R.ULTIMA_DATA_PAGAMENTO,
                 R.SELECIONA_REGISTRO, R.CONVENIO, CL.CLI_NAO_COBRAR_JUROS_MENSAL, R.DATA_ENTRADA_SPC,
                 R.TITULO_IMPRESSO_ENTRADA_SPC, R.DATA_SAIDA_SPC, R.TITULO_IMPRESSO_SAIDA_SPC, R.STATUS_CARTAO_FIDELIDADE,
                 R.SITUACAO_TITULO, R.NUMERO_RENEGOCIACAO_TITULO, R.NUMERO_FECHAMENTO_RECEBER, R.NUMERO_DOCUMENTO,
                 R.NUMERO_BOLETO_BANCARIO,  R.NUMERO_LOTE_BOLETO_BANCARIO
        INTO :EMPRESA, :CAIXA, :DOCUMENTO, :CLIENTE, :NUMERO, :SERIE, :PARCELA, :EMISSAO,
        :VENCIMENTO, :VALOR, :REFERENCIA, :OBSERVACAO, :SALDO, :SALDO_LIQUIDO, :ULTIMA_DATA_PAGAMENTO,
        :SELECIONA_REGISTRO, :CONVENIO, :CLI_NAO_COBRAR_JUROS_MENSAL, :DATA_ENTRADA_SPC,
        :TITULO_IMPRESSO_ENTRADA_SPC, :DATA_SAIDA_SPC, :TITULO_IMPRESSO_SAIDA_SPC, :STATUS_CARTAO_FIDELIDADE,
        :SITUACAO_TITULO, :NUMERO_RENEGOCIACAO_TITULO, :NUMERO_FECHAMENTO_RECEBER, :NUMERO_DOCUMENTO,
        :VALOR_PAGO, :JUROS_PAGO, :DESCONTO_CONCEDIDO, :NUMERO_BOLETO_BANCARIO,  :NUMERO_LOTE_BOLETO_BANCARIO
        DO BEGIN
            SUSPEND;
        END
    END
    ELSE BEGIN
        IF (:E_EVENTO = 'Pago') THEN
        BEGIN
            FOR SELECT R.EMPRESA, R.CAIXA, R.DOCUMENTO, R.CLIENTE, R.NUMERO, R.SERIE, R.PARCELA, R.EMISSAO,
                       R.VENCIMENTO, R.VALOR, R.REFERENCIA, R.OBSERVACAO, R.SALDO, R.SALDO_LIQUIDO, R.ULTIMA_DATA_PAGAMENTO,
                       R.SELECIONA_REGISTRO, R.CONVENIO, CL.CLI_NAO_COBRAR_JUROS_MENSAL, R.DATA_ENTRADA_SPC,
                       R.TITULO_IMPRESSO_ENTRADA_SPC, R.DATA_SAIDA_SPC, R.TITULO_IMPRESSO_SAIDA_SPC, R.STATUS_CARTAO_FIDELIDADE,
                       R.SITUACAO_TITULO, R.NUMERO_RENEGOCIACAO_TITULO, R.NUMERO_FECHAMENTO_RECEBER, R.NUMERO_DOCUMENTO,
                       SUM(I.VALOR_PAGO) I_VALOR_PAGO, SUM(I.JUROS_PAGO) I_JUROS_PAGO, SUM(I.DESCONTO_CONCEDIDO) I_DESCONTO_CONCEDIDO,
                       R.NUMERO_BOLETO_BANCARIO,  R.NUMERO_LOTE_BOLETO_BANCARIO
            FROM MOV_CONTAS_RECEBER R
            LEFT OUTER JOIN MOV_IT_CONTAS_RECEBER I ON (I.EMPRESA = R.EMPRESA
                                                    AND I.CAIXA = R.CAIXA
                                                    AND I.DOCUMENTO = R.DOCUMENTO
                                                    AND I.CLIENTE = R.CLIENTE
                                                    AND I.NUMERO = R.NUMERO
                                                    AND I.SERIE = R.SERIE
                                                    AND I.PARCELA = R.PARCELA)
            LEFT OUTER JOIN CAD_PESSOA CL ON (CL.CADASTRO = R.CLIENTE)
            WHERE R.EMPRESA = :E_EMPRESA
              AND R.CLIENTE = :E_CLIENTE
              AND R.CONVENIO IS NULL
              AND R.SALDO <= 0
            GROUP BY R.EMPRESA, R.CAIXA, R.DOCUMENTO, R.CLIENTE, R.NUMERO, R.SERIE, R.PARCELA, R.EMISSAO,
                     R.VENCIMENTO, R.VALOR, R.REFERENCIA, R.OBSERVACAO, R.SALDO, R.SALDO_LIQUIDO, R.ULTIMA_DATA_PAGAMENTO,
                     R.SELECIONA_REGISTRO, R.CONVENIO, CL.CLI_NAO_COBRAR_JUROS_MENSAL, R.DATA_ENTRADA_SPC,
                     R.TITULO_IMPRESSO_ENTRADA_SPC, R.DATA_SAIDA_SPC, R.TITULO_IMPRESSO_SAIDA_SPC, R.STATUS_CARTAO_FIDELIDADE,
                     R.SITUACAO_TITULO, R.NUMERO_RENEGOCIACAO_TITULO, R.NUMERO_FECHAMENTO_RECEBER, R.NUMERO_DOCUMENTO,
                     R.NUMERO_BOLETO_BANCARIO,  R.NUMERO_LOTE_BOLETO_BANCARIO
            INTO :EMPRESA, :CAIXA, :DOCUMENTO, :CLIENTE, :NUMERO, :SERIE, :PARCELA, :EMISSAO,
            :VENCIMENTO, :VALOR, :REFERENCIA, :OBSERVACAO, :SALDO, :SALDO_LIQUIDO, :ULTIMA_DATA_PAGAMENTO,
            :SELECIONA_REGISTRO, :CONVENIO, :CLI_NAO_COBRAR_JUROS_MENSAL, :DATA_ENTRADA_SPC,
            :TITULO_IMPRESSO_ENTRADA_SPC, :DATA_SAIDA_SPC, :TITULO_IMPRESSO_SAIDA_SPC, :STATUS_CARTAO_FIDELIDADE,
            :SITUACAO_TITULO, :NUMERO_RENEGOCIACAO_TITULO, :NUMERO_FECHAMENTO_RECEBER, :NUMERO_DOCUMENTO,
            :VALOR_PAGO, :JUROS_PAGO, :DESCONTO_CONCEDIDO, :NUMERO_BOLETO_BANCARIO,  :NUMERO_LOTE_BOLETO_BANCARIO
            DO BEGIN
                SUSPEND;
            END
        END
        ELSE BEGIN
            IF (:E_EVENTO = 'Todos') THEN
            BEGIN
                FOR SELECT R.EMPRESA, R.CAIXA, R.DOCUMENTO, R.CLIENTE, R.NUMERO, R.SERIE, R.PARCELA, R.EMISSAO,
                           R.VENCIMENTO, R.VALOR, R.REFERENCIA, R.OBSERVACAO, R.SALDO, R.SALDO_LIQUIDO, R.ULTIMA_DATA_PAGAMENTO,
                           R.SELECIONA_REGISTRO, R.CONVENIO, CL.CLI_NAO_COBRAR_JUROS_MENSAL, R.DATA_ENTRADA_SPC,
                           R.TITULO_IMPRESSO_ENTRADA_SPC, R.DATA_SAIDA_SPC, R.TITULO_IMPRESSO_SAIDA_SPC, R.STATUS_CARTAO_FIDELIDADE,
                           R.SITUACAO_TITULO, R.NUMERO_RENEGOCIACAO_TITULO, R.NUMERO_FECHAMENTO_RECEBER, R.NUMERO_DOCUMENTO,
                           SUM(I.VALOR_PAGO) I_VALOR_PAGO, SUM(I.JUROS_PAGO) I_JUROS_PAGO, SUM(I.DESCONTO_CONCEDIDO) I_DESCONTO_CONCEDIDO,
                           R.NUMERO_BOLETO_BANCARIO, R.NUMERO_LOTE_BOLETO_BANCARIO
                FROM MOV_CONTAS_RECEBER R
                LEFT OUTER JOIN MOV_IT_CONTAS_RECEBER I ON (I.EMPRESA = R.EMPRESA
                                                        AND I.CAIXA = R.CAIXA
                                                        AND I.DOCUMENTO = R.DOCUMENTO
                                                        AND I.CLIENTE = R.CLIENTE
                                                        AND I.NUMERO = R.NUMERO
                                                        AND I.SERIE = R.SERIE
                                                        AND I.PARCELA = R.PARCELA)
                LEFT OUTER JOIN CAD_PESSOA CL ON(CL.CADASTRO = R.CLIENTE)
                WHERE R.EMPRESA = :E_EMPRESA
                  AND R.CLIENTE = :E_CLIENTE
                  AND R.CONVENIO IS NULL
                GROUP BY R.EMPRESA, R.CAIXA, R.DOCUMENTO, R.CLIENTE, R.NUMERO, R.SERIE, R.PARCELA, R.EMISSAO,
                         R.VENCIMENTO, R.VALOR, R.REFERENCIA, R.OBSERVACAO, R.SALDO, R.SALDO_LIQUIDO, R.ULTIMA_DATA_PAGAMENTO,
                         R.SELECIONA_REGISTRO, R.CONVENIO, CL.CLI_NAO_COBRAR_JUROS_MENSAL, R.DATA_ENTRADA_SPC,
                         R.TITULO_IMPRESSO_ENTRADA_SPC, R.DATA_SAIDA_SPC, R.TITULO_IMPRESSO_SAIDA_SPC, R.STATUS_CARTAO_FIDELIDADE,
                         R.SITUACAO_TITULO, R.NUMERO_RENEGOCIACAO_TITULO, R.NUMERO_FECHAMENTO_RECEBER, R.NUMERO_DOCUMENTO,
                         R.NUMERO_BOLETO_BANCARIO,  R.NUMERO_LOTE_BOLETO_BANCARIO
                INTO :EMPRESA, :CAIXA, :DOCUMENTO, :CLIENTE, :NUMERO, :SERIE, :PARCELA, :EMISSAO,
                :VENCIMENTO, :VALOR, :REFERENCIA, :OBSERVACAO, :SALDO, :SALDO_LIQUIDO, :ULTIMA_DATA_PAGAMENTO,
                :SELECIONA_REGISTRO, :CONVENIO, :CLI_NAO_COBRAR_JUROS_MENSAL, :DATA_ENTRADA_SPC,
                :TITULO_IMPRESSO_ENTRADA_SPC, :DATA_SAIDA_SPC, :TITULO_IMPRESSO_SAIDA_SPC, :STATUS_CARTAO_FIDELIDADE,
                :SITUACAO_TITULO, :NUMERO_RENEGOCIACAO_TITULO, :NUMERO_FECHAMENTO_RECEBER, :NUMERO_DOCUMENTO,
                :VALOR_PAGO, :JUROS_PAGO, :DESCONTO_CONCEDIDO, :NUMERO_BOLETO_BANCARIO,  :NUMERO_LOTE_BOLETO_BANCARIO
                DO BEGIN
                    SUSPEND;
                END
            END
            ELSE BEGIN
                IF (:E_EVENTO = 'Select') THEN
                BEGIN
                    SELECT R.EMPRESA, R.CAIXA, R.DOCUMENTO, R.CLIENTE, CL.NOME NOME_CLIENTE, CL.ENDERECO ENDERECO_CLIENTE,
                           CL.CNPJ_CPF CNPJ_CPF_CLIENTE, R.NUMERO, R.SERIE, R.PARCELA, R.EMISSAO,
                           R.VENCIMENTO, R.VALOR, R.REFERENCIA, R.OBSERVACAO, R.SALDO, R.SALDO_LIQUIDO, R.PLANO_CONTAS,
                           PC.DESCRICAO DESCRICAO_PLANO_CONTAS, R.CENTRO_CUSTO, CC.DESCRICAO DESCRICAO_CENTRO_CUSTO,
                           R.INSTRUCAO_COBRANCA, IC.DESCRICAO DESCRICAO_INSTRUCAO_COBRANCA, R.VENDEDOR, VE.NOME
                           NOME_VENDEDOR, R.SITUACAO_TITULO, ST.DESCRICAO DESCRICAO_SITUACAO_TITULO, R.VALOR_DESPESA,
                           R.CONVENIO, CO.NOME NOME_CONVENIO, R.ULTIMA_DATA_PAGAMENTO, R.ENTRADA, R.A_VISTA, R.DATA_ENTRADA_SPC,
                           R.DATA_SAIDA_SPC, R.TITULO_IMPRESSO_SAIDA_SPC, R.STATUS_CARTAO_FIDELIDADE, R.CONTA_BOLETO_BANCARIO,
                           CB.DESCRICAO DESCRICAO_CONTA, CB.AGENCIA || '-' || CB.DIGITO_AGENCIA AGENCIA, CB.NUMERO_CONTA || '-' ||
                           CB.DIGITO_NUMERO_CONTA NUMERO_CONTA, R.NUMERO_BOLETO_BANCARIO, R.NUMERO_DOCUMENTO_BOLETO,
                           R.NUMERO_LOTE_BOLETO_BANCARIO, R.NUMERO_RENEGOCIACAO_TITULO, R.NUMERO_FECHAMENTO_RECEBER, R.NUMERO_DOCUMENTO
                    FROM MOV_CONTAS_RECEBER R
                    LEFT OUTER JOIN CAD_PESSOA CL ON(CL.CADASTRO = R.CLIENTE)
                    LEFT OUTER JOIN CAD_PLANO_CONTAS PC ON(PC.EMPRESA = R.EMPRESA
                                                       AND PC.CADASTRO = R.PLANO_CONTAS)
                    LEFT OUTER JOIN CAD_CENTRO_CUSTO CC ON(CC.EMPRESA = R.EMPRESA
                                                       AND CC.CADASTRO = R.CENTRO_CUSTO)
                    LEFT OUTER JOIN CAD_INSTRUCAO_COBRANCA IC ON(IC.EMPRESA = R.EMPRESA
                                                             AND IC.CADASTRO = R.INSTRUCAO_COBRANCA)
                    LEFT OUTER JOIN CAD_PESSOA VE ON(VE.CADASTRO = R.VENDEDOR)
                    LEFT OUTER JOIN CAD_SITUACAO_TITULO ST ON(ST.EMPRESA = R.EMPRESA
                                                          AND ST.CADASTRO = R.SITUACAO_TITULO)
                    LEFT OUTER JOIN CAD_PESSOA CO ON(CO.CADASTRO = R.CONVENIO)
                    LEFT OUTER JOIN CAD_CONTA CB ON(CB.EMPRESA = R.EMPRESA
                                                AND CB.CADASTRO = R.CONTA_BOLETO_BANCARIO)
                    WHERE R.EMPRESA = :E_EMPRESA
                      AND R.CAIXA = :E_CAIXA
                      AND R.DOCUMENTO = :E_DOCUMENTO
                      AND R.CLIENTE = :E_CLIENTE
                      AND R.NUMERO = :E_NUMERO
                      AND R.SERIE = :E_SERIE
                      AND R.PARCELA = :E_PARCELA
                    INTO :EMPRESA, :CAIXA, :DOCUMENTO, :CLIENTE, :NOME_CLIENTE, :ENDERECO_CLIENTE,
                    :CNPJ_CPF_CLIENTE, :NUMERO, :SERIE, :PARCELA, :EMISSAO,
                    :VENCIMENTO, :VALOR, :REFERENCIA, :OBSERVACAO, :SALDO, :SALDO_LIQUIDO, :PLANO_CONTAS,
                    :DESCRICAO_PLANO_CONTAS, :CENTRO_CUSTO, :DESCRICAO_CENTRO_CUSTO,
                    :INSTRUCAO_COBRANCA, :DESCRICAO_INSTRUCAO_COBRANCA, :VENDEDOR, :NOME_VENDEDOR,
                    :SITUACAO_TITULO, :DESCRICAO_SITUACAO_TITULO, :VALOR_DESPESA, :CONVENIO, :NOME_CONVENIO, :ULTIMA_DATA_PAGAMENTO,
                    :ENTRADA, :A_VISTA, :DATA_ENTRADA_SPC, :DATA_SAIDA_SPC, :TITULO_IMPRESSO_SAIDA_SPC, :STATUS_CARTAO_FIDELIDADE,
                    :CONTA_BOLETO_BANCARIO, :DESCRICAO_CONTA, :AGENCIA, :NUMERO_CONTA, :NUMERO_BOLETO_BANCARIO, :NUMERO_DOCUMENTO_BOLETO,
                    :NUMERO_LOTE_BOLETO_BANCARIO, :NUMERO_RENEGOCIACAO_TITULO, :NUMERO_FECHAMENTO_RECEBER, :NUMERO_DOCUMENTO;

                    SUSPEND;
                END
                ELSE BEGIN
                    IF (:E_EVENTO = 'Vencimentos') THEN
                    BEGIN
                        FOR SELECT R.EMPRESA, R.CAIXA, R.DOCUMENTO, R.CLIENTE, CL.NOME NOME_CLIENTE, R.NUMERO, R.SERIE, R.PARCELA,
                                   R.EMISSAO, R.VENCIMENTO, R.VALOR, R.PLANO_CONTAS, PC.DESCRICAO DESCRICAO_PLANO_CONTAS, R.CENTRO_CUSTO,
                                   CC.DESCRICAO DESCRICAO_CENTRO_CUSTO, R.INSTRUCAO_COBRANCA, IC.DESCRICAO DESCRICAO_INSTRUCAO_COBRANCA,
                                   R.VENDEDOR, VE.NOME NOME_VENDEDOR, R.CONVENIO, R.REFERENCIA, R.OBSERVACAO, R.SALDO, R.SALDO_LIQUIDO,
                                   R.ULTIMA_DATA_PAGAMENTO, R.ENTRADA, R.A_VISTA, R.SITUACAO_TITULO, R.NUMERO_DOCUMENTO,
                                   SUM(I.VALOR_PAGO) I_VALOR_PAGO, SUM(I.JUROS_PAGO) I_JUROS_PAGO, SUM(I.DESCONTO_CONCEDIDO) I_DESCONTO_CONCEDIDO,
                                   R.NUMERO_BOLETO_BANCARIO, R.NUMERO_LOTE_BOLETO_BANCARIO
                        FROM MOV_CONTAS_RECEBER R
                        LEFT OUTER JOIN CAD_PESSOA CL ON(CL.CADASTRO = R.CLIENTE)
                        LEFT OUTER JOIN CAD_PLANO_CONTAS PC ON(PC.EMPRESA = R.EMPRESA
                                                           AND PC.CADASTRO = R.PLANO_CONTAS)
                        LEFT OUTER JOIN CAD_CENTRO_CUSTO CC ON(CC.EMPRESA = R.EMPRESA
                                                           AND CC.CADASTRO = R.CENTRO_CUSTO)
                        LEFT OUTER JOIN CAD_INSTRUCAO_COBRANCA IC ON(IC.EMPRESA = R.EMPRESA
                                                                 AND IC.CADASTRO = R.INSTRUCAO_COBRANCA)
                        LEFT OUTER JOIN CAD_PESSOA VE ON(VE.CADASTRO = R.VENDEDOR)
                        LEFT OUTER JOIN MOV_IT_CONTAS_RECEBER I ON(I.EMPRESA = R.EMPRESA
                                                               AND I.CAIXA = R.CAIXA
                                                               AND I.DOCUMENTO = R.DOCUMENTO
                                                               AND I.CLIENTE = R.CLIENTE
                                                               AND I.NUMERO = R.NUMERO
                                                               AND I.SERIE = R.SERIE
                                                               AND I.PARCELA = R.PARCELA)
                        WHERE R.EMPRESA = :E_EMPRESA
                          AND R.CAIXA = :E_CAIXA
                          AND R.DOCUMENTO = :E_DOCUMENTO
                          AND R.CLIENTE = :E_CLIENTE
                          AND R.NUMERO = :E_NUMERO
                          AND R.SERIE = :E_SERIE
                        GROUP BY R.EMPRESA, R.CAIXA, R.DOCUMENTO, R.CLIENTE, CL.NOME, R.NUMERO, R.SERIE, R.PARCELA, R.EMISSAO, R.VENCIMENTO,
                                 R.VALOR, R.PLANO_CONTAS, PC.DESCRICAO, R.CENTRO_CUSTO, CC.DESCRICAO, R.INSTRUCAO_COBRANCA, IC.DESCRICAO,
                                 R.VENDEDOR, VE.NOME, R.CONVENIO, R.REFERENCIA, R.OBSERVACAO, R.SALDO, R.SALDO_LIQUIDO, R.ULTIMA_DATA_PAGAMENTO,
                                 R.ENTRADA, R.A_VISTA, R.SITUACAO_TITULO, R.NUMERO_DOCUMENTO, R.NUMERO_BOLETO_BANCARIO, R.NUMERO_LOTE_BOLETO_BANCARIO
                        INTO :EMPRESA, :CAIXA, :DOCUMENTO, :CLIENTE, :NOME_CLIENTE, :NUMERO, :SERIE, :PARCELA,
                             :EMISSAO, :VENCIMENTO, :VALOR, :PLANO_CONTAS, :DESCRICAO_PLANO_CONTAS, :CENTRO_CUSTO,
                             :DESCRICAO_CENTRO_CUSTO, :INSTRUCAO_COBRANCA, :DESCRICAO_INSTRUCAO_COBRANCA,
                             :VENDEDOR, :NOME_VENDEDOR, :CONVENIO, :REFERENCIA, :OBSERVACAO, :SALDO, :SALDO_LIQUIDO,
                             :ULTIMA_DATA_PAGAMENTO, :ENTRADA, :A_VISTA, :SITUACAO_TITULO, :NUMERO_DOCUMENTO,
                             :VALOR_PAGO, :JUROS_PAGO, :DESCONTO_CONCEDIDO, :NUMERO_BOLETO_BANCARIO,  :NUMERO_LOTE_BOLETO_BANCARIO
                        DO BEGIN
                            SUSPEND;
                        END
                    END
                    ELSE BEGIN
                        IF (:E_EVENTO = 'Total Titulo') THEN
                        BEGIN
                            SELECT SUM(R.VALOR)
                            FROM MOV_CONTAS_RECEBER R
                            WHERE R.EMPRESA = :E_EMPRESA
                              AND R.CLIENTE = :E_CLIENTE
                              AND R.CONVENIO IS NULL
                            INTO :VALOR;
                            SUSPEND;
                        END
                        ELSE BEGIN
                            IF (:E_EVENTO = 'Total Pago') THEN
                            BEGIN
                                SELECT SUM(I.VALOR_PAGO) I_VALOR_PAGO, SUM(I.JUROS_PAGO) I_JUROS_PAGO, SUM(I.DESCONTO_CONCEDIDO) I_DESCONTO_CONCEDIDO
                                FROM MOV_CONTAS_RECEBER R
                                LEFT OUTER JOIN MOV_IT_CONTAS_RECEBER I ON(I.EMPRESA = R.EMPRESA
                                                                       AND I.CAIXA = R.CAIXA
                                                                       AND I.DOCUMENTO = R.DOCUMENTO
                                                                       AND I.CLIENTE = R.CLIENTE
                                                                       AND I.NUMERO = R.NUMERO
                                                                       AND I.SERIE = R.SERIE
                                                                       AND I.PARCELA = R.PARCELA)
                                WHERE R.EMPRESA = :E_EMPRESA
                                  AND R.CLIENTE = :E_CLIENTE
                                  AND R.CONVENIO IS NULL
                                INTO :VALOR_PAGO, :JUROS_PAGO, :DESCONTO_CONCEDIDO;
                                SUSPEND;
                            END
                            ELSE BEGIN
                                /*--------------------------------------------*/
                                /* Lista Somente os Ttulos do Convnio Cliente
                                /*--------------------------------------------*/
                                IF (:E_EVENTO = 'Convnio') THEN
                                BEGIN
                                    FOR SELECT R.EMPRESA, R.CAIXA, R.DOCUMENTO, R.CLIENTE, R.NUMERO, R.SERIE, R.PARCELA, R.EMISSAO,
                                               R.VENCIMENTO, R.VALOR, R.REFERENCIA, R.OBSERVACAO, R.SALDO, R.SALDO_LIQUIDO, R.ULTIMA_DATA_PAGAMENTO,
                                               R.SELECIONA_REGISTRO, R.CONVENIO, CL.CLI_NAO_COBRAR_JUROS_MENSAL, R.NUMERO_DOCUMENTO,
                                               SUM(I.VALOR_PAGO) I_VALOR_PAGO, SUM(I.JUROS_PAGO) I_JUROS_PAGO, SUM(I.DESCONTO_CONCEDIDO) I_DESCONTO_CONCEDIDO
                                    FROM MOV_CONTAS_RECEBER R
                                    LEFT OUTER JOIN MOV_IT_CONTAS_RECEBER I ON(I.EMPRESA = R.EMPRESA
                                                                           AND I.CAIXA = R.CAIXA
                                                                           AND I.DOCUMENTO = R.DOCUMENTO
                                                                           AND I.CLIENTE = R.CLIENTE
                                                                           AND I.NUMERO = R.NUMERO
                                                                           AND I.SERIE = R.SERIE
                                                                           AND I.PARCELA = R.PARCELA)
                                    LEFT OUTER JOIN CAD_PESSOA CL ON(CL.CADASTRO = R.CLIENTE)
                                    WHERE R.EMPRESA = :E_EMPRESA
                                      AND R.CLIENTE = :E_CLIENTE
                                      AND R.CONVENIO IS NOT NULL
                                      AND R.SALDO > 0
                                    GROUP BY R.EMPRESA, R.CAIXA, R.DOCUMENTO, R.CLIENTE, R.NUMERO, R.SERIE, R.PARCELA, R.EMISSAO,
                                             R.VENCIMENTO, R.VALOR, R.REFERENCIA, R.OBSERVACAO, R.SALDO, R.SALDO_LIQUIDO, R.ULTIMA_DATA_PAGAMENTO,
                                             R.SELECIONA_REGISTRO, R.CONVENIO, CL.CLI_NAO_COBRAR_JUROS_MENSAL, R.NUMERO_DOCUMENTO
                                    INTO :EMPRESA, :CAIXA, :DOCUMENTO, :CLIENTE, :NUMERO, :SERIE, :PARCELA, :EMISSAO, :VENCIMENTO,
                                    :VALOR, :REFERENCIA, :OBSERVACAO, :SALDO, :SALDO_LIQUIDO, :ULTIMA_DATA_PAGAMENTO,
                                    :SELECIONA_REGISTRO, :CONVENIO, :CLI_NAO_COBRAR_JUROS_MENSAL, :NUMERO_DOCUMENTO,
                                    :VALOR_PAGO, :JUROS_PAGO, :DESCONTO_CONCEDIDO
                                    DO BEGIN
                                        SUSPEND;
                                    END
                                END
                                ELSE BEGIN
                                    /*----------------------------------------------------------------------*/
                                    /*********** Listando o Saldo Disponvel no Carto Fidelidade ***********/
                                    /*----------------------------------------------------------------------*/
                                    IF (:E_EVENTO = 'Total Disponivel') THEN
                                    BEGIN
                                        SELECT SUM(R.SALDO_CARTAO_FIDELIDADE) R_SALDO_CARTAO_FIDELIDADE
                                        FROM MOV_CONTAS_RECEBER R
                                        WHERE R.EMPRESA = :E_EMPRESA
                                          AND R.CLIENTE = :E_CLIENTE
                                          AND R.STATUS_CARTAO_FIDELIDADE = 'Creditado'
                                        INTO :SALDO_DISPONIVEL_CARTAO;
                                        SUSPEND;
                                    END
                                    ELSE BEGIN
                                        /*----------------------------------------------------------------------*/
                                        /*********** Listando o Saldo Bloqueado no Carto Fidelidade ************/
                                        /*----------------------------------------------------------------------*/
                                        IF (:E_EVENTO = 'Total Bloqueado') THEN
                                        BEGIN
                                            SELECT SUM(R.SALDO_CARTAO_FIDELIDADE) R_SALDO_CARTAO_FIDELIDADE
                                            FROM MOV_CONTAS_RECEBER R
                                            WHERE R.EMPRESA = :E_EMPRESA
                                              AND R.CLIENTE = :E_CLIENTE
                                              AND R.STATUS_CARTAO_FIDELIDADE = 'Bloqueado'
                                            INTO :SALDO_BLOQUEADO_CARTAO;
                                            SUSPEND;
                                        END
                                    END
                                END
                            END
                        END
                    END
                END
            END
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER PROCEDURE PRO_MOV_CHEQUE_RECEBIDO (
    e_evento varchar(20),
    e_empresa integer,
    e_numero integer,
    e_conta integer,
    e_status varchar(25))
returns (
    empresa integer,
    numero integer,
    banco integer,
    nome_banco varchar(50),
    agencia varchar(20),
    numero_conta varchar(20),
    numero_cheque integer,
    emissao date,
    vencimento date,
    valor double precision,
    titular varchar(80),
    status varchar(25),
    data_deposito_liberado date,
    caixa varchar(3),
    documento varchar(2),
    cliente integer,
    serie varchar(10),
    parcela integer,
    seq integer,
    referencia varchar(80),
    valor_pago double precision,
    fornecedor integer,
    numero_documento integer)
as
BEGIN
    IF (E_EVENTO = 'Depsito') THEN
    BEGIN
        IF ((E_STATUS = 'Depsito Pendente') OR (E_STATUS = 'Depsito Liberado')) THEN
        BEGIN
            FOR SELECT CH.EMPRESA, CH.NUMERO, CH.BANCO, BA.NOME NOME_BANCO, CH.AGENCIA, CH.NUMERO_CONTA,
                       CH.NUMERO_CHEQUE, CH.EMISSAO, CH.VENCIMENTO, CH.VALOR, CH.TITULAR, CH.STATUS, CH.DATA_DEPOSITO_LIBERADO
            FROM MOV_CHEQUE_RECEBIDO CH
            LEFT OUTER JOIN CAD_BANCO BA ON(BA.CADASTRO = CH.BANCO)
            WHERE CH.EMPRESA = :E_EMPRESA
              AND CH.CONTA = :E_CONTA
              AND CH.STATUS = :E_STATUS
            ORDER BY CH.VENCIMENTO
            INTO :EMPRESA, :NUMERO, :BANCO, :NOME_BANCO, :AGENCIA, :NUMERO_CONTA,
            :NUMERO_CHEQUE, :EMISSAO, :VENCIMENTO, :VALOR, :TITULAR, :STATUS, :DATA_DEPOSITO_LIBERADO
            DO BEGIN
                SUSPEND;
            END
        END
        ELSE BEGIN
            FOR SELECT CH.EMPRESA, CH.NUMERO, CH.BANCO, BA.NOME NOME_BANCO, CH.AGENCIA, CH.NUMERO_CONTA,
                       CH.NUMERO_CHEQUE, CH.EMISSAO, CH.VENCIMENTO, CH.VALOR, CH.TITULAR, CH.STATUS, CH.DATA_DEPOSITO_LIBERADO
            FROM MOV_CHEQUE_RECEBIDO CH
            LEFT OUTER JOIN CAD_BANCO BA ON(BA.CADASTRO = CH.BANCO)
            WHERE CH.EMPRESA = :E_EMPRESA
              AND CH.CONTA = :E_CONTA
              AND ((CH.STATUS = 'Depsito Pendente') OR (CH.STATUS = 'Depsito Liberado'))
            ORDER BY CH.VENCIMENTO
            INTO :EMPRESA, :NUMERO, :BANCO, :NOME_BANCO, :AGENCIA, :NUMERO_CONTA,
            :NUMERO_CHEQUE, :EMISSAO, :VENCIMENTO, :VALOR, :TITULAR, :STATUS, :DATA_DEPOSITO_LIBERADO
            DO BEGIN
                SUSPEND;
            END
        END
    END
    ELSE BEGIN
        IF (E_EVENTO = 'Contas Receber') THEN
        BEGIN
            FOR SELECT R.CAIXA, R.DOCUMENTO, R.CLIENTE, R.NUMERO, R.SERIE, R.PARCELA, I.SEQ, R.EMISSAO,
                       R.VENCIMENTO, R.VALOR, R.REFERENCIA, I.VALOR_PAGO, R.NUMERO_DOCUMENTO
            FROM MOV_IT_CONTAS_RECEBER I
            LEFT OUTER JOIN MOV_CONTAS_RECEBER R ON(R.EMPRESA = I.EMPRESA
                                                AND R.CAIXA = I.CAIXA
                                                AND R.DOCUMENTO = I.DOCUMENTO
                                                AND R.CLIENTE = I.CLIENTE
                                                AND R.NUMERO = I.NUMERO
                                                AND R.SERIE = I.SERIE
                                                AND R.PARCELA = I.PARCELA)
            WHERE R.EMPRESA = :E_EMPRESA
              AND I.CHEQUE_RECEBIDO = :E_NUMERO
            ORDER BY R.EMPRESA, R.CAIXA, R.DOCUMENTO, R.CLIENTE, R.NUMERO, R.SERIE, R.PARCELA, I.SEQ
            INTO :CAIXA, :DOCUMENTO, :CLIENTE, :NUMERO, :SERIE, :PARCELA, :SEQ, :EMISSAO,
            :VENCIMENTO, :VALOR, :REFERENCIA, :VALOR_PAGO, :NUMERO_DOCUMENTO
            DO BEGIN
                SUSPEND;
            END
        END
        ELSE BEGIN
            IF (E_EVENTO = 'Contas Pagar') THEN
            BEGIN
                FOR SELECT P.DOCUMENTO, P.FORNECEDOR, P.NUMERO, P.SERIE, P.PARCELA, I.SEQ, P.EMISSAO, P.VENCIMENTO,
                           P.VALOR, P.REFERENCIA, I.VALOR_PAGO
                FROM MOV_IT_CONTAS_PAGAR I
                LEFT OUTER JOIN MOV_CONTAS_PAGAR P ON(P.EMPRESA = I.EMPRESA
                                                  AND P.DOCUMENTO = I.DOCUMENTO
                                                  AND P.FORNECEDOR = I.FORNECEDOR
                                                  AND P.NUMERO = I.NUMERO
                                                  AND P.SERIE = I.SERIE
                                                  AND P.PARCELA = I.PARCELA)
                WHERE P.EMPRESA = :E_EMPRESA
                  AND I.CHEQUE_RECEBIDO = :E_NUMERO
                ORDER BY P.DOCUMENTO, P.FORNECEDOR, P.NUMERO, P.SERIE, P.PARCELA, I.SEQ
                INTO :DOCUMENTO, :FORNECEDOR, :NUMERO, :SERIE, :PARCELA, :SEQ, :EMISSAO, :VENCIMENTO,
                :VALOR, :REFERENCIA, :VALOR_PAGO
                DO BEGIN
                    SUSPEND;
                END
            END
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER PROCEDURE PRO_SITUACAO_CHEQUE_RECEBIDO (
    e_evento varchar(25),
    e_filtro varchar(25),
    e_empresa integer,
    e_caixa varchar(3),
    e_documento varchar(2),
    e_cliente integer,
    e_numero integer,
    e_serie varchar(10),
    e_parcela integer,
    e_fornecedor integer)
returns (
    cheque_recebido integer,
    banco integer,
    nome_banco varchar(50),
    numero_cheque integer,
    emissao date,
    vencimento date,
    valor double precision,
    titular varchar(80),
    status varchar(25),
    caixa varchar(3),
    documento varchar(2),
    cliente integer,
    numero integer,
    serie integer,
    parcela integer,
    seq integer,
    referencia varchar(80),
    valor_pago double precision,
    numero_documento integer)
as
BEGIN
    IF (E_EVENTO = 'Venda/Receita') THEN
    BEGIN
        IF (E_FILTRO = 'Cheques Vinculados') THEN
        BEGIN
            /*----------------------------------------------------------------*/
            /************ Filtra os Cheques Vinculados na Venda ***************/
            /*----------------------------------------------------------------*/
            FOR SELECT DISTINCT I.CHEQUE_RECEBIDO, CH.BANCO, BA.NOME NOME_BANCO, CH.NUMERO_CHEQUE, CH.EMISSAO,
                       CH.VENCIMENTO, CH.VALOR, CH.TITULAR, CH.STATUS
            FROM MOV_IT_CONTAS_RECEBER I
            LEFT OUTER JOIN MOV_CHEQUE_RECEBIDO CH ON(CH.EMPRESA = I.EMPRESA
                                                  AND CH.NUMERO = I.CHEQUE_RECEBIDO)
            LEFT OUTER JOIN CAD_BANCO BA ON(BA.CADASTRO = CH.BANCO)
            WHERE I.EMPRESA = :E_EMPRESA
              AND I.CAIXA = :E_CAIXA
              AND I.DOCUMENTO = :E_DOCUMENTO
              AND I.CLIENTE = :E_CLIENTE
              AND I.NUMERO = :E_NUMERO
              AND I.SERIE = :E_SERIE
              AND ((I.CHEQUE_RECEBIDO IS NOT NULL) AND (I.CHEQUE_RECEBIDO > 0))
            ORDER BY CH.VENCIMENTO
            INTO :CHEQUE_RECEBIDO, :BANCO, :NOME_BANCO, :NUMERO_CHEQUE, :EMISSAO,
            :VENCIMENTO, :VALOR, :TITULAR, :STATUS
            DO BEGIN
                SUSPEND;
            END
        END
        ELSE BEGIN
            IF (E_FILTRO = 'Pagamentos Vinculados') THEN
            BEGIN
                /*------------------------------------------------------------*/
                /******** Filtra os Pagamentos Vinculados aos Cheques *********/
                /*------------------------------------------------------------*/
                FOR SELECT DISTINCT I.CHEQUE_RECEBIDO
                FROM MOV_IT_CONTAS_RECEBER I
                WHERE I.EMPRESA = :E_EMPRESA
                  AND I.CAIXA = :E_CAIXA
                  AND I.DOCUMENTO = :E_DOCUMENTO
                  AND I.CLIENTE = :E_CLIENTE
                  AND I.NUMERO = :E_NUMERO
                  AND I.SERIE = :E_SERIE
                  AND ((I.CHEQUE_RECEBIDO IS NOT NULL) AND (I.CHEQUE_RECEBIDO > 0))
                ORDER BY I.CHEQUE_RECEBIDO
                INTO :CHEQUE_RECEBIDO
                DO BEGIN
                    FOR SELECT R.CAIXA, R.DOCUMENTO, R.CLIENTE, R.NUMERO, R.SERIE, R.PARCELA, I.SEQ, R.EMISSAO, R.VENCIMENTO,
                               R.VALOR, R.REFERENCIA, I.VALOR_PAGO, R.NUMERO_DOCUMENTO
                    FROM MOV_IT_CONTAS_RECEBER I
                    LEFT OUTER JOIN MOV_CONTAS_RECEBER R ON(R.EMPRESA = I.EMPRESA
                                                        AND R.CAIXA = I.CAIXA
                                                        AND R.DOCUMENTO = I.DOCUMENTO
                                                        AND R.CLIENTE = I.CLIENTE
                                                        AND R.NUMERO = I.NUMERO
                                                        AND R.SERIE = I.SERIE
                                                        AND R.PARCELA = I.PARCELA)
                    WHERE R.EMPRESA = :E_EMPRESA
                      AND I.CHEQUE_RECEBIDO = :CHEQUE_RECEBIDO
                    ORDER BY R.CAIXA, R.DOCUMENTO, R.CLIENTE, R.NUMERO_DOCUMENTO, R.SERIE, R.PARCELA, I.SEQ
                    INTO :CAIXA, :DOCUMENTO, :CLIENTE, :NUMERO, :SERIE, :PARCELA, :SEQ, :EMISSAO, :VENCIMENTO,
                    :VALOR, :REFERENCIA, :VALOR_PAGO, :NUMERO_DOCUMENTO
                    DO BEGIN
                        SUSPEND;
                    END
                END
            END
        END
    END
    ELSE BEGIN
        IF (E_EVENTO = 'Parcela Contas Receber') THEN
        BEGIN
            IF (E_FILTRO = 'Cheques Vinculados') THEN
            BEGIN
                /*------------------------------------------------------------*/
                /********* Filtra os Cheques Vinculados na Parcela ************/
                /*------------------------------------------------------------*/
                FOR SELECT DISTINCT I.CHEQUE_RECEBIDO, CH.BANCO, BA.NOME NOME_BANCO, CH.NUMERO_CHEQUE, CH.EMISSAO,
                           CH.VENCIMENTO, CH.VALOR, CH.TITULAR, CH.STATUS
                FROM MOV_IT_CONTAS_RECEBER I
                LEFT OUTER JOIN MOV_CHEQUE_RECEBIDO CH ON(CH.EMPRESA = I.EMPRESA
                                                      AND CH.NUMERO = I.CHEQUE_RECEBIDO)
                LEFT OUTER JOIN CAD_BANCO BA ON(BA.CADASTRO = CH.BANCO)
                WHERE I.EMPRESA = :E_EMPRESA
                  AND I.CAIXA = :E_CAIXA
                  AND I.DOCUMENTO = :E_DOCUMENTO
                  AND I.CLIENTE = :E_CLIENTE
                  AND I.NUMERO = :E_NUMERO
                  AND I.SERIE = :E_SERIE
                  AND I.PARCELA = :E_PARCELA
                  AND ((I.CHEQUE_RECEBIDO IS NOT NULL) AND (I.CHEQUE_RECEBIDO > 0))
                ORDER BY CH.VENCIMENTO
                INTO :CHEQUE_RECEBIDO, :BANCO, :NOME_BANCO, :NUMERO_CHEQUE, :EMISSAO,
                :VENCIMENTO, :VALOR, :TITULAR, :STATUS
                DO BEGIN
                    SUSPEND;
                END
            END
            ELSE BEGIN
                IF (E_FILTRO = 'Pagamentos Vinculados') THEN
                BEGIN
                    /*--------------------------------------------------------*/
                    /****** Filtra os Pagamentos Vinculados aos Cheques *******/
                    /*--------------------------------------------------------*/
                    FOR SELECT DISTINCT I.CHEQUE_RECEBIDO
                    FROM MOV_IT_CONTAS_RECEBER I
                    WHERE I.EMPRESA = :E_EMPRESA
                      AND I.CAIXA = :E_CAIXA
                      AND I.DOCUMENTO = :E_DOCUMENTO
                      AND I.CLIENTE = :E_CLIENTE
                      AND I.NUMERO = :E_NUMERO
                      AND I.SERIE = :E_SERIE
                      AND I.PARCELA = :E_PARCELA
                      AND ((I.CHEQUE_RECEBIDO IS NOT NULL) AND (I.CHEQUE_RECEBIDO > 0))
                    ORDER BY I.CHEQUE_RECEBIDO
                    INTO :CHEQUE_RECEBIDO
                    DO BEGIN
                        FOR SELECT R.CAIXA, R.DOCUMENTO, R.CLIENTE, R.NUMERO, R.SERIE, R.PARCELA, I.SEQ, R.EMISSAO, R.VENCIMENTO,
                                   R.VALOR, R.REFERENCIA, I.VALOR_PAGO, R.NUMERO_DOCUMENTO
                        FROM MOV_IT_CONTAS_RECEBER I
                        LEFT OUTER JOIN MOV_CONTAS_RECEBER R ON(R.EMPRESA = I.EMPRESA
                                                            AND R.CAIXA = I.CAIXA
                                                            AND R.DOCUMENTO = I.DOCUMENTO
                                                            AND R.CLIENTE = I.CLIENTE
                                                            AND R.NUMERO = I.NUMERO
                                                            AND R.SERIE = I.SERIE
                                                            AND R.PARCELA = I.PARCELA)
                        WHERE R.EMPRESA = :E_EMPRESA
                          AND I.CHEQUE_RECEBIDO = :CHEQUE_RECEBIDO
                        ORDER BY R.CAIXA, R.DOCUMENTO, R.CLIENTE, R.NUMERO_DOCUMENTO, R.SERIE, R.PARCELA, I.SEQ
                        INTO :CAIXA, :DOCUMENTO, :CLIENTE, :NUMERO, :SERIE, :PARCELA, :SEQ, :EMISSAO, :VENCIMENTO,
                        :VALOR, :REFERENCIA, :VALOR_PAGO, :NUMERO_DOCUMENTO
                        DO BEGIN
                            SUSPEND;
                        END
                    END
                END
            END
        END
        ELSE BEGIN
            IF (E_EVENTO = 'Compra/Despesa') THEN
            BEGIN
                /*------------------------------------------------------------*/
                /******* Filtra os Cheques Repassados na Compra/Despesa *******/
                /*------------------------------------------------------------*/
                FOR SELECT DISTINCT I.CHEQUE_RECEBIDO, CH.BANCO, BA.NOME NOME_BANCO, CH.NUMERO_CHEQUE, CH.EMISSAO,
                           CH.VENCIMENTO, CH.VALOR, CH.TITULAR, CH.STATUS
                FROM MOV_IT_CONTAS_PAGAR I
                LEFT OUTER JOIN MOV_CHEQUE_RECEBIDO CH ON(CH.EMPRESA = I.EMPRESA
                                                      AND CH.NUMERO = I.CHEQUE_RECEBIDO)
                LEFT OUTER JOIN CAD_BANCO BA ON(BA.CADASTRO = CH.BANCO)
                WHERE I.EMPRESA = :E_EMPRESA
                  AND I.DOCUMENTO = :E_DOCUMENTO
                  AND I.FORNECEDOR = :E_FORNECEDOR
                  AND I.NUMERO = :E_NUMERO
                  AND I.SERIE = :E_SERIE
                  AND ((I.CHEQUE_RECEBIDO IS NOT NULL) AND (I.CHEQUE_RECEBIDO > 0))
                ORDER BY CH.VENCIMENTO
                INTO :CHEQUE_RECEBIDO, :BANCO, :NOME_BANCO, :NUMERO_CHEQUE, :EMISSAO,
                :VENCIMENTO, :VALOR, :TITULAR, :STATUS
                DO BEGIN
                    SUSPEND;
                END
            END
            ELSE BEGIN
                IF (E_EVENTO = 'Parcela Contas Pagar') THEN
                BEGIN
                    /*--------------------------------------------------------*/
                    /** Filtra os Cheques Repassados na Parcela Contas Pagar **/
                    /*--------------------------------------------------------*/
                    FOR SELECT DISTINCT I.CHEQUE_RECEBIDO, CH.BANCO, BA.NOME NOME_BANCO, CH.NUMERO_CHEQUE, CH.EMISSAO,
                               CH.VENCIMENTO, CH.VALOR, CH.TITULAR, CH.STATUS
                    FROM MOV_IT_CONTAS_PAGAR I
                    LEFT OUTER JOIN MOV_CHEQUE_RECEBIDO CH ON(CH.EMPRESA = I.EMPRESA
                                                          AND CH.NUMERO = I.CHEQUE_RECEBIDO)
                    LEFT OUTER JOIN CAD_BANCO BA ON(BA.CADASTRO = CH.BANCO)
                    WHERE I.EMPRESA = :E_EMPRESA
                      AND I.DOCUMENTO = :E_DOCUMENTO
                      AND I.FORNECEDOR = :E_FORNECEDOR
                      AND I.NUMERO = :E_NUMERO
                      AND I.SERIE = :E_SERIE
                      AND I.PARCELA = :E_PARCELA
                      AND ((I.CHEQUE_RECEBIDO IS NOT NULL) AND (I.CHEQUE_RECEBIDO > 0))
                    ORDER BY CH.VENCIMENTO
                    INTO :CHEQUE_RECEBIDO, :BANCO, :NOME_BANCO, :NUMERO_CHEQUE, :EMISSAO,
                    :VENCIMENTO, :VALOR, :TITULAR, :STATUS
                    DO BEGIN
                        SUSPEND;
                    END
                END
            END
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER PROCEDURE PRO_MOV_FECHAMENTO_CONVENIO (
    e_evento varchar(20),
    e_empresa integer,
    e_convenio integer,
    e_vencimento date,
    e_fechamento_convenio integer)
returns (
    empresa integer,
    caixa varchar(3),
    documento varchar(2),
    cliente integer,
    nome_cliente varchar(80),
    numero integer,
    serie integer,
    parcela integer,
    emissao date,
    vencimento date,
    valor double precision,
    referencia varchar(80),
    situacao_titulo integer,
    fechamento_convenio integer,
    saldo double precision,
    saldo_liquido double precision,
    numero_documento integer)
as
BEGIN
    IF (:E_EVENTO = 'Select') THEN
    BEGIN
        FOR SELECT R.EMPRESA, R.CAIXA, R.DOCUMENTO, R.CLIENTE, CL.NOME NOME_CLIENTE, R.NUMERO, R.SERIE, R.PARCELA,
                   R.EMISSAO, R.VENCIMENTO, R.VALOR, R.REFERENCIA, R.SITUACAO_TITULO, R.FECHAMENTO_CONVENIO, R.SALDO,
                   R.SALDO_LIQUIDO, R.NUMERO_DOCUMENTO
        FROM MOV_CONTAS_RECEBER R
        LEFT OUTER JOIN CAD_PESSOA CL ON(CL.CADASTRO = R.CLIENTE)
        WHERE R.EMPRESA = :E_EMPRESA
          AND R.CONVENIO = :E_CONVENIO
          AND R.VENCIMENTO <= :E_VENCIMENTO
          AND R.SALDO > 0
        ORDER BY CL.NOME, R.CLIENTE, R.EMPRESA, R.CAIXA, R.DOCUMENTO, R.NUMERO_DOCUMENTO, R.SERIE, R.PARCELA
        INTO :EMPRESA, :CAIXA, :DOCUMENTO, :CLIENTE, :NOME_CLIENTE, :NUMERO, :SERIE, :PARCELA,
        :EMISSAO, :VENCIMENTO, :VALOR, :REFERENCIA, :SITUACAO_TITULO, :FECHAMENTO_CONVENIO, :SALDO,
        :SALDO_LIQUIDO, :NUMERO_DOCUMENTO
        DO BEGIN
            SUSPEND;
        END
    END
    ELSE BEGIN
        IF (:E_EVENTO = 'Titulo Vinculado') THEN
        BEGIN
            FOR SELECT R.EMPRESA, R.CAIXA, R.DOCUMENTO, R.CLIENTE, CL.NOME NOME_CLIENTE, R.NUMERO, R.SERIE, R.PARCELA,
                       R.EMISSAO, R.VENCIMENTO, R.VALOR, R.REFERENCIA, R.SITUACAO_TITULO, R.FECHAMENTO_CONVENIO, R.SALDO,
                       R.SALDO_LIQUIDO, R.NUMERO_DOCUMENTO
            FROM MOV_CONTAS_RECEBER R
            LEFT OUTER JOIN CAD_PESSOA CL ON(CL.CADASTRO = R.CLIENTE)
            WHERE R.EMPRESA = :E_EMPRESA
              AND R.FECHAMENTO_CONVENIO = :E_FECHAMENTO_CONVENIO
            ORDER BY CL.NOME, R.CLIENTE, R.EMPRESA, R.CAIXA, R.DOCUMENTO, R.NUMERO_DOCUMENTO, R.SERIE, R.PARCELA
            INTO :EMPRESA, :CAIXA, :DOCUMENTO, :CLIENTE, :NOME_CLIENTE, :NUMERO, :SERIE, :PARCELA,
            :EMISSAO, :VENCIMENTO, :VALOR, :REFERENCIA, :SITUACAO_TITULO, :FECHAMENTO_CONVENIO, :SALDO,
            :SALDO_LIQUIDO, :NUMERO_DOCUMENTO
            DO BEGIN
                SUSPEND;
            END
        END
    END
END


C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA  DROP BAIXAR_TITULO_AUTOMATICO_TEF

Erro..:  unsuccessful metadata update
column BAIXAR_TITULO_AUTOMATICO_TEF does not exist in table/view CAD_EMPRESA
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT FIRST 1(EMAIL) EMAIL   
FROM CAD_PESSOA               
ORDER BY CADASTRO             

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE MOV_IT_NOTA_CARTA_CORRECAO                                                                
 (EMPRESA INTEGER NOT NULL,                                                                            
  SERIE_NF INTEGER NOT NULL,                                                                           
  NUMERO_NF INTEGER NOT NULL,                                                                          
  NUMERO INTEGER NOT NULL,                                                                             
  EMISSAO TIMESTAMP NOT NULL,                                                                          
  CORRECAO BLOB(240) NOT NULL,                                                                         
  LOTE_CCE INTEGER,                                                                                    
  PROTOCOLO_ENVIO_CCE VARCHAR(25),                                                                     
  IDENTIFICACAO_ARQUIVO_XML_CCE VARCHAR(60),                                                           
  ARQUIVO_XML_CCE BLOB(240),                                                                           
  STATUS VARCHAR(25) NOT NULL,                                                                         
 FOREIGN KEY (EMPRESA, SERIE_NF, NUMERO_NF) REFERENCES MOV_NOTA_FISCAL_VENDA (EMPRESA, SERIE, NUMERO), 
 PRIMARY KEY (EMPRESA, SERIE_NF, NUMERO_NF, NUMERO))                                                                      

Erro..:  unsuccessful metadata update
Table MOV_IT_NOTA_CARTA_CORRECAO already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE TABLE MOV_SERVICO_ATENDIMENTO_CLIENTE                            
(NUMERO INTEGER NOT NULL,                                               
 CLIENTE INTEGER NOT NULL,                                              
 EMISSAO DATE NOT NULL,                                                 
 DATA_AGENDAMENTO DATE,                                                 
 NOME_CONTATO VARCHAR(50),                                              
 DESCRICAO VARCHAR(50) NOT NULL,                                        
 LOGIN_USUARIO VARCHAR(50) NOT NULL,                                    
 FOREIGN KEY(CLIENTE) REFERENCES CAD_PESSOA(CADASTRO),                  
 PRIMARY KEY(NUMERO))                                                   

Erro..:  unsuccessful metadata update
Table MOV_SERVICO_ATENDIMENTO_CLIENTE already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE GENERATOR MOV_SERVICO_ATENDIMENTO_CLIENTE

Erro..:  unsuccessful metadata update
Generator MOV_SERVICO_ATENDIMENTO_CLIENTE already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_servico_atendimento_cliente'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmrel_nota_fiscal_compra_custo_detalhado'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE CAD_CLASSIFICACAO_FISCAL SET INATIVO = 2 WHERE CADASTRO = '9999.99.99'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA  DROP PERMITE_ALTERAR_PRECO_VENDA_PV

Erro..:  unsuccessful metadata update
column PERMITE_ALTERAR_PRECO_VENDA_PV does not exist in table/view CAD_EMPRESA
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA  DROP PERMITE_ALTERAR_PRECO_VENDA_OS

Erro..:  unsuccessful metadata update
column PERMITE_ALTERAR_PRECO_VENDA_OS does not exist in table/view CAD_EMPRESA
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA  DROP USA_CF_ORDEM_SERVICO

Erro..:  unsuccessful metadata update
column USA_CF_ORDEM_SERVICO does not exist in table/view CAD_EMPRESA
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE CAD_SOFTWARE_HOUSE SET FONE = '(47)3357-3571' 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE CAD_EMPRESA SET UTILIZA_SENHA_PRECO_MINIMO = 1 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmrel_movimentacao_caixa'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_contas_pagar_fornecedor'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmcons_historico_equipamento'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER TRIGGER MOV_NOTA_FISCAL_COMPRA_02 FOR MOV_NOTA_FISCAL_COMPRA 
 ACTIVE AFTER DELETE POSITION 0                                               
 AS                                                                           
 BEGIN                                                                        
     /*-------------------------------------------*/                          
     /***** Excluindo o Conhecimento de Frete *****/                          
     /*-------------------------------------------*/                          
     DELETE FROM MOV_CONHECIMENTO_FRETE                                       
     WHERE EMPRESA = OLD.EMPRESA                                              
       AND NUMERO_NOTA_FISCAL_COMPRA = OLD.NUMERO;                            
                                                                              
     /*-------------------------------------------------*/                    
     /***** Excluindo as Parcelas do Contas a Pagar *****/                    
     /*-------------------------------------------------*/                    
     DELETE FROM MOV_CONTAS_PAGAR                                             
     WHERE EMPRESA = OLD.EMPRESA                                              
       AND DOCUMENTO = 'NF'                                                 
       AND FORNECEDOR = OLD.FORNECEDOR                                        
       AND NUMERO = OLD.NUMERO_NOTA_FISCAL                                    
       AND SERIE = OLD.SERIE_NOTA_FISCAL;                                     
                                                                              
     /*-------------------------------------------------------*/              
     /***** Excluindo as Parcelas do Contas a Pagar BNDES *****/              
     /*-------------------------------------------------------*/              
     DELETE FROM MOV_CONTAS_PAGAR                                             
     WHERE EMPRESA = OLD.EMPRESA                                              
       AND DOCUMENTO = 'NF'                                                 
       AND FORNECEDOR = OLD.FORNECEDOR_CARTAO_BNDES                           
       AND NUMERO = OLD.NUMERO                                                
       AND SERIE = OLD.SERIE_NOTA_FISCAL;                                     
 END                                                                          

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmrel_venda_por_fornecedor'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_boleto_retorno'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_email_gerenciamento'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER PROCEDURE PRO_MOV_CUPOM_CONDICAO_PAGTO (                                  
     e_evento varchar(20),                                                                 
     e_empresa integer,                                                                    
     e_caixa varchar(3),                                                                   
     e_ano integer,                                                                        
     e_numero integer)                                                                     
 returns (                                                                                 
     condicao_pagamento integer,                                                           
     descricao_condicao_pagamento varchar(50),                                             
     valor double precision,                                                               
     valor_recebido double precision,                                                      
     valor_original double precision)                                                      
 as                                                                                        
 BEGIN                                                                                     
     IF (E_EVENTO = 'Select') THEN                                                       
     BEGIN                                                                                 
         FOR SELECT I.CONDICAO_PAGAMENTO, CP.DESCRICAO DESCRICAO_CONDICAO_PAGAMENTO,       
                    I.VALOR, I.VALOR_RECEBIDO, I.VALOR_ORIGINAL                            
         FROM MOV_CUPOM_FISCAL_CONDICAO_PAGTO I                                            
         LEFT OUTER JOIN CAD_CONDICAO_PAGAMENTO CP ON (CP.EMPRESA = I.EMPRESA              
                                                   AND CP.CADASTRO = I.CONDICAO_PAGAMENTO) 
         WHERE I.EMPRESA = :E_EMPRESA                                                      
           AND I.CAIXA = :E_CAIXA                                                          
           AND I.ANO = :E_ANO                                                              
           AND I.NUMERO = :E_NUMERO                                                        
         ORDER BY I.CONDICAO_PAGAMENTO                                                     
         INTO :CONDICAO_PAGAMENTO, :DESCRICAO_CONDICAO_PAGAMENTO, :VALOR, :VALOR_RECEBIDO, 
              :VALOR_ORIGINAL                                                              
         DO BEGIN                                                                          
             SUSPEND;                                                                      
         END                                                                               
     END                                                                                   
 END                                                                                       

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER PROCEDURE PRO_MOV_CUPOM_FISCAL (
    e_evento varchar(20),
    e_empresa integer,
    e_caixa varchar(3),
    e_ano integer,
    e_numero integer)
returns (
    empresa integer,
    caixa varchar(3),
    ano integer,
    numero integer,
    numero_cupom_fiscal integer,
    cliente integer,
    nome_cliente varchar(80),
    endereco_cliente varchar(50),
    bairro_cliente varchar(50),
    cep_cliente varchar(10),
    cidade_cliente varchar(50),
    estado_cliente varchar(2),
    cnpj_cpf_cliente varchar(18),
    ie_rg_cliente varchar(18),
    emissao date,
    hora time,
    vendedor integer,
    nome_vendedor varchar(80),
    percentual_comissao double precision,
    valor_desconto double precision,
    valor_juros double precision,
    base_icms double precision,
    valor_icms double precision,
    aliquota_iss double precision,
    base_iss double precision,
    valor_iss double precision,
    total_produto double precision,
    total_servico double precision,
    total_cupom_fiscal double precision,
    status varchar(10),
    convenio integer,
    nome_convenio varchar(80),
    observacao varchar(80),
    tipo_documento varchar(2),
    descricao_tipo_documento varchar(50),
    numero_contador_cupom_fiscal integer)
as
declare variable vnumero integer;
BEGIN
    IF (E_EVENTO = 'Select') THEN
    BEGIN
        SELECT EMPRESA, CAIXA, ANO, NUMERO, NUMERO_CUPOM_FISCAL, CLIENTE, NOME_CLIENTE, ENDERECO_CLIENTE,
               BAIRRO_CLIENTE, CEP_CLIENTE, CIDADE_CLIENTE, ESTADO_CLIENTE, CNPJ_CPF_CLIENTE, IE_RG_CLIENTE,
               EMISSAO, HORA, VENDEDOR, NOME_VENDEDOR, PERCENTUAL_COMISSAO, VALOR_DESCONTO, VALOR_JUROS, BASE_ICMS,
               VALOR_ICMS, ALIQUOTA_ISS, BASE_ISS, VALOR_ISS, TOTAL_PRODUTO, TOTAL_SERVICO, TOTAL_CUPOM_FISCAL,
               STATUS, CONVENIO, NOME_CONVENIO, OBSERVACAO, TIPO_DOCUMENTO, NUMERO_CONTADOR_CUPOM_FISCAL,
               CASE TIPO_DOCUMENTO WHEN 'RV' THEN
                   'Registro de Venda'
               ELSE
                   CASE TIPO_DOCUMENTO WHEN 'CC' THEN
                       'Comprovante de Credito ou Debito'
                   ELSE
                       CASE TIPO_DOCUMENTO WHEN 'CN' THEN
                           'Comprovante Nao Fiscal'
                       ELSE
                           CASE TIPO_DOCUMENTO WHEN 'NC' THEN
                               'Comprovante Nao Fiscal Cancelado'
                           ELSE
                               CASE TIPO_DOCUMENTO WHEN 'RG' THEN
                                   'Relatorio Gerencial'
                               ELSE
                                   CASE TIPO_DOCUMENTO WHEN 'CM' THEN
                                       'Conferencia de Mesa'
                                   ELSE
                                       ''
                                   END
                               END
                           END
                       END
                   END
               END AS DESCRICAO_TIPO_DOCUMENTO
        FROM MOV_CUPOM_FISCAL
        WHERE EMPRESA = :E_EMPRESA
          AND CAIXA = :E_CAIXA
          AND ANO = :E_ANO
          AND NUMERO = :E_NUMERO
        INTO :EMPRESA, :CAIXA, :ANO, :NUMERO, :NUMERO_CUPOM_FISCAL, :CLIENTE, :NOME_CLIENTE, :ENDERECO_CLIENTE,
             :BAIRRO_CLIENTE, :CEP_CLIENTE, :CIDADE_CLIENTE, :ESTADO_CLIENTE, :CNPJ_CPF_CLIENTE, :IE_RG_CLIENTE,
             :EMISSAO, :HORA, :VENDEDOR, :NOME_VENDEDOR, :PERCENTUAL_COMISSAO, :VALOR_DESCONTO, :VALOR_JUROS, :BASE_ICMS,
             :VALOR_ICMS, :ALIQUOTA_ISS, :BASE_ISS, :VALOR_ISS, :TOTAL_PRODUTO, :TOTAL_SERVICO, :TOTAL_CUPOM_FISCAL,
             :STATUS, :CONVENIO, :NOME_CONVENIO, :OBSERVACAO, :TIPO_DOCUMENTO, :NUMERO_CONTADOR_CUPOM_FISCAL,
             :DESCRICAO_TIPO_DOCUMENTO;

        SUSPEND;
    END
    ELSE BEGIN
        IF (E_EVENTO = 'Prior') THEN
        BEGIN
            SELECT FIRST 1(NUMERO) NUMERO
            FROM MOV_CUPOM_FISCAL
            WHERE EMPRESA = :E_EMPRESA
              AND CAIXA = :E_CAIXA
              AND ANO = :E_ANO
              AND NUMERO < :E_NUMERO
            ORDER BY NUMERO DESC
            INTO :VNUMERO;

            IF (VNUMERO IS NOT NULL) THEN
            BEGIN
                SELECT EMPRESA, CAIXA, ANO, NUMERO, NUMERO_CUPOM_FISCAL, CLIENTE, NOME_CLIENTE, ENDERECO_CLIENTE,
                       BAIRRO_CLIENTE, CEP_CLIENTE, CIDADE_CLIENTE, ESTADO_CLIENTE, CNPJ_CPF_CLIENTE, IE_RG_CLIENTE,
                       EMISSAO, HORA, VENDEDOR, NOME_VENDEDOR, PERCENTUAL_COMISSAO, VALOR_DESCONTO, VALOR_JUROS, BASE_ICMS,
                       VALOR_ICMS, ALIQUOTA_ISS, BASE_ISS, VALOR_ISS, TOTAL_PRODUTO, TOTAL_SERVICO, TOTAL_CUPOM_FISCAL,
                       STATUS, CONVENIO, NOME_CONVENIO, OBSERVACAO, TIPO_DOCUMENTO, NUMERO_CONTADOR_CUPOM_FISCAL,
                       CASE TIPO_DOCUMENTO WHEN 'RV' THEN
                           'Registro de Venda'
                       ELSE
                           CASE TIPO_DOCUMENTO WHEN 'CC' THEN
                               'Comprovante de Credito ou Debito'
                           ELSE
                               CASE TIPO_DOCUMENTO WHEN 'CN' THEN
                                   'Comprovante Nao Fiscal'
                               ELSE
                                   CASE TIPO_DOCUMENTO WHEN 'NC' THEN
                                       'Comprovante Nao Fiscal Cancelado'
                                   ELSE
                                       CASE TIPO_DOCUMENTO WHEN 'RG' THEN
                                           'Relatorio Gerencial'
                                       ELSE
                                           CASE TIPO_DOCUMENTO WHEN 'CM' THEN
                                               'Conferencia de Mesa'
                                           ELSE
                                               ''
                                           END
                                       END
                                   END
                               END
                           END
                       END AS DESCRICAO_TIPO_DOCUMENTO
                FROM MOV_CUPOM_FISCAL
                WHERE EMPRESA = :E_EMPRESA
                  AND CAIXA = :E_CAIXA
                  AND ANO = :E_ANO
                  AND NUMERO = :VNUMERO
                INTO :EMPRESA, :CAIXA, :ANO, :NUMERO, :NUMERO_CUPOM_FISCAL, :CLIENTE, :NOME_CLIENTE, :ENDERECO_CLIENTE,
                     :BAIRRO_CLIENTE, :CEP_CLIENTE, :CIDADE_CLIENTE, :ESTADO_CLIENTE, :CNPJ_CPF_CLIENTE, :IE_RG_CLIENTE,
                     :EMISSAO, :HORA, :VENDEDOR, :NOME_VENDEDOR, :PERCENTUAL_COMISSAO, :VALOR_DESCONTO, :VALOR_JUROS, :BASE_ICMS,
                     :VALOR_ICMS, :ALIQUOTA_ISS, :BASE_ISS, :VALOR_ISS, :TOTAL_PRODUTO, :TOTAL_SERVICO, :TOTAL_CUPOM_FISCAL,
                     :STATUS, :CONVENIO, :NOME_CONVENIO, :OBSERVACAO, :TIPO_DOCUMENTO, :NUMERO_CONTADOR_CUPOM_FISCAL,
                     :DESCRICAO_TIPO_DOCUMENTO;

                SUSPEND;
            END
            ELSE BEGIN
                SELECT FIRST 1(EMPRESA), CAIXA, ANO, NUMERO, NUMERO_CUPOM_FISCAL, CLIENTE, NOME_CLIENTE, ENDERECO_CLIENTE,
                       BAIRRO_CLIENTE, CEP_CLIENTE, CIDADE_CLIENTE, ESTADO_CLIENTE, CNPJ_CPF_CLIENTE, IE_RG_CLIENTE,
                       EMISSAO, HORA, VENDEDOR, NOME_VENDEDOR, PERCENTUAL_COMISSAO, VALOR_DESCONTO, VALOR_JUROS, BASE_ICMS,
                       VALOR_ICMS, ALIQUOTA_ISS, BASE_ISS, VALOR_ISS, TOTAL_PRODUTO, TOTAL_SERVICO, TOTAL_CUPOM_FISCAL,
                       STATUS, CONVENIO, NOME_CONVENIO, OBSERVACAO, TIPO_DOCUMENTO, NUMERO_CONTADOR_CUPOM_FISCAL,
                       CASE TIPO_DOCUMENTO WHEN 'RV' THEN
                           'Registro de Venda'
                       ELSE
                           CASE TIPO_DOCUMENTO WHEN 'CC' THEN
                               'Comprovante de Credito ou Debito'
                           ELSE
                               CASE TIPO_DOCUMENTO WHEN 'CN' THEN
                                   'Comprovante Nao Fiscal'
                               ELSE
                                   CASE TIPO_DOCUMENTO WHEN 'NC' THEN
                                       'Comprovante Nao Fiscal Cancelado'
                                   ELSE
                                       CASE TIPO_DOCUMENTO WHEN 'RG' THEN
                                           'Relatorio Gerencial'
                                       ELSE
                                           CASE TIPO_DOCUMENTO WHEN 'CM' THEN
                                               'Conferencia de Mesa'
                                           ELSE
                                               ''
                                           END
                                       END
                                   END
                               END
                           END
                       END AS DESCRICAO_TIPO_DOCUMENTO
                FROM MOV_CUPOM_FISCAL
                WHERE EMPRESA = :E_EMPRESA
                  AND CAIXA = :E_CAIXA
                  AND ANO = :E_ANO
                ORDER BY NUMERO
                INTO :EMPRESA, :CAIXA, :ANO, :NUMERO, :NUMERO_CUPOM_FISCAL, :CLIENTE, :NOME_CLIENTE, :ENDERECO_CLIENTE,
                     :BAIRRO_CLIENTE, :CEP_CLIENTE, :CIDADE_CLIENTE, :ESTADO_CLIENTE, :CNPJ_CPF_CLIENTE, :IE_RG_CLIENTE,
                     :EMISSAO, :HORA, :VENDEDOR, :NOME_VENDEDOR, :PERCENTUAL_COMISSAO, :VALOR_DESCONTO, :VALOR_JUROS, :BASE_ICMS,
                     :VALOR_ICMS, :ALIQUOTA_ISS, :BASE_ISS, :VALOR_ISS, :TOTAL_PRODUTO, :TOTAL_SERVICO, :TOTAL_CUPOM_FISCAL,
                     :STATUS, :CONVENIO, :NOME_CONVENIO, :OBSERVACAO, :TIPO_DOCUMENTO, :NUMERO_CONTADOR_CUPOM_FISCAL,
                     :DESCRICAO_TIPO_DOCUMENTO;

                SUSPEND;
            END
        END
        ELSE BEGIN
            IF (E_EVENTO = 'Next') THEN
            BEGIN
                SELECT FIRST 1(NUMERO) NUMERO
                FROM MOV_CUPOM_FISCAL
                WHERE EMPRESA = :E_EMPRESA
                  AND CAIXA = :E_CAIXA
                  AND ANO = :E_ANO
                  AND NUMERO > :E_NUMERO
                ORDER BY NUMERO
                INTO :VNUMERO;

                IF (VNUMERO IS NOT NULL) THEN
                BEGIN
                    SELECT EMPRESA, CAIXA, ANO, NUMERO, NUMERO_CUPOM_FISCAL, CLIENTE, NOME_CLIENTE, ENDERECO_CLIENTE,
                           BAIRRO_CLIENTE, CEP_CLIENTE, CIDADE_CLIENTE, ESTADO_CLIENTE, CNPJ_CPF_CLIENTE, IE_RG_CLIENTE,
                           EMISSAO, HORA, VENDEDOR, NOME_VENDEDOR, PERCENTUAL_COMISSAO, VALOR_DESCONTO, VALOR_JUROS, BASE_ICMS,
                           VALOR_ICMS, ALIQUOTA_ISS, BASE_ISS, VALOR_ISS, TOTAL_PRODUTO, TOTAL_SERVICO, TOTAL_CUPOM_FISCAL,
                           STATUS, CONVENIO, NOME_CONVENIO, OBSERVACAO, TIPO_DOCUMENTO, NUMERO_CONTADOR_CUPOM_FISCAL,
                           CASE TIPO_DOCUMENTO WHEN 'RV' THEN
                               'Registro de Venda'
                           ELSE
                               CASE TIPO_DOCUMENTO WHEN 'CC' THEN
                                   'Comprovante de Credito ou Debito'
                               ELSE
                                   CASE TIPO_DOCUMENTO WHEN 'CN' THEN
                                       'Comprovante Nao Fiscal'
                                   ELSE
                                       CASE TIPO_DOCUMENTO WHEN 'NC' THEN
                                           'Comprovante Nao Fiscal Cancelado'
                                       ELSE
                                           CASE TIPO_DOCUMENTO WHEN 'RG' THEN
                                               'Relatorio Gerencial'
                                           ELSE
                                               CASE TIPO_DOCUMENTO WHEN 'CM' THEN
                                                   'Conferencia de Mesa'
                                               ELSE
                                                   ''
                                               END
                                           END
                                       END
                                   END
                               END
                           END AS DESCRICAO_TIPO_DOCUMENTO
                    FROM MOV_CUPOM_FISCAL
                    WHERE EMPRESA = :E_EMPRESA
                      AND CAIXA = :E_CAIXA
                      AND ANO = :E_ANO
                      AND NUMERO = :VNUMERO
                    INTO :EMPRESA, :CAIXA, :ANO, :NUMERO, :NUMERO_CUPOM_FISCAL, :CLIENTE, :NOME_CLIENTE, :ENDERECO_CLIENTE,
                         :BAIRRO_CLIENTE, :CEP_CLIENTE, :CIDADE_CLIENTE, :ESTADO_CLIENTE, :CNPJ_CPF_CLIENTE, :IE_RG_CLIENTE,
                         :EMISSAO, :HORA, :VENDEDOR, :NOME_VENDEDOR, :PERCENTUAL_COMISSAO, :VALOR_DESCONTO, :VALOR_JUROS, :BASE_ICMS,
                         :VALOR_ICMS, :ALIQUOTA_ISS, :BASE_ISS, :VALOR_ISS, :TOTAL_PRODUTO, :TOTAL_SERVICO, :TOTAL_CUPOM_FISCAL,
                         :STATUS, :CONVENIO, :NOME_CONVENIO, :OBSERVACAO, :TIPO_DOCUMENTO, :NUMERO_CONTADOR_CUPOM_FISCAL,
                         :DESCRICAO_TIPO_DOCUMENTO;

                    SUSPEND;
                END
                ELSE BEGIN
                    SELECT FIRST 1(EMPRESA), CAIXA, ANO, NUMERO, NUMERO_CUPOM_FISCAL, CLIENTE, NOME_CLIENTE, ENDERECO_CLIENTE,
                           BAIRRO_CLIENTE, CEP_CLIENTE, CIDADE_CLIENTE, ESTADO_CLIENTE, CNPJ_CPF_CLIENTE, IE_RG_CLIENTE,
                           EMISSAO, HORA, VENDEDOR, NOME_VENDEDOR, PERCENTUAL_COMISSAO, VALOR_DESCONTO, VALOR_JUROS, BASE_ICMS,
                           VALOR_ICMS, ALIQUOTA_ISS, BASE_ISS, VALOR_ISS, TOTAL_PRODUTO, TOTAL_SERVICO, TOTAL_CUPOM_FISCAL,
                           STATUS, CONVENIO, NOME_CONVENIO, OBSERVACAO, TIPO_DOCUMENTO, NUMERO_CONTADOR_CUPOM_FISCAL,
                           CASE TIPO_DOCUMENTO WHEN 'RV' THEN
                               'Registro de Venda'
                           ELSE
                               CASE TIPO_DOCUMENTO WHEN 'CC' THEN
                                   'Comprovante de Credito ou Debito'
                               ELSE
                                   CASE TIPO_DOCUMENTO WHEN 'CN' THEN
                                       'Comprovante Nao Fiscal'
                                   ELSE
                                       CASE TIPO_DOCUMENTO WHEN 'NC' THEN
                                           'Comprovante Nao Fiscal Cancelado'
                                       ELSE
                                           CASE TIPO_DOCUMENTO WHEN 'RG' THEN
                                               'Relatorio Gerencial'
                                           ELSE
                                               CASE TIPO_DOCUMENTO WHEN 'CM' THEN
                                                   'Conferencia de Mesa'
                                               ELSE
                                                   ''
                                               END
                                           END
                                       END
                                   END
                               END
                           END AS DESCRICAO_TIPO_DOCUMENTO
                    FROM MOV_CUPOM_FISCAL
                    WHERE EMPRESA = :E_EMPRESA
                      AND CAIXA = :E_CAIXA
                      AND ANO = :E_ANO
                    ORDER BY NUMERO DESC
                    INTO :EMPRESA, :CAIXA, :ANO, :NUMERO, :NUMERO_CUPOM_FISCAL, :CLIENTE, :NOME_CLIENTE, :ENDERECO_CLIENTE,
                         :BAIRRO_CLIENTE, :CEP_CLIENTE, :CIDADE_CLIENTE, :ESTADO_CLIENTE, :CNPJ_CPF_CLIENTE, :IE_RG_CLIENTE,
                         :EMISSAO, :HORA, :VENDEDOR, :NOME_VENDEDOR, :PERCENTUAL_COMISSAO, :VALOR_DESCONTO, :VALOR_JUROS, :BASE_ICMS,
                         :VALOR_ICMS, :ALIQUOTA_ISS, :BASE_ISS, :VALOR_ISS, :TOTAL_PRODUTO, :TOTAL_SERVICO, :TOTAL_CUPOM_FISCAL,
                         :STATUS, :CONVENIO, :NOME_CONVENIO, :OBSERVACAO, :TIPO_DOCUMENTO, :NUMERO_CONTADOR_CUPOM_FISCAL,
                         :DESCRICAO_TIPO_DOCUMENTO;

                    SUSPEND;
                END
            END
            ELSE BEGIN
                IF (E_EVENTO = 'Busca Ultimo') THEN
                BEGIN
                    SELECT MAX(NUMERO) NUMERO
                    FROM MOV_CUPOM_FISCAL
                    WHERE EMPRESA = :E_EMPRESA
                      AND CAIXA = :E_CAIXA
                      AND ANO = :E_ANO
                    INTO :NUMERO;

                    IF (NUMERO IS NULL) THEN
                    BEGIN
                        NUMERO = 0;
                    END

                    SUSPEND;
                END
            END
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE TRIGGER MOV_CONHECIMENTO_TRANSPORTE_01              FOR MOV_CONHECIMENTO_TRANSPORTE      ACTIVE BEFORE DELETE POSITION 0                 AS                                              BEGIN                                               DELETE FROM MOV_IT_CONHECIMENTO_TRANSPORTE       WHERE EMPRESA = OLD.EMPRESA                       AND SERIE   = OLD.SERIE                         AND NUMERO  = OLD.NUMERO;                END                                            

Erro..:  unsuccessful metadata update
DEFINE TRIGGER failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_8"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_conhecimento_transporte'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_conhecimento_transporte_gerenciar_cte'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA ADD TOMADOR_SERVICO_CTE INTEGER

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA
   ADD FOREIGN KEY (TOMADOR_SERVICO_CTE) REFERENCES CAD_PESSOA(CADASTRO)

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
INSERT INTO CAD_MODELO_DOCUMENTO_FISCAL 
(CADASTRO, DESCRICAO, INATIVO)          
 VALUES                                 
(:CADASTRO, :DESCRICAO, :INATIVO)       

Erro..:  violation of PRIMARY or UNIQUE KEY constraint "INTEG_1051" on table "CAD_MODELO_DOCUMENTO_FISCAL"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmrel_alteracao_preco_venda_produto'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA  DROP UTILIZA_NFSE

Erro..:  unsuccessful metadata update
column UTILIZA_NFSE does not exist in table/view CAD_EMPRESA
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA  DROP NFSE_ENDERECO_WEB_SERVICE_URL

Erro..:  unsuccessful metadata update
column NFSE_ENDERECO_WEB_SERVICE_URL does not exist in table/view CAD_EMPRESA
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA  DROP NFSE_ENDERECO_WEB_SERVICE_WSDL

Erro..:  unsuccessful metadata update
column NFSE_ENDERECO_WEB_SERVICE_WSDL does not exist in table/view CAD_EMPRESA
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmcad_especificacao_tecnica'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE GENERATOR CAD_ESPECIFICACAO_TECNICA_001

Erro..:  unsuccessful metadata update
Generator CAD_ESPECIFICACAO_TECNICA_001 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE GENERATOR CAD_ESPECIFICACAO_TECNICA_002

Erro..:  unsuccessful metadata update
Generator CAD_ESPECIFICACAO_TECNICA_002 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER TRIGGER CAD_ESPECIFICACAO_TECNICA_01 
                     FOR CAD_ESPECIFICACAO_TECNICA    
 ACTIVE BEFORE DELETE POSITION 0                      
 AS                                                   
 BEGIN                                                
     DELETE FROM CAD_IT_ESPECIFICACAO_TECNICA         
     WHERE EMPRESA = OLD.EMPRESA                      
       AND CADASTRO = OLD.CADASTRO;                   
 END                                                  

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmcad_estrutura_produto'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmrel_estoque_produto_sem_movimentacao'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmrel_conhecimento_transporte_resumido'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmcad_conjunto_produto'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER TRIGGER CAD_PRODUTO_02          
                     FOR CAD_PRODUTO             
 ACTIVE BEFORE DELETE POSITION 0                 
 AS                                              
 BEGIN                                           
     DELETE FROM CAD_IT_PRODUTO_COMPOSICAO       
     WHERE EMPRESA = OLD.EMPRESA                 
       AND PRODUTO = OLD.CADASTRO;               
                                                 
     DELETE FROM CAD_IT_PRODUTO_CODIGO_BARRA     
     WHERE EMPRESA = OLD.EMPRESA                 
       AND PRODUTO = OLD.CADASTRO;               
                                                 
     DELETE FROM CAD_IT_PRODUTO_GRADE_FORNECEDOR 
     WHERE EMPRESA = OLD.EMPRESA                 
       AND PRODUTO = OLD.CADASTRO;               
                                                 
     DELETE FROM CAD_IT_PRODUTO_FOTO             
     WHERE EMPRESA = OLD.EMPRESA                 
       AND CADASTRO = OLD.CADASTRO;              
                                                 
     DELETE FROM CAD_IT_PRODUTO_ESPECIF_TECNICA  
     WHERE EMPRESA = OLD.EMPRESA                 
       AND PRODUTO = OLD.CADASTRO;               
                                                 
     DELETE FROM CAD_IT_PRODUTO_DIMENSAO         
     WHERE EMPRESA = OLD.EMPRESA                 
       AND PRODUTO = OLD.CADASTRO;               
                                                 
     DELETE FROM CAD_IT_PRODUTO_ALTERACAO_PRECO  
     WHERE EMPRESA = OLD.EMPRESA                 
       AND PRODUTO = OLD.CADASTRO;               
                                                 
     DELETE FROM CAD_IT_PRODUTO_VARIACAO         
     WHERE EMPRESA = OLD.EMPRESA                 
       AND PRODUTO = OLD.CADASTRO;               
                                                 
     DELETE FROM CAD_IT_PRODUTO_ALTERACAO        
     WHERE EMPRESA = OLD.EMPRESA                 
       AND PRODUTO = OLD.CADASTRO;               
 END                                             

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_nota_fiscal_servico'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_nota_fiscal_venda_gerenciar_nfse'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE GENERATOR CAD_CAMPOS_CARTA_CORRECAO_CTE

Erro..:  unsuccessful metadata update
Generator CAD_CAMPOS_CARTA_CORRECAO_CTE already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_carta_correcao_cte'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER TRIGGER MOV_CARTA_CORRECAO_CTE_01 
                     FOR MOV_CARTA_CORRECAO_CTE    
 ACTIVE BEFORE DELETE POSITION 0                   
 AS                                                
 BEGIN                                             
     DELETE FROM MOV_IT_CARTA_CORRECAO_CTE         
     WHERE EMPRESA = OLD.EMPRESA                   
       AND SERIE = OLD.SERIE                       
       AND NUMERO = OLD.NUMERO                     
       AND SEQ = OLD.SEQ;                          
 END                                               

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmrel_produto_por_fornecedor'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_NOTA_FISCAL_VENDA  DROP PROTOCOLO_ENVIO_NFSE

Erro..:  unsuccessful metadata update
column PROTOCOLO_ENVIO_NFSE does not exist in table/view MOV_NOTA_FISCAL_VENDA
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_NOTA_FISCAL_VENDA  DROP NUMERO_LOTE_NFSE

Erro..:  unsuccessful metadata update
column NUMERO_LOTE_NFSE does not exist in table/view MOV_NOTA_FISCAL_VENDA
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE CAD_EMPRESA SET ENDERECO_UPLOAD_NFSE = 'http://sync.nfs-e.net/datacenter/include/nfw/importa_nfw/nfw_import_upload.php?eletron=1' 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE CAD_EMPRESA SET ENDERECO_CONSULTA_NFSE = 'http://sync.nfs-e.net/datacenter/include/nfw/importa_nfw/nfw_import_view_nf.php' 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE CAD_TELA_SISTEMA SET INATIVO = 2 WHERE NOME = 'frmmov_nota_fiscal_venda_gerenciar_rps'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE CAD_TELA_SISTEMA SET BLOQUEADO = 2 WHERE NOME = 'frmmov_nota_fiscal_venda_gerenciar_rps'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE CAD_EMPRESA SET                                                DIRETORIO_ARQUIVO_SITE = C:\Panorama\Sistemas\Temp  WHERE DIRETORIO_ARQUIVO_SITE IS NULL

Erro..:  SQL Parse Error:

Parameter name expected
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_exportacao_site'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE TRIGGER CAD_ROTA_01                      FOR CAD_ROTA              ACTIVE BEFORE DELETE POSITION 0      AS                                   BEGIN                                    DELETE FROM CAD_IT_ROTA_ESTADO        WHERE CADASTRO = OLD.CADASTRO;  END                                 

Erro..:  unsuccessful metadata update
DEFINE TRIGGER failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_8"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE TRIGGER MOV_MANIFESTO_DOC_ELETRONICO_01             FOR MOV_MANIFESTO_DOC_ELETRONICO     ACTIVE BEFORE DELETE POSITION 0                 AS                                              BEGIN                                               DELETE FROM MOV_IT_MANIFESTO_DOCUMENTO           WHERE EMPRESA = OLD.EMPRESA                       AND SERIE   = OLD.SERIE                         AND NUMERO  = OLD.NUMERO;                    DELETE FROM MOV_IT_MANIFESTO_CONDUTOR            WHERE EMPRESA = OLD.EMPRESA                       AND SERIE   = OLD.SERIE                         AND NUMERO  = OLD.NUMERO;                    DELETE FROM MOV_IT_MANIFESTO_CI_CARREGA          WHERE EMPRESA = OLD.EMPRESA                       AND SERIE   = OLD.SERIE                         AND NUMERO  = OLD.NUMERO;                END                                            

Erro..:  unsuccessful metadata update
DEFINE TRIGGER failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_8"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_manifesto_documento_fiscal'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_manifesto_documento_fiscal_gerenciar'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_mala_direta'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE GENERATOR MOV_MALA_DIRETA_001

Erro..:  unsuccessful metadata update
Generator MOV_MALA_DIRETA_001 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER TRIGGER MOV_MALA_DIRETA_01 
                     FOR MOV_MALA_DIRETA    
 ACTIVE BEFORE DELETE POSITION 0            
 AS                                         
 BEGIN                                      
     DELETE FROM MOV_IT_MALA_DIRETA         
     WHERE EMPRESA = OLD.EMPRESA            
       AND NUMERO = OLD.NUMERO;             
 END                                        

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_PESSOA  DROP TRA_CIOT

Erro..:  unsuccessful metadata update
column TRA_CIOT does not exist in table/view CAD_PESSOA
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_importacao_site'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_alteracao_preco_produto_site'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmrel_balancete_financeiro_diario_resumido'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_nota_fiscal_venda_carta_correcao'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_NOTA_FISCAL_VENDA  DROP VALOR_IMPOSTO

Erro..:  unsuccessful metadata update
column VALOR_IMPOSTO does not exist in table/view MOV_NOTA_FISCAL_VENDA
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_IT_NOTA_VENDA_PRODUTO  DROP ALIQUOTA_IMPOSTO

Erro..:  unsuccessful metadata update
column ALIQUOTA_IMPOSTO does not exist in table/view MOV_IT_NOTA_VENDA_PRODUTO
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_IT_NOTA_VENDA_PRODUTO  DROP VALOR_IMPOSTO

Erro..:  unsuccessful metadata update
column VALOR_IMPOSTO does not exist in table/view MOV_IT_NOTA_VENDA_PRODUTO
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_IT_NOTA_VENDA_SERVICO  DROP ALIQUOTA_IMPOSTO

Erro..:  unsuccessful metadata update
column ALIQUOTA_IMPOSTO does not exist in table/view MOV_IT_NOTA_VENDA_SERVICO
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_IT_NOTA_VENDA_SERVICO  DROP VALOR_IMPOSTO

Erro..:  unsuccessful metadata update
column VALOR_IMPOSTO does not exist in table/view MOV_IT_NOTA_VENDA_SERVICO
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_bordero'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE GENERATOR MOV_BORDERO_001

Erro..:  unsuccessful metadata update
Generator MOV_BORDERO_001 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE GENERATOR MOV_BORDERO_002

Erro..:  unsuccessful metadata update
Generator MOV_BORDERO_002 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_ORDEM_SERVICO_01 INACTIVE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_ORDEM_SERVICO_02 INACTIVE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_ORDEM_SERVICO_03 INACTIVE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_ORDEM_SERVICO_04 INACTIVE

Erro..:  unsuccessful metadata update
Trigger MOV_ORDEM_SERVICO_04 not found

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER trigger mov_ordem_servico_01 for mov_ordem_servico
 active before delete position 0
 AS
 DECLARE VARIABLE VPRODUTO INTEGER;
 DECLARE VARIABLE VQUANTIDADE DOUBLE PRECISION;
 DECLARE VARIABLE VEMPENHAR VARCHAR(1);
 BEGIN
     IF (((OLD.STATUS = 'Aberta') OR (OLD.STATUS = 'Aguardando Pea') OR
          (OLD.STATUS = 'Concluida') OR (OLD.STATUS = 'Fechada'))) THEN
     BEGIN
         /*-----------------------------------------------------*/
         /***** Estornando o Estoque Empenhado dos Produtos *****/
         /*-----------------------------------------------------*/
         FOR SELECT I.PRODUTO, I.QUANTIDADE, E.EMPENHAR_ORDEM_SERVICO
         FROM MOV_IT_ORDEM_SERVICO I
         LEFT OUTER JOIN CAD_PRODUTO PR ON (PR.EMPRESA = I.EMPRESA
                                        AND PR.CADASTRO = I.PRODUTO)
         LEFT OUTER JOIN CAD_EMPRESA E ON (E.CADASTRO = OLD.EMPRESA)
         WHERE I.EMPRESA = OLD.EMPRESA
           AND I.NUMERO = OLD.NUMERO
           AND I.ITEM_CANCELADO = 'No'
           AND PR.CONTROLA_ESTOQUE = '2'
         ORDER BY I.SEQ
         INTO :VPRODUTO, :VQUANTIDADE, :VEMPENHAR

         DO BEGIN
             IF (:VEMPENHAR = '2') THEN
             BEGIN
                 UPDATE CAD_PRODUTO PR SET
                 PR.ESTOQUE_EMPENHADO = UDF_FORMAT_FLOAT(PR.ESTOQUE_EMPENHADO - :VQUANTIDADE, 3)
                 WHERE PR.EMPRESA = OLD.EMPRESA
                   AND PR.CADASTRO = :VPRODUTO;
             END
         END
     END

     DELETE FROM MOV_IT_ORDEM_SERVICO
     WHERE EMPRESA = OLD.EMPRESA
       AND NUMERO = OLD.NUMERO;
 END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER trigger mov_ordem_servico_02 for mov_ordem_servico
 active after update position 0
 AS
 DECLARE VARIABLE VPRODUTO INTEGER;
 DECLARE VARIABLE VQUANTIDADE DOUBLE PRECISION;
 DECLARE VARIABLE VEQUIPAMENTO VARCHAR(80);
 DECLARE VARIABLE VEMPENHAR VARCHAR(1);
 BEGIN
     IF ((NEW.STATUS = 'Alterada') AND
        ((OLD.STATUS = 'Aberta') OR (OLD.STATUS = 'Aguardando Pea') OR
         (OLD.STATUS = 'Concluida') OR (OLD.STATUS = 'Fechada'))) THEN
     BEGIN
         /*----------------------------------------------------*/
         /***** Retirando o Estoque Empenhado dos Produtos *****/
         /*----------------------------------------------------*/
         FOR SELECT I.PRODUTO, I.QUANTIDADE, E.EMPENHAR_ORDEM_SERVICO
         FROM MOV_IT_ORDEM_SERVICO I
         LEFT OUTER JOIN CAD_PRODUTO PR ON (PR.EMPRESA = I.EMPRESA
                                        AND PR.CADASTRO = I.PRODUTO)
         LEFT OUTER JOIN CAD_EMPRESA E ON (E.CADASTRO = OLD.EMPRESA)
         WHERE I.EMPRESA = OLD.EMPRESA
           AND I.NUMERO = OLD.NUMERO
           AND I.ITEM_CANCELADO = 'No'
           AND PR.CONTROLA_ESTOQUE = '2'
         ORDER BY I.SEQ
         INTO :VPRODUTO, :VQUANTIDADE, :VEMPENHAR

         DO BEGIN
             IF (:VEMPENHAR = '2') THEN
             BEGIN
                 UPDATE CAD_PRODUTO PR SET
                 PR.ESTOQUE_EMPENHADO = UDF_FORMAT_FLOAT(PR.ESTOQUE_EMPENHADO - :VQUANTIDADE, 3)
                 WHERE PR.EMPRESA = OLD.EMPRESA
                   AND PR.CADASTRO = :VPRODUTO;
             END
         END
     END
     ELSE BEGIN
         IF ((NEW.STATUS = 'Faturada') AND
            ((OLD.STATUS = 'Aberta') OR (OLD.STATUS = 'Aguardando Pea') OR
             (OLD.STATUS = 'Concluida') OR (OLD.STATUS = 'Fechada'))) THEN
         BEGIN
             /*----------------------------------------------------*/
             /***** Retirando o Estoque Empenhado dos Produtos *****/
             /*----------------------------------------------------*/
             FOR SELECT I.PRODUTO, I.QUANTIDADE, E.EMPENHAR_ORDEM_SERVICO
             FROM MOV_IT_ORDEM_SERVICO I
             LEFT OUTER JOIN CAD_PRODUTO PR ON (PR.EMPRESA = I.EMPRESA
                                            AND PR.CADASTRO = I.PRODUTO)
             LEFT OUTER JOIN CAD_EMPRESA E ON (E.CADASTRO = OLD.EMPRESA)
             WHERE I.EMPRESA = OLD.EMPRESA
               AND I.NUMERO = OLD.NUMERO
               AND I.ITEM_CANCELADO = 'No'
               AND PR.CONTROLA_ESTOQUE = '2'
             ORDER BY I.SEQ
             INTO :VPRODUTO, :VQUANTIDADE, :VEMPENHAR

             DO BEGIN
                 IF (:VEMPENHAR = '2') THEN
                 BEGIN
                     UPDATE CAD_PRODUTO PR SET
                     PR.ESTOQUE_EMPENHADO = UDF_FORMAT_FLOAT(PR.ESTOQUE_EMPENHADO - :VQUANTIDADE, 3)
                     WHERE PR.EMPRESA = OLD.EMPRESA
                       AND PR.CADASTRO = :VPRODUTO;
                 END
             END
         END
         ELSE BEGIN
             IF ((NEW.STATUS = 'Cancelada') AND
                ((OLD.STATUS = 'Aberta') OR (OLD.STATUS = 'Aguardando Pea') OR
                 (OLD.STATUS = 'Concluida') OR (OLD.STATUS = 'Fechada'))) THEN
             BEGIN
                 /*-----------------------------------------------------*/
                 /***** Estornando o Estoque Empenhado dos Produtos *****/
                 /*-----------------------------------------------------*/
                 FOR SELECT I.PRODUTO, I.QUANTIDADE, E.EMPENHAR_ORDEM_SERVICO
                 FROM MOV_IT_ORDEM_SERVICO I
                 LEFT OUTER JOIN CAD_PRODUTO PR ON (PR.EMPRESA = I.EMPRESA
                                                AND PR.CADASTRO = I.PRODUTO)
                 LEFT OUTER JOIN CAD_EMPRESA E ON (E.CADASTRO = OLD.EMPRESA)
                 WHERE I.EMPRESA = OLD.EMPRESA
                   AND I.NUMERO = OLD.NUMERO
                   AND I.ITEM_CANCELADO = 'No'
                   AND PR.CONTROLA_ESTOQUE = '2'
                 ORDER BY I.SEQ
                 INTO :VPRODUTO, :VQUANTIDADE, :VEMPENHAR

                 DO BEGIN
                     IF (:VEMPENHAR = '2') THEN
                     BEGIN
                         UPDATE CAD_PRODUTO PR SET
                         PR.ESTOQUE_EMPENHADO = UDF_FORMAT_FLOAT(PR.ESTOQUE_EMPENHADO - :VQUANTIDADE, 3)
                         WHERE PR.EMPRESA = OLD.EMPRESA
                           AND PR.CADASTRO = :VPRODUTO;
                     END
                 END

                 /*---------------------------------------------------*/
                 /***** Excluindo as Parcelas do Contas a Receber *****/
                 /*---------------------------------------------------*/
                 DELETE FROM MOV_CONTAS_RECEBER
                 WHERE EMPRESA = OLD.EMPRESA
                   AND CAIXA = 'OS'
                   AND DOCUMENTO = 'OS'
                   AND CLIENTE = OLD.CLIENTE
                   AND NUMERO = OLD.NUMERO
                   AND SERIE = '1';
             END
             ELSE BEGIN
                 /*---------------------------------------------------------------------*/
                 /********* Quando  Emitido Cupom Fiscal pela Ordem de Servio *********/
                 /****** e o mesmo  Cancelado na Tela do Cupom Fiscal, o sistema *******/
                 /***** Altera o Status Ordem de Servio de "Faturada" p/ "Fechada" *****/
                 /*---------------------------------------------------------------------*/
                 IF ((NEW.STATUS = 'Fechada') AND (OLD.STATUS = 'Faturada')) THEN
                 BEGIN
                     /*-------------------------------------------*/
                     /***** Empenhando o Estoque dos Produtos *****/
                     /*-------------------------------------------*/
                     FOR SELECT I.PRODUTO, I.QUANTIDADE, E.EMPENHAR_ORDEM_SERVICO
                     FROM MOV_IT_ORDEM_SERVICO I
                     LEFT OUTER JOIN CAD_PRODUTO PR ON (PR.EMPRESA = I.EMPRESA
                                                    AND PR.CADASTRO = I.PRODUTO)
                     LEFT OUTER JOIN CAD_EMPRESA E ON (E.CADASTRO = OLD.EMPRESA)
                     WHERE I.EMPRESA = OLD.EMPRESA
                       AND I.NUMERO = OLD.NUMERO
                       AND I.ITEM_CANCELADO = 'No'
                       AND PR.CONTROLA_ESTOQUE = '2'
                     ORDER BY I.SEQ
                     INTO :VPRODUTO, :VQUANTIDADE, :VEMPENHAR

                     DO BEGIN
                         IF (:VEMPENHAR = '2') THEN
                         BEGIN
                             UPDATE CAD_PRODUTO PR SET
                             PR.ESTOQUE_EMPENHADO = UDF_FORMAT_FLOAT(PR.ESTOQUE_EMPENHADO + :VQUANTIDADE, 3)
                             WHERE PR.EMPRESA = OLD.EMPRESA
                               AND PR.CADASTRO = :VPRODUTO;
                         END
                     END

                     /*---------------------------------------------------*/
                     /***** Excluindo as Parcelas do Contas a Receber *****/
                     /*---------------------------------------------------*/
                     DELETE FROM MOV_CONTAS_RECEBER
                     WHERE EMPRESA = OLD.EMPRESA
                       AND CAIXA = 'OS'
                       AND DOCUMENTO = 'OS'
                       AND CLIENTE = OLD.CLIENTE
                       AND NUMERO = OLD.NUMERO
                       AND SERIE = '1';
                 END
             END
         END
     END

     IF ((NEW.CLIENTE <> OLD.CLIENTE) OR
         (NEW.DESCRICAO <> OLD.DESCRICAO) OR
         (NEW.EQUIPAMENTO <> OLD.EQUIPAMENTO) OR
         (NEW.ATENDENTE <> OLD.ATENDENTE)) THEN
     BEGIN
         SELECT E.DESCRICAO
         FROM CAD_EQUIPAMENTO E
         WHERE E.EMPRESA = NEW.EMPRESA
           AND E.CADASTRO = NEW.EQUIPAMENTO
         INTO :VEQUIPAMENTO;

         UPDATE MOV_CONTAS_RECEBER SET
         CLIENTE = NEW.CLIENTE,
         REFERENCIA = UDF_COPY(NEW.DESCRICAO, 1, 80),
         OBSERVACAO = UDF_COPY('EQUIPAMENTO..:  ' ||:VEQUIPAMENTO, 1, 80),
         VENDEDOR = NEW.ATENDENTE
         WHERE EMPRESA = OLD.EMPRESA
           AND CAIXA = 'OS'
           AND DOCUMENTO = 'OS'
           AND CLIENTE = OLD.CLIENTE
           AND NUMERO = OLD.NUMERO
           AND SERIE = '1';
     END
 END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_ORDEM_SERVICO_01 ACTIVE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_ORDEM_SERVICO_02 ACTIVE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_ORDEM_SERVICO_03 ACTIVE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_ORDEM_SERVICO_04 ACTIVE

Erro..:  unsuccessful metadata update
Trigger MOV_ORDEM_SERVICO_04 not found

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER PROCEDURE PRO_HIST_PEDIDO_COMPRA (
    e_evento varchar(20),
    e_empresa integer,
    e_fornecedor integer,
    e_produto integer)
returns (
    empresa integer,
    numero integer,
    emissao date,
    fornecedor integer,
    nome_fornecedor varchar(80),
    nome_contato varchar(80),
    quantidade double precision,
    valor double precision,
    total double precision,
    total_pedido double precision,
    status varchar(15),
    status_pedido varchar(15),
    previsao_entrega date)
as
BEGIN
    IF (:E_EVENTO = 'Fornecedor') THEN
    BEGIN
        FOR SELECT EMPRESA, NUMERO, EMISSAO, NOME_CONTATO, TOTAL_PEDIDO, STATUS, PREVISAO_ENTREGA
        FROM MOV_PEDIDO_COMPRA
        WHERE EMPRESA = :E_EMPRESA
          AND FORNECEDOR = :E_FORNECEDOR
        INTO :EMPRESA, :NUMERO, :EMISSAO, :NOME_CONTATO, :TOTAL_PEDIDO, :STATUS, :PREVISAO_ENTREGA
        DO BEGIN
            SUSPEND;
        END
    END
    ELSE BEGIN
        IF (:E_EVENTO = 'Produto') THEN
        BEGIN
            FOR SELECT P.EMPRESA, P.NUMERO, P.EMISSAO, P.FORNECEDOR, FO.NOME NOME_FORNECEDOR, P.NOME_CONTATO,
                       I.QUANTIDADE, I.VALOR, I.TOTAL, I.STATUS, P.PREVISAO_ENTREGA, P.STATUS STATUS_PEDIDO
            FROM MOV_PEDIDO_COMPRA P
            LEFT OUTER JOIN MOV_IT_PEDIDO_COMPRA I ON(I.EMPRESA = P.EMPRESA
                                                  AND I.NUMERO = P.NUMERO)
            LEFT OUTER JOIN CAD_PESSOA FO ON(FO.CADASTRO = P.FORNECEDOR)
            WHERE P.EMPRESA = :E_EMPRESA
              AND I.PRODUTO = :E_PRODUTO
            INTO :EMPRESA, :NUMERO, :EMISSAO, :FORNECEDOR, :NOME_FORNECEDOR, :NOME_CONTATO,
            :QUANTIDADE, :VALOR, :TOTAL, :STATUS, :PREVISAO_ENTREGA, :STATUS_PEDIDO
            DO BEGIN
                SUSPEND;
            END
        END
        ELSE BEGIN
            IF (:E_EVENTO = 'Total Fornecedor') THEN
            BEGIN
                SELECT SUM(TOTAL_PEDIDO) TOTAL_PEDIDO
                FROM MOV_PEDIDO_COMPRA
                WHERE EMPRESA = :E_EMPRESA
                  AND FORNECEDOR = :E_FORNECEDOR
                  AND STATUS <> 'Cancelado'
                  INTO :TOTAL_PEDIDO;

                SUSPEND;
            END
            ELSE BEGIN
                IF (:E_EVENTO = 'Total Produto') THEN
                BEGIN
                    SELECT SUM(I.TOTAL) TOTAL
                    FROM MOV_PEDIDO_COMPRA P
                    LEFT OUTER JOIN MOV_IT_PEDIDO_COMPRA I ON(I.EMPRESA = P.EMPRESA
                                                          AND I.NUMERO = P.NUMERO)
                    WHERE P.EMPRESA = :E_EMPRESA
                      AND P.STATUS <> 'Cancelado'
                      AND I.PRODUTO = :E_PRODUTO
                      INTO :TOTAL;

                    SUSPEND;
                END
            END
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE CAD_SOFTWARE_HOUSE SET                 
 NOME = :NOME,                                 
 CNPJ = :CNPJ,                                 
 INSCRICAO_ESTADUAL = :INSCRICAO_ESTADUAL,     
 INSCRICAO_MUNICIPAL = :INSCRICAO_MUNICIPAL,   
 ENDERECO = :ENDERECO,                         
 BAIRRO = :BAIRRO,                             
 NOME_CIDADE = :NOME_CIDADE,                   
 ESTADO = :ESTADO,                             
 FONE = :FONE,                                 
 PESSOA_CONTATO = :PESSOA_CONTATO,             
 NOME_SOFTWARE = :NOME_SOFTWARE,               
 ARQUIVO_EXECUTAVEL = :ARQUIVO_EXECUTAVEL,     
 VERSAO_SOFTWARE = :VERSAO_SOFTWARE,           
 NUMERO_LAUDO_PAF_ECF = :NUMERO_LAUDO_PAF_ECF, 
 EMAIL = :EMAIL,                               
 HOME_PAGE = :HOME_PAGE,                       
 WHERE CADASTRO = :CADASTRO                    

Erro..:  Dynamic SQL Error
SQL error code = -104
Token unknown - line 18, column 2
WHERE
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmrel_cupom_fiscal_item_cancelado'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA  DROP TOMADOR_SERVICO_CTE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_pedido_compra_importacao_venda'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA  DROP UTILIZA_VALOR_DESCONTO_PV

Erro..:  unsuccessful metadata update
column UTILIZA_VALOR_DESCONTO_PV does not exist in table/view CAD_EMPRESA
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA ADD PORC_DIFERENCA_PRECO_CUSTO DOUBLE PRECISION

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA  DROP PORC_DIFERENCA_PRECO_CUSTO

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_emissao_promocao'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE GENERATOR MOV_PROMOCAO_001

Erro..:  unsuccessful metadata update
Generator MOV_PROMOCAO_001 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE GENERATOR MOV_PROMOCAO_002

Erro..:  unsuccessful metadata update
Generator MOV_PROMOCAO_002 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER TRIGGER MOV_PROMOCAO_01 FOR MOV_PROMOCAO
 ACTIVE BEFORE DELETE POSITION 0
 AS
 BEGIN
     DELETE FROM MOV_IT_PROMOCAO_PRINCIPAIS
     WHERE EMPRESA = OLD.EMPRESA
       AND NUMERO = OLD.NUMERO;

     DELETE FROM MOV_IT_PROMOCAO_SECUNDARIOS
     WHERE EMPRESA = OLD.EMPRESA
       AND NUMERO = OLD.NUMERO;
 END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_emissao_etiqueta_nota'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_importacao_produto_padrao'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_atualizacao_cadastro_produto_importado'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmrel_ordem_servico_horas_trabalhada'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT *                                            
  FROM CAD_NATUREZA_OPERACAO                        
 WHERE CADASTRO = '1.403.01'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT *                                            
  FROM CAD_NATUREZA_OPERACAO                        
 WHERE SUBSTRING(CADASTRO from 1 for 5 ) = '2.405'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER PROCEDURE PRO_HIST_NOTA_FISCAL_VENDA (                                                                          
     e_evento varchar(20),                                                                                                       
     e_empresa integer,                                                                                                          
     e_cliente integer,                                                                                                          
     e_produto integer)                                                                                                          
 returns (                                                                                                                       
     empresa integer,                                                                                                            
     serie integer,                                                                                                              
     numero integer,                                                                                                             
     emissao date,                                                                                                               
     cliente integer,                                                                                                            
     nome_cliente varchar(80),                                                                                                   
     natureza_operacao_01 varchar(8),                                                                                            
     quantidade double precision,                                                                                                
     valor double precision,                                                                                                     
     total double precision,                                                                                                     
     total_nota double precision,                                                                                                
     status varchar(20),                                                                                                         
     nome_contato varchar(25))                                                                                                   
 as                                                                                                                              
 declare variable vtotal_produto double precision;                                                                               
 declare variable vtotal_servico double precision;                                                                               
 BEGIN                                                                                                                           
     IF (:E_EVENTO = 'Cliente') THEN                                                                                           
     BEGIN                                                                                                                       
         FOR SELECT N.EMPRESA, N.SERIE, N.NUMERO, N.EMISSAO, N.NATUREZA_OPERACAO_01, N.TOTAL_NOTA, N.STATUS, N.NOME_CONTATO      
         FROM MOV_NOTA_FISCAL_VENDA N                                                                                            
         WHERE N.EMPRESA = :E_EMPRESA                                                                                            
           AND N.CLIENTE = :E_CLIENTE                                                                                            
         INTO :EMPRESA, :SERIE, :NUMERO, :EMISSAO, :NATUREZA_OPERACAO_01, :TOTAL_NOTA, :STATUS, :NOME_CONTATO                    
         DO BEGIN                                                                                                                
             SUSPEND;                                                                                                            
         END                                                                                                                     
     END                                                                                                                         
     ELSE BEGIN                                                                                                                  
         IF (:E_EVENTO = 'Produto') THEN                                                                                       
         BEGIN                                                                                                                   
             FOR SELECT N.EMPRESA, N.SERIE, N.NUMERO, N.EMISSAO, N.CLIENTE, CL.NOME NOME_CLIENTE, I.QUANTIDADE, I.VALOR, I.TOTAL 
             FROM MOV_NOTA_FISCAL_VENDA N                                                                                        
             LEFT OUTER JOIN MOV_IT_NOTA_VENDA_PRODUTO I ON (I.EMPRESA = N.EMPRESA                                               
                                                         AND I.SERIE = N.SERIE                                                   
                                                         AND I.NUMERO = N.NUMERO)                                                
             LEFT OUTER JOIN CAD_PESSOA CL ON(CL.CADASTRO = N.CLIENTE)                                                           
             WHERE N.EMPRESA = :E_EMPRESA                                                                                        
               AND ((N.STATUS = 'NFE Autorizada') OR (N.STATUS = 'Faturada'))                                                
               AND N.NOTA_FISCAL_ENTRADA = '1'                                                                                 
               AND N.NOTA_FISCAL_PRODUTOR = '1'                                                                                
               AND I.PRODUTO = :E_PRODUTO                                                                                        
             INTO :EMPRESA, :SERIE, :NUMERO, :EMISSAO, :CLIENTE, :NOME_CLIENTE, :QUANTIDADE, :VALOR, :TOTAL                      
             DO BEGIN                                                                                                            
                 SUSPEND;                                                                                                        
             END                                                                                                                 
                                                                                                                                 
             FOR SELECT N.EMPRESA, N.SERIE, N.NUMERO, N.EMISSAO, N.CLIENTE, CL.NOME NOME_CLIENTE, I.QUANTIDADE, I.VALOR, I.TOTAL 
             FROM MOV_NOTA_FISCAL_VENDA N                                                                                        
             LEFT OUTER JOIN MOV_IT_NOTA_VENDA_SERVICO I ON (I.EMPRESA = N.EMPRESA                                               
                                                         AND I.SERIE = N.SERIE                                                   
                                                         AND I.NUMERO = N.NUMERO)                                                
             LEFT OUTER JOIN CAD_PESSOA CL ON(CL.CADASTRO = N.CLIENTE)                                                           
             WHERE N.EMPRESA = :E_EMPRESA                                                                                        
               AND ((N.STATUS = 'NFE Autorizada') OR (N.STATUS = 'Faturada'))                                                
               AND I.SERVICO = :E_PRODUTO                                                                                        
             INTO :EMPRESA, :SERIE, :NUMERO, :EMISSAO, :CLIENTE, :NOME_CLIENTE, :QUANTIDADE, :VALOR, :TOTAL                      
             DO BEGIN                                                                                                            
                 SUSPEND;                                                                                                        
             END                                                                                                                 
         END                                                                                                                     
         ELSE BEGIN                                                                                                              
             IF (:E_EVENTO = 'Total Cliente') THEN                                                                             
             BEGIN                                                                                                               
                 SELECT SUM(N.TOTAL_NOTA) TOTAL_NOTA                                                                             
                 FROM MOV_NOTA_FISCAL_VENDA N                                                                                    
                 LEFT OUTER JOIN CAD_NATUREZA_OPERACAO NA ON (NA.EMPRESA = N.EMPRESA                                             
                                                          AND NA.CADASTRO = N.NATUREZA_OPERACAO_01)                              
                 WHERE N.EMPRESA = :E_EMPRESA                                                                                    
                   AND N.CLIENTE = :E_CLIENTE                                                                                    
                   AND ((N.STATUS = 'NFE Autorizada') OR (N.STATUS = 'Faturada'))                                            
                   AND N.NOTA_FISCAL_ENTRADA = '1'                                                                             
                   AND N.NOTA_FISCAL_PRODUTOR = '1'                                                                            
                   AND NA.GERA_FATURAMENTO_OPERACIONAL = '2'                                                                   
                   INTO :TOTAL_NOTA;                                                                                             
                                                                                                                                 
                 SUSPEND;                                                                                                        
             END                                                                                                                 
             ELSE BEGIN                                                                                                          
                 IF (:E_EVENTO = 'Total Produto') THEN                                                                         
                 BEGIN                                                                                                           
                     VTOTAL_PRODUTO = 0;                                                                                         
                     VTOTAL_SERVICO = 0;                                                                                         
                                                                                                                                 
                     SELECT SUM(I.TOTAL) TOTAL                                                                                   
                     FROM MOV_NOTA_FISCAL_VENDA N                                                                                
                     LEFT OUTER JOIN MOV_IT_NOTA_VENDA_PRODUTO I ON (I.EMPRESA = N.EMPRESA                                       
                                                                 AND I.SERIE = N.SERIE                                           
                                                                 AND I.NUMERO = N.NUMERO)                                        
                     LEFT OUTER JOIN CAD_NATUREZA_OPERACAO NA ON (NA.EMPRESA = N.EMPRESA                                         
                                                              AND NA.CADASTRO = N.NATUREZA_OPERACAO_01)                          
                     WHERE N.EMPRESA = :E_EMPRESA                                                                                
                       AND ((N.STATUS = 'NFE Autorizada') OR (N.STATUS = 'Faturada'))                                        
                       AND N.NOTA_FISCAL_ENTRADA = '1'                                                                         
                       AND N.NOTA_FISCAL_PRODUTOR = '1'                                                                        
                       AND NA.GERA_FATURAMENTO_OPERACIONAL = '2'                                                               
                       AND I.PRODUTO = :E_PRODUTO                                                                                
                       INTO :VTOTAL_PRODUTO;                                                                                     
                                                                                                                                 
                     SELECT SUM(I.TOTAL) TOTAL                                                                                   
                     FROM MOV_NOTA_FISCAL_VENDA N                                                                                
                     LEFT OUTER JOIN MOV_IT_NOTA_VENDA_SERVICO I ON (I.EMPRESA = N.EMPRESA                                       
                                                                 AND I.SERIE = N.SERIE                                           
                                                                 AND I.NUMERO = N.NUMERO)                                        
                     LEFT OUTER JOIN CAD_NATUREZA_OPERACAO NA ON (NA.EMPRESA = N.EMPRESA                                         
                                                              AND NA.CADASTRO = N.NATUREZA_OPERACAO_01)                          
                     WHERE N.EMPRESA = :E_EMPRESA                                                                                
                       AND ((N.STATUS = 'NFE Autorizada') OR (N.STATUS = 'Faturada'))                                        
                       AND N.NOTA_FISCAL_ENTRADA = '1'                                                                         
                       AND N.NOTA_FISCAL_PRODUTOR = '1'                                                                        
                       AND NA.GERA_FATURAMENTO_OPERACIONAL = '2'                                                               
                       AND I.SERVICO = :E_PRODUTO                                                                                
                       INTO :VTOTAL_SERVICO;                                                                                     
                                                                                                                                 
                     TOTAL = 0;                                                                                                  
                                                                                                                                 
                     IF ((VTOTAL_PRODUTO > 0) AND (VTOTAL_PRODUTO IS NOT NULL)) THEN                                             
                     BEGIN                                                                                                       
                         TOTAL = VTOTAL_PRODUTO;                                                                                 
                     END                                                                                                         
                                                                                                                                 
                     IF ((VTOTAL_SERVICO > 0) AND (VTOTAL_SERVICO IS NOT NULL)) THEN                                             
                     BEGIN                                                                                                       
                         TOTAL = TOTAL + VTOTAL_SERVICO;                                                                         
                     END                                                                                                         
                                                                                                                                 
                     SUSPEND;                                                                                                    
                 END                                                                                                             
             END                                                                                                                 
         END                                                                                                                     
     END                                                                                                                         
 END                                                                                                                             

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_nota_fiscal_venda_faturamento_pedidos_liberados'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_exportacao_dados_nfe'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmcad_cest'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmcad_cenq'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_contas_receber_baixa_parceiro'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmrel_pedido_venda_notas_fiscais'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_atualiza_preco_produtos'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmrel_contas_receber_recebido_cliente'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE RDB$RELATION_FIELDS SET RDB$NULL_FLAG = NULL  WHERE RDB$FIELD_NAME = 'SERIE_NOTA_FISCAL' AND RDB$RELATION_NAME = 'MOV_IT_NOTA_COMPRA_REFERENCIADA'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE RDB$RELATION_FIELDS SET RDB$NULL_FLAG = NULL  WHERE RDB$FIELD_NAME = 'NUMERO_NOTA_FISCAL' AND RDB$RELATION_NAME = 'MOV_IT_NOTA_COMPRA_REFERENCIADA'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE RDB$RELATION_FIELDS SET RDB$NULL_FLAG = NULL  WHERE RDB$FIELD_NAME = 'NUMERO_NOTA_FISCAL_COMPRA' AND RDB$RELATION_NAME = 'MOV_IT_NOTA_COMPRA_REFERENCIADA'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmcons_aniversariante'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_nota_fiscal_compra_importacao_varios_xml_cte'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER TRIGGER MOV_NOTA_FISCAL_VENDA_02 FOR MOV_NOTA_FISCAL_VENDA
 ACTIVE AFTER DELETE POSITION 0
 AS
 BEGIN
     IF (OLD.NOTA_FISCAL_ENTRADA = '2') THEN
     BEGIN
         /*-------------------------------------------------*/
         /***** Excluindo as Parcelas do Contas a Pagar *****/
         /*-------------------------------------------------*/
         IF (OLD.CONVENIO > 0) THEN
         BEGIN
             DELETE FROM MOV_CONTAS_PAGAR
             WHERE EMPRESA = OLD.EMPRESA
               AND DOCUMENTO = 'NE'
               AND FORNECEDOR = OLD.CONVENIO
               AND NUMERO = OLD.NUMERO
               AND SERIE = OLD.SERIE;
         END
         ELSE BEGIN
             DELETE FROM MOV_CONTAS_PAGAR
             WHERE EMPRESA = OLD.EMPRESA
               AND DOCUMENTO = 'NE'
               AND FORNECEDOR = OLD.CLIENTE
               AND NUMERO = OLD.NUMERO
               AND SERIE = OLD.SERIE;
         END
     END
     ELSE BEGIN
         /*---------------------------------------------------*/
         /***** Excluindo as Parcelas do Contas a Receber *****/
         /*---------------------------------------------------*/
         IF (OLD.CONVENIO > 0) THEN
         BEGIN
             DELETE FROM MOV_CONTAS_RECEBER
             WHERE EMPRESA = OLD.EMPRESA
               AND CAIXA = 'NF'
               AND DOCUMENTO = 'NF'
               AND CLIENTE = OLD.CONVENIO
               AND NUMERO = OLD.NUMERO
               AND SERIE = OLD.SERIE;
         END
         ELSE BEGIN
             DELETE FROM MOV_CONTAS_RECEBER
             WHERE EMPRESA = OLD.EMPRESA
               AND CAIXA = 'NF'
               AND DOCUMENTO = 'NF'
               AND CLIENTE = OLD.CLIENTE
               AND NUMERO = OLD.NUMERO
               AND SERIE = OLD.SERIE;
         END
     END
 END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_conferencia_frete_nfe_cte'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_IT_ORDEM_SERVICO_01 INACTIVE

Erro..:  unsuccessful metadata update
Trigger MOV_IT_ORDEM_SERVICO_01 not found

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_IT_ORDEM_SERVICO_02 INACTIVE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_IT_ORDEM_SERVICO_03 INACTIVE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER TRIGGER MOV_IT_ORDEM_SERVICO_02 FOR MOV_IT_ORDEM_SERVICO
 ACTIVE AFTER INSERT POSITION 0
 AS
 DECLARE VARIABLE VCONTROLA_ESTOQUE VARCHAR(1);
 DECLARE VARIABLE VEMPENHAR VARCHAR(1);
 BEGIN
     /*---------------------------------------------*/
     /****** Empenhando o Estoque dos Produtos ******/
     /*---------------------------------------------*/
     IF ((NEW.ITEM_CANCELADO = 'No') AND
         (OLD.ITEM_CANCELADO <> 'No')) THEN
     BEGIN
         IF ((NEW.PRODUTO IS NOT NULL) AND (NEW.PRODUTO > 0)) THEN
         BEGIN
             SELECT P.CONTROLA_ESTOQUE, E.EMPENHAR_ORDEM_SERVICO
             FROM CAD_PRODUTO P
             LEFT OUTER JOIN CAD_EMPRESA E ON (E.CADASTRO = NEW.EMPRESA)
             WHERE P.EMPRESA = NEW.EMPRESA
               AND P.CADASTRO = NEW.PRODUTO
             INTO :VCONTROLA_ESTOQUE, :VEMPENHAR;

             IF (VCONTROLA_ESTOQUE = '2') THEN
             BEGIN
                 IF (:VEMPENHAR = '2') THEN
                 BEGIN
                     UPDATE CAD_PRODUTO PR SET
                     PR.ESTOQUE_EMPENHADO = UDF_FORMAT_FLOAT(PR.ESTOQUE_EMPENHADO + NEW.QUANTIDADE, 3)
                     WHERE PR.EMPRESA = NEW.EMPRESA
                       AND PR.CADASTRO = NEW.PRODUTO;
                 END
             END
         END
     END

     /*-----------------------------------------------*/
     /****** Gravando os Itens na Tabela Espelho ******/
     /*-----------------------------------------------*/
     INSERT INTO MOV_IT_ORDEM_SERVICO_ESPELHO
     (EMPRESA, NUMERO, SEQ)
     VALUES
     (NEW.EMPRESA, NEW.NUMERO, NEW.SEQ);
 END

Erro..:  Column unknown
OLD.ITEM_CANCELADO
At line 11, column 15

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER TRIGGER MOV_IT_ORDEM_SERVICO_03 FOR MOV_IT_ORDEM_SERVICO
 ACTIVE AFTER UPDATE POSITION 0
 AS
 DECLARE VARIABLE VCONTROLA_ESTOQUE VARCHAR(1);
 DECLARE VARIABLE VEMPENHAR VARCHAR(1);
 BEGIN
     /*----------------------------------------------------*/
     /****** Tirando o Estoque Empenhado dos Produtos ******/
     /*----------------------------------------------------*/
     IF ((NEW.ITEM_CANCELADO = 'Sim') AND
         (OLD.ITEM_CANCELADO <> 'Sim')) THEN
     BEGIN
         IF ((NEW.PRODUTO IS NOT NULL) AND (NEW.PRODUTO > 0)) THEN
         BEGIN
             SELECT P.CONTROLA_ESTOQUE, E.EMPENHAR_ORDEM_SERVICO
             FROM CAD_PRODUTO P
             LEFT OUTER JOIN CAD_EMPRESA E ON (E.CADASTRO = NEW.EMPRESA)
             WHERE P.EMPRESA = NEW.EMPRESA
               AND P.CADASTRO = NEW.PRODUTO
             INTO :VCONTROLA_ESTOQUE, :VEMPENHAR;

             IF (VCONTROLA_ESTOQUE = '2') THEN
             BEGIN
                 IF (:VEMPENHAR = '2') THEN
                 BEGIN
                     UPDATE CAD_PRODUTO PR SET
                     PR.ESTOQUE_EMPENHADO = UDF_FORMAT_FLOAT(PR.ESTOQUE_EMPENHADO - OLD.QUANTIDADE, 3)
                     WHERE PR.EMPRESA = NEW.EMPRESA
                       AND PR.CADASTRO = NEW.PRODUTO;
                 END
             END
         END
     END
 END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_IT_ORDEM_SERVICO_01 ACTIVE

Erro..:  unsuccessful metadata update
Trigger MOV_IT_ORDEM_SERVICO_01 not found

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_IT_ORDEM_SERVICO_02 ACTIVE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_IT_ORDEM_SERVICO_03 ACTIVE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER PROCEDURE PRO_MOV_IT_CONTAS_RECEBER (
     E_EVENTO VARCHAR(30),
     E_EMPRESA INTEGER,
     E_CAIXA VARCHAR(3),
     E_DOCUMENTO VARCHAR(2),
     E_CLIENTE INTEGER,
     E_NUMERO INTEGER,
     E_SERIE INTEGER,
     E_PARCELA INTEGER,
     E_DATA_PAGAMENTO DATE)
 RETURNS (
     EMPRESA INTEGER,
     CAIXA VARCHAR(3),
     DOCUMENTO VARCHAR(2),
     CLIENTE INTEGER,
     NUMERO INTEGER,
     SERIE INTEGER,
     PARCELA INTEGER,
     SEQ INTEGER,
     DATA_PAGAMENTO DATE,
     VALOR_PAGO DOUBLE PRECISION,
     JUROS_PAGO DOUBLE PRECISION,
     DESCONTO_CONCEDIDO DOUBLE PRECISION,
     PERCENTUAL_DESCONTO_CONCEDIDO DOUBLE PRECISION,
     CONTA INTEGER,
     DESCRICAO_CONTA VARCHAR(50),
     FORMA_PAGAMENTO INTEGER,
     DESCRICAO_FORMA_PAGAMENTO VARCHAR(50),
     LAST_VALOR_PAGO DOUBLE PRECISION,
     LAST_JUROS_PAGO DOUBLE PRECISION,
     LAST_DESCONTO_CONCEDIDO DOUBLE PRECISION,
     CHEQUE_RECEBIDO INTEGER,
     BANCO INTEGER,
     NOME_BANCO VARCHAR(50),
     NUMERO_CHEQUE INTEGER,
     VENCIMENTO DATE,
     VALOR DOUBLE PRECISION,
     TITULAR VARCHAR(80),
     STATUS VARCHAR(25),
     COMPROVANTE_CAIXA VARCHAR(3),
     COMPROVANTE_ANO INTEGER,
     COMPROVANTE_NUMERO INTEGER,
     USUARIO_SISTEMA INTEGER,
     NOME_USUARIO VARCHAR(50),
     TARIFA_RECEBER DOUBLE PRECISION)
 AS
 BEGIN
     IF (E_EVENTO = 'Select') THEN
     BEGIN
         FOR SELECT I.EMPRESA, I.CAIXA, I.DOCUMENTO, I.CLIENTE, I.NUMERO, I.SERIE,
                    I.PARCELA, I.SEQ, I.DATA_PAGAMENTO, I.VALOR_PAGO, I.JUROS_PAGO,
                    I.DESCONTO_CONCEDIDO, I.CONTA, CO.DESCRICAO DESCRICAO_CONTA,
                    I.FORMA_PAGAMENTO, FP.DESCRICAO DESCRICAO_FORMA_PAGAMENTO,
                    I.CHEQUE_RECEBIDO, I.VALOR_PAGO LAST_VALOR_PAGO, I.JUROS_PAGO
                    LAST_JUROS_PAGO, I.DESCONTO_CONCEDIDO LAST_DESCONTO_CONCEDIDO,
                    I.PERCENTUAL_DESCONTO_CONCEDIDO, I.COMPROVANTE_CAIXA, I.COMPROVANTE_ANO,
                    I.COMPROVANTE_NUMERO, I.USUARIO_SISTEMA, US.NOME NOME_USUARIO,
                    I.TARIFA_RECEBER
         FROM MOV_IT_CONTAS_RECEBER I
         LEFT OUTER JOIN CAD_CONTA CO ON (CO.EMPRESA = I.EMPRESA
                                      AND CO.CADASTRO = I.CONTA)
         LEFT OUTER JOIN CAD_FORMA_PAGAMENTO FP ON (FP.EMPRESA = I.EMPRESA
                                                AND FP.CADASTRO = I.FORMA_PAGAMENTO)
         LEFT OUTER JOIN CAD_USUARIO_SISTEMA US ON (US.EMPRESA = I.EMPRESA
                                                AND US.CADASTRO = I.USUARIO_SISTEMA)
         WHERE I.EMPRESA = :E_EMPRESA
           AND I.CAIXA = :E_CAIXA
           AND I.DOCUMENTO = :E_DOCUMENTO
           AND I.CLIENTE = :E_CLIENTE
           AND I.NUMERO = :E_NUMERO
           AND I.SERIE = :E_SERIE
           AND I.PARCELA = :E_PARCELA
         ORDER BY I.SEQ
         INTO :EMPRESA, :CAIXA, :DOCUMENTO, :CLIENTE, :NUMERO, :SERIE, :PARCELA,
              :SEQ, :DATA_PAGAMENTO, :VALOR_PAGO, :JUROS_PAGO, :DESCONTO_CONCEDIDO,
              :CONTA, :DESCRICAO_CONTA, :FORMA_PAGAMENTO, :DESCRICAO_FORMA_PAGAMENTO,
              :CHEQUE_RECEBIDO, :LAST_VALOR_PAGO, :LAST_JUROS_PAGO,
              :LAST_DESCONTO_CONCEDIDO, :PERCENTUAL_DESCONTO_CONCEDIDO, :COMPROVANTE_CAIXA,
              :COMPROVANTE_ANO, :COMPROVANTE_NUMERO, :USUARIO_SISTEMA, :NOME_USUARIO,
              :TARIFA_RECEBER
         DO BEGIN
             SUSPEND;
         END
     END
     ELSE BEGIN
         IF (E_EVENTO = 'Cheque Recebido') THEN
         BEGIN
             FOR SELECT I.SEQ, I.CHEQUE_RECEBIDO, CH.BANCO, BA.NOME NOME_BANCO,
                        CH.NUMERO_CHEQUE, CH.VENCIMENTO, CH.VALOR, CH.TITULAR, CH.STATUS,
                        I.TARIFA_RECEBER
             FROM MOV_IT_CONTAS_RECEBER I
             LEFT OUTER JOIN MOV_CHEQUE_RECEBIDO CH ON (CH.EMPRESA = I.EMPRESA
                                                    AND CH.NUMERO = I.CHEQUE_RECEBIDO)
             LEFT OUTER JOIN CAD_BANCO BA ON(BA.CADASTRO = CH.BANCO)
             WHERE I.EMPRESA = :E_EMPRESA
               AND I.CAIXA = :E_CAIXA
               AND I.DOCUMENTO = :E_DOCUMENTO
               AND I.CLIENTE = :E_CLIENTE
               AND I.NUMERO = :E_NUMERO
               AND I.SERIE = :E_SERIE
               AND I.PARCELA = :E_PARCELA
               AND ((I.CHEQUE_RECEBIDO IS NOT NULL) AND (I.CHEQUE_RECEBIDO > 0))
             ORDER BY I.SEQ
             INTO :SEQ, :CHEQUE_RECEBIDO, :BANCO, :NOME_BANCO, :NUMERO_CHEQUE, :VENCIMENTO,
                  :VALOR, :TITULAR, :STATUS, :TARIFA_RECEBER
             DO BEGIN
                 SUSPEND;
             END
         END
         ELSE BEGIN
             IF (E_EVENTO = 'Pagamentos Vinculados Cheque') THEN
             BEGIN
                 FOR SELECT I.EMPRESA, I.CAIXA, I.DOCUMENTO, I.CLIENTE, I.NUMERO, I.SERIE,
                            I.PARCELA, I.SEQ, I.DATA_PAGAMENTO, I.VALOR_PAGO, I.JUROS_PAGO,
                            I.DESCONTO_CONCEDIDO, I.CONTA, CO.DESCRICAO DESCRICAO_CONTA,
                            I.FORMA_PAGAMENTO, FP.DESCRICAO DESCRICAO_FORMA_PAGAMENTO,
                            I.PERCENTUAL_DESCONTO_CONCEDIDO, I.TARIFA_RECEBER
                 FROM MOV_IT_CONTAS_RECEBER I
                 LEFT OUTER JOIN CAD_CONTA CO ON(CO.EMPRESA = I.EMPRESA
                                             AND CO.CADASTRO = I.CONTA)
                 LEFT OUTER JOIN CAD_FORMA_PAGAMENTO FP ON (FP.EMPRESA = I.EMPRESA
                                                        AND FP.CADASTRO = I.FORMA_PAGAMENTO)
                 WHERE I.EMPRESA = :E_EMPRESA
                   AND I.CHEQUE_RECEBIDO = :E_NUMERO
                 ORDER BY I.EMPRESA, I.CAIXA, I.DOCUMENTO, I.CLIENTE, I.NUMERO, I.SERIE,
                          I.PARCELA
                 INTO :EMPRESA, :CAIXA, :DOCUMENTO, :CLIENTE, :NUMERO, :SERIE, :PARCELA,
                      :SEQ, :DATA_PAGAMENTO, :VALOR_PAGO, :JUROS_PAGO, :DESCONTO_CONCEDIDO,
                      :CONTA, :DESCRICAO_CONTA, :FORMA_PAGAMENTO,
                      :DESCRICAO_FORMA_PAGAMENTO, :PERCENTUAL_DESCONTO_CONCEDIDO,
                      :TARIFA_RECEBER
                 DO BEGIN
                     SUSPEND;
                 END
             END
             ELSE BEGIN
                 IF (E_EVENTO = 'Troco') THEN
                 BEGIN
                     SELECT SUM(I.VALOR_PAGO) I_VALOR_PAGO
                     FROM MOV_IT_CONTAS_RECEBER I
                     WHERE I.EMPRESA = :E_EMPRESA
                       AND I.CLIENTE = :E_CLIENTE
                       AND I.DATA_PAGAMENTO = :E_DATA_PAGAMENTO
                     INTO :VALOR_PAGO;

                     SUSPEND;
                 END
             END
         END
     END
 END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_IT_CONTAS_RECEBER_02 INACTIVE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_IT_CONTAS_RECEBER_03 INACTIVE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_IT_CONTAS_RECEBER_04 INACTIVE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER MOV_IT_CONTAS_RECEBER_02 FOR MOV_IT_CONTAS_RECEBER ACTIVE
AFTER INSERT POSITION 0
AS
DECLARE VARIABLE VTIPO_BAIXA VARCHAR(10);
DECLARE VARIABLE VCONTROLA_FLUXO_CAIXA VARCHAR(1);
DECLARE VARIABLE VUTILIZA_FINANCEIRO_CONTABIL VARCHAR(1);
DECLARE VARIABLE VHISTORICO VARCHAR(100);
DECLARE VARIABLE VHISTORICO_TARIFA VARCHAR(100);
DECLARE VARIABLE VREFERENCIA VARCHAR(100);
DECLARE VARIABLE VVALOR_CREDITO REAL;
DECLARE VARIABLE VVALOR_DEBITO REAL;
DECLARE VARIABLE VDATA_LANCAMENTO DATE;
DECLARE VARIABLE VRETROATIVO VARCHAR(1);
BEGIN
    IF ((NEW.CHEQUE_RECEBIDO IS NULL) OR (NEW.CHEQUE_RECEBIDO = 0)) THEN
    BEGIN
        /*---------------------------------------------------------------------------------*/
        /****** verifica se est configurado para lanar no caixa com data retroativa ******/
        /*---------------------------------------------------------------------------------*/
        SELECT E.LANCAMENTO_RETROATIVO_IT_CONTA FROM CAD_EMPRESA E
        WHERE E.CADASTRO = NEW.EMPRESA
        INTO :VRETROATIVO;

        VDATA_LANCAMENTO = CASE :VRETROATIVO WHEN 2 THEN NEW.DATA_PAGAMENTO ELSE CURRENT_DATE END;

        /*------------------------------------------------------------*/
        /****** Verificando se a Empresa Controla Fluxo de Caixa ******/
        /*------------------------------------------------------------*/
        SELECT E.CONTROLA_FLUXO_CAIXA, E.UTILIZA_FINANCEIRO_CONTABIL FROM CAD_EMPRESA E
        WHERE E.CADASTRO = NEW.EMPRESA
        INTO :VCONTROLA_FLUXO_CAIXA, :VUTILIZA_FINANCEIRO_CONTABIL;

        IF (:VCONTROLA_FLUXO_CAIXA = '2') THEN
        BEGIN
            /*-------------------------------------------------------*/
            /****** Verificando se o Tipo de Baixa  Financeiro ******/
            /*-------------------------------------------------------*/
            SELECT F.TIPO_BAIXA FROM CAD_FORMA_PAGAMENTO F
            WHERE F.EMPRESA = NEW.EMPRESA AND F.CADASTRO = NEW.FORMA_PAGAMENTO
            INTO :VTIPO_BAIXA;

            IF (:VTIPO_BAIXA = 'Financeiro') THEN
            BEGIN
                SELECT R.REFERENCIA, CL.NOME
                FROM MOV_CONTAS_RECEBER R
                LEFT OUTER JOIN CAD_PESSOA CL ON(CL.CADASTRO = R.CLIENTE)
                WHERE R.EMPRESA = NEW.EMPRESA
                  AND R.CAIXA = NEW.CAIXA
                  AND R.DOCUMENTO = NEW.DOCUMENTO
                  AND R.CLIENTE = NEW.CLIENTE
                  AND R.NUMERO = NEW.NUMERO
                  AND R.SERIE = NEW.SERIE
                  AND R.PARCELA = NEW.PARCELA
                INTO :VHISTORICO, :VREFERENCIA;

                VHISTORICO = UDF_COPY('Recto ' || VHISTORICO, 1, 100);
                VVALOR_DEBITO  = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN UDF_FORMAT_FLOAT(NEW.VALOR_PAGO, 2) ELSE 0 END;
                VVALOR_CREDITO = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN 0 ELSE UDF_FORMAT_FLOAT(NEW.VALOR_PAGO, 2) END;

                INSERT INTO CAD_IT_CONTA (EMPRESA, CONTA, SEQ, CAIXA, DOCUMENTO, CLIENTE, NUMERO, SERIE, PARCELA, DATA, HISTORICO, REFERENCIA, DEBITO, CREDITO)
                VALUES (NEW.EMPRESA, NEW.CONTA, 1, NEW.CAIXA, NEW.DOCUMENTO, NEW.CLIENTE, NEW.NUMERO, NEW.SERIE, NEW.PARCELA, :VDATA_LANCAMENTO, :VHISTORICO, :VREFERENCIA, :VVALOR_DEBITO, :VVALOR_CREDITO);

                IF (NEW.TARIFA_RECEBER > 0) THEN
                BEGIN
                    VHISTORICO_TARIFA = UDF_COPY('Tarifa Bancaria Ref. ' || VHISTORICO, 1, 100);
                    VVALOR_DEBITO  = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN 0 ELSE UDF_FORMAT_FLOAT(NEW.TARIFA_RECEBER, 2) END;
                    VVALOR_CREDITO = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN UDF_FORMAT_FLOAT(NEW.TARIFA_RECEBER, 2) ELSE 0 END;

                    INSERT INTO CAD_IT_CONTA (EMPRESA, CONTA, SEQ, CAIXA, DOCUMENTO, CLIENTE, NUMERO, SERIE, PARCELA, DATA, HISTORICO, REFERENCIA, DEBITO, CREDITO)
                    VALUES (NEW.EMPRESA, NEW.CONTA, 1, NEW.CAIXA, NEW.DOCUMENTO, NEW.CLIENTE, NEW.NUMERO, NEW.SERIE, NEW.PARCELA, :VDATA_LANCAMENTO, :VHISTORICO_TARIFA, :VREFERENCIA, :VVALOR_DEBITO, :VVALOR_CREDITO);
                END
            END
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER MOV_IT_CONTAS_RECEBER_03 FOR MOV_IT_CONTAS_RECEBER ACTIVE
AFTER UPDATE POSITION 0
AS
DECLARE VARIABLE VNEW_TIPO_BAIXA VARCHAR(10);
DECLARE VARIABLE VOLD_TIPO_BAIXA VARCHAR(10);
DECLARE VARIABLE VHISTORICO VARCHAR(100);
DECLARE VARIABLE VHISTORICO_TARIFA VARCHAR(100);
DECLARE VARIABLE VREFERENCIA VARCHAR(100);
DECLARE VARIABLE VCONTROLA_FLUXO_CAIXA VARCHAR(1);
DECLARE VARIABLE VUTILIZA_FINANCEIRO_CONTABIL VARCHAR(1);
DECLARE VARIABLE VVALOR_CREDITO REAL;
DECLARE VARIABLE VVALOR_DEBITO REAL;
DECLARE VARIABLE VDATA_LANCAMENTO DATE;
DECLARE VARIABLE VRETROATIVO VARCHAR(1);
BEGIN
    IF ((NEW.CHEQUE_RECEBIDO IS NULL) OR (NEW.CHEQUE_RECEBIDO = 0)) THEN
    BEGIN
        /*---------------------------------------------------------------------------------*/
        /****** VERIFICA SE EST CONFIGURADO PARA LANAR NO CAIXA COM DATA RETROATIVA ******/
        /*---------------------------------------------------------------------------------*/
        SELECT E.LANCAMENTO_RETROATIVO_IT_CONTA FROM CAD_EMPRESA E
        WHERE E.CADASTRO = NEW.EMPRESA
        INTO :VRETROATIVO;

        VDATA_LANCAMENTO = CASE :VRETROATIVO WHEN 2 THEN NEW.DATA_PAGAMENTO ELSE CURRENT_DATE END;

        /*------------------------------------------------------------*/
        /****** Verificando se a Empresa Controla Fluxo de Caixa ******/
        /*------------------------------------------------------------*/
        SELECT E.CONTROLA_FLUXO_CAIXA, E.UTILIZA_FINANCEIRO_CONTABIL FROM CAD_EMPRESA E
        WHERE E.CADASTRO = NEW.EMPRESA
        INTO VCONTROLA_FLUXO_CAIXA, VUTILIZA_FINANCEIRO_CONTABIL;

        IF (VCONTROLA_FLUXO_CAIXA = '2') THEN
        BEGIN
            /*-------------------------------------------------------*/
            /****** Verificando se o Tipo de Baixa  Financeiro ******/
            /*-------------------------------------------------------*/
            SELECT F.TIPO_BAIXA FROM CAD_FORMA_PAGAMENTO F
            WHERE F.EMPRESA = OLD.EMPRESA AND F.CADASTRO = OLD.FORMA_PAGAMENTO
            INTO VOLD_TIPO_BAIXA;

            SELECT F.TIPO_BAIXA FROM CAD_FORMA_PAGAMENTO F
            WHERE F.EMPRESA = NEW.EMPRESA AND F.CADASTRO = NEW.FORMA_PAGAMENTO
            INTO VNEW_TIPO_BAIXA;

            IF ((NEW.CONTA <> OLD.CONTA) OR (NEW.VALOR_PAGO <> OLD.VALOR_PAGO) OR (VNEW_TIPO_BAIXA <> VOLD_TIPO_BAIXA)) THEN
            BEGIN
                IF (VOLD_TIPO_BAIXA = 'Financeiro') THEN
                BEGIN
                    /*---------------------------------------*/
                    /****** Estorna o Valor Pago Antigo ******/
                    /*---------------------------------------*/
                    SELECT R.REFERENCIA, CL.NOME FROM MOV_CONTAS_RECEBER R
                    LEFT OUTER JOIN CAD_PESSOA CL ON (CL.CADASTRO = R.CLIENTE)
                    WHERE R.EMPRESA = OLD.EMPRESA
                      AND R.CAIXA = OLD.CAIXA
                      AND R.DOCUMENTO = OLD.DOCUMENTO
                      AND R.CLIENTE = OLD.CLIENTE
                      AND R.NUMERO = OLD.NUMERO
                      AND R.SERIE = OLD.SERIE
                      AND R.PARCELA = OLD.PARCELA
                    INTO :VHISTORICO, :VREFERENCIA;

                    VHISTORICO = UDF_COPY('Estorno ' || VHISTORICO, 1, 100);
                    VVALOR_DEBITO  = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN 0 ELSE UDF_FORMAT_FLOAT(OLD.VALOR_PAGO, 2) END;
                    VVALOR_CREDITO = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN UDF_FORMAT_FLOAT(OLD.VALOR_PAGO, 2) ELSE 0 END;

                    INSERT INTO CAD_IT_CONTA (EMPRESA, CONTA, SEQ, CAIXA, DOCUMENTO, CLIENTE, NUMERO, SERIE, PARCELA, DATA, HISTORICO, REFERENCIA, DEBITO, CREDITO)
                    VALUES (OLD.EMPRESA, OLD.CONTA, 1, OLD.CAIXA, OLD.DOCUMENTO, OLD.CLIENTE, OLD.NUMERO, OLD.SERIE, OLD.PARCELA, :VDATA_LANCAMENTO, :VHISTORICO, :VREFERENCIA, :VVALOR_DEBITO, :VVALOR_CREDITO);

                    IF (OLD.TARIFA_RECEBER > 0) THEN
                    BEGIN
                        VHISTORICO_TARIFA = UDF_COPY('Tarifa Bancaria Ref. ' || VHISTORICO, 1, 100);
                        VVALOR_DEBITO  = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN UDF_FORMAT_FLOAT(OLD.TARIFA_RECEBER, 2) ELSE 0 END;
                        VVALOR_CREDITO = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN 0 ELSE UDF_FORMAT_FLOAT(OLD.TARIFA_RECEBER, 2) END;

                        INSERT INTO CAD_IT_CONTA(EMPRESA, CONTA, SEQ, CAIXA, DOCUMENTO, CLIENTE, NUMERO, SERIE, PARCELA, DATA, HISTORICO, REFERENCIA, DEBITO, CREDITO)
                        VALUES (OLD.EMPRESA, OLD.CONTA, 1, OLD.CAIXA, OLD.DOCUMENTO, OLD.CLIENTE, OLD.NUMERO, OLD.SERIE, OLD.PARCELA, :VDATA_LANCAMENTO, :VHISTORICO_TARIFA, :VREFERENCIA, :VVALOR_DEBITO, :VVALOR_CREDITO);
                    END
                END

                IF (VNEW_TIPO_BAIXA = 'Financeiro') THEN
                BEGIN
                    /*-------------------------------------*/
                    /****** Credita o Valor Pago Novo ******/
                    /*-------------------------------------*/
                    SELECT R.REFERENCIA, CL.NOME FROM MOV_CONTAS_RECEBER R
                    LEFT OUTER JOIN CAD_PESSOA cl ON (CL.CADASTRO = R.CLIENTE)
                    WHERE R.EMPRESA = NEW.EMPRESA
                      AND R.CAIXA = NEW.CAIXA
                      AND R.DOCUMENTO = NEW.DOCUMENTO
                      AND R.CLIENTE = NEW.CLIENTE
                      AND R.NUMERO = NEW.NUMERO
                      AND R.SERIE = NEW.SERIE
                      AND R.PARCELA = NEW.PARCELA
                    INTO :VHISTORICO, :VREFERENCIA;

                    VHISTORICO = UDF_COPY('Recto ' || VHISTORICO, 1, 100);
                    VVALOR_DEBITO  = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN UDF_FORMAT_FLOAT(NEW.VALOR_PAGO, 2) ELSE 0 END;
                    VVALOR_CREDITO = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN 0 ELSE UDF_FORMAT_FLOAT(NEW.VALOR_PAGO, 2) END;

                    INSERT INTO CAD_IT_CONTA (EMPRESA, CONTA, SEQ, CAIXA, DOCUMENTO, CLIENTE, NUMERO, SERIE, PARCELA, DATA, HISTORICO, REFERENCIA, DEBITO, CREDITO)
                    VALUES (NEW.EMPRESA, NEW.CONTA, 1, NEW.CAIXA, NEW.DOCUMENTO, NEW.CLIENTE, NEW.NUMERO, NEW.SERIE, NEW.PARCELA, :VDATA_LANCAMENTO, :VHISTORICO, :VREFERENCIA, :VVALOR_DEBITO, :VVALOR_CREDITO);

                    IF (NEW.TARIFA_RECEBER > 0) THEN
                    BEGIN
                        VHISTORICO_TARIFA = UDF_COPY('Tarifa Bancaria Ref. ' || VHISTORICO, 1, 100);
                        VVALOR_DEBITO  = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN 0 ELSE UDF_FORMAT_FLOAT(NEW.TARIFA_RECEBER, 2) END;
                        VVALOR_CREDITO = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN UDF_FORMAT_FLOAT(NEW.TARIFA_RECEBER, 2) ELSE 0 END;

                        INSERT INTO CAD_IT_CONTA (EMPRESA, CONTA, SEQ, CAIXA, DOCUMENTO, CLIENTE, NUMERO, SERIE, PARCELA, DATA, HISTORICO, REFERENCIA, DEBITO, CREDITO)
                        VALUES (NEW.EMPRESA, NEW.CONTA, 1, NEW.CAIXA, NEW.DOCUMENTO, NEW.CLIENTE, NEW.NUMERO, NEW.SERIE, NEW.PARCELA, :VDATA_LANCAMENTO, :VHISTORICO_TARIFA, :VREFERENCIA,  :VVALOR_DEBITO, :VVALOR_CREDITO);
                    END
                END
            END
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER MOV_IT_CONTAS_RECEBER_04 FOR MOV_IT_CONTAS_RECEBER ACTIVE
AFTER DELETE POSITION 0
AS
DECLARE VARIABLE VTIPO_BAIXA VARCHAR(10);
DECLARE VARIABLE VCONTROLA_FLUXO_CAIXA VARCHAR(1);
DECLARE VARIABLE VUTILIZA_FINANCEIRO_CONTABIL VARCHAR(1);
DECLARE VARIABLE VHISTORICO VARCHAR(100);
DECLARE VARIABLE VHISTORICO_TARIFA VARCHAR(100);
DECLARE VARIABLE VREFERENCIA VARCHAR(100);
DECLARE VARIABLE VCAIXA VARCHAR(3);
DECLARE VARIABLE VDOCUMENTO VARCHAR(2);
DECLARE VARIABLE VCLIENTE INTEGER;
DECLARE VARIABLE VNUMERO INTEGER;
DECLARE VARIABLE VSERIE INTEGER;
DECLARE VARIABLE VPARCELA INTEGER;
DECLARE VARIABLE VSEQ INTEGER;
DECLARE VARIABLE VVALOR_PAGO REAL;
DECLARE VARIABLE VJUROS_PAGO REAL;
DECLARE VARIABLE VDESCONTO_CONCEDIDO REAL;
DECLARE VARIABLE VVALOR_CREDITO REAL;
DECLARE VARIABLE VVALOR_DEBITO REAL;
BEGIN
    IF ((OLD.CHEQUE_RECEBIDO IS NULL) OR (OLD.CHEQUE_RECEBIDO = 0)) THEN
    BEGIN
        /*------------------------------------------------------------*/
        /****** Verificando se a Empresa Controla Fluxo de Caixa ******/
        /*------------------------------------------------------------*/
        SELECT E.CONTROLA_FLUXO_CAIXA, E.UTILIZA_FINANCEIRO_CONTABIL FROM CAD_EMPRESA E
        WHERE E.CADASTRO = OLD.EMPRESA
        INTO VCONTROLA_FLUXO_CAIXA, VUTILIZA_FINANCEIRO_CONTABIL;

        IF (VCONTROLA_FLUXO_CAIXA = '2') THEN
        BEGIN
            /*-------------------------------------------------------*/
            /****** Verificando se o Tipo de Baixa  Financeiro ******/
            /*-------------------------------------------------------*/
            SELECT F.TIPO_BAIXA FROM CAD_FORMA_PAGAMENTO F
            WHERE F.EMPRESA = OLD.EMPRESA AND F.CADASTRO = OLD.FORMA_PAGAMENTO
            INTO VTIPO_BAIXA;

            IF (VTIPO_BAIXA = 'Financeiro') THEN
            BEGIN
                SELECT R.REFERENCIA, CL.NOME FROM MOV_CONTAS_RECEBER R
                LEFT OUTER JOIN CAD_PESSOA CL ON (CL.CADASTRO = R.CLIENTE)
                WHERE R.EMPRESA = OLD.EMPRESA
                  AND R.CAIXA = OLD.CAIXA
                  AND R.DOCUMENTO = OLD.DOCUMENTO
                  AND R.CLIENTE = OLD.CLIENTE
                  AND R.NUMERO = OLD.NUMERO
                  AND R.SERIE = OLD.SERIE
                  AND R.PARCELA = OLD.PARCELA
                INTO :VHISTORICO, :VREFERENCIA;

                VHISTORICO = UDF_COPY('Estorno ' || VHISTORICO, 1, 100);
                VVALOR_DEBITO  = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN 0 ELSE UDF_FORMAT_FLOAT(OLD.VALOR_PAGO, 2) END;
                VVALOR_CREDITO = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN UDF_FORMAT_FLOAT(OLD.VALOR_PAGO, 2) ELSE 0 END;

                INSERT INTO CAD_IT_CONTA (EMPRESA, CONTA, SEQ, CAIXA, DOCUMENTO, CLIENTE, NUMERO, SERIE, PARCELA, DATA, HISTORICO, REFERENCIA, DEBITO, CREDITO)
                VALUES (OLD.EMPRESA, OLD.CONTA, 1, OLD.CAIXA, OLD.DOCUMENTO, OLD.CLIENTE, OLD.NUMERO, OLD.SERIE, OLD.PARCELA, CURRENT_DATE, :VHISTORICO, :VREFERENCIA, :VVALOR_DEBITO, :VVALOR_CREDITO);

                IF (OLD.TARIFA_RECEBER > 0) THEN
                BEGIN
                    VHISTORICO_TARIFA = UDF_COPY('Tarifa Bancaria Ref. ' || VHISTORICO, 1, 100);
                    VVALOR_DEBITO  = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN UDF_FORMAT_FLOAT(OLD.TARIFA_RECEBER, 2) ELSE 0 END;
                    VVALOR_CREDITO = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN 0 ELSE UDF_FORMAT_FLOAT(OLD.TARIFA_RECEBER, 2) END;

                    INSERT INTO CAD_IT_CONTA (EMPRESA, CONTA, SEQ, CAIXA, DOCUMENTO, CLIENTE, NUMERO, SERIE, PARCELA, DATA, HISTORICO, REFERENCIA, DEBITO, CREDITO)
                    VALUES (OLD.EMPRESA, OLD.CONTA, 1, OLD.CAIXA, OLD.DOCUMENTO, OLD.CLIENTE, OLD.NUMERO, OLD.SERIE, OLD.PARCELA, CURRENT_DATE, :VHISTORICO_TARIFA, :VREFERENCIA, :VVALOR_DEBITO, :VVALOR_CREDITO);
                END
            END
        END
    END
    ELSE BEGIN
        /*----------------------------------------------------------------*/
        /****** Reabrindo os Ttulos Vinculados ao Cheque do Cliente ******/
        /*----------------------------------------------------------------*/
        UPDATE MOV_CONTAS_RECEBER R SET
        R.SALDO = UDF_FORMAT_FLOAT(R.SALDO + ((OLD.VALOR_PAGO - OLD.JUROS_PAGO) + OLD.DESCONTO_CONCEDIDO), 2),
        R.SALDO_LIQUIDO = UDF_FORMAT_FLOAT(R.SALDO_LIQUIDO + ((OLD.VALOR_PAGO - OLD.JUROS_PAGO) + OLD.DESCONTO_CONCEDIDO), 2),
        R.ENTRADA = '1',
        R.A_VISTA = '1',
        R.ULTIMA_DATA_PAGAMENTO = (SELECT FIRST 1(I.DATA_PAGAMENTO) FROM MOV_IT_CONTAS_RECEBER I
                                   WHERE I.EMPRESA = OLD.EMPRESA
                                     AND I.CAIXA = OLD.CAIXA
                                     AND I.DOCUMENTO = OLD.DOCUMENTO
                                     AND I.CLIENTE = OLD.CLIENTE
                                     AND I.NUMERO = OLD.NUMERO
                                     AND I.SERIE = OLD.SERIE
                                     AND I.PARCELA = OLD.PARCELA
                                   ORDER BY I.DATA_PAGAMENTO DESC)
        WHERE R.EMPRESA = OLD.EMPRESA
          AND R.CAIXA = OLD.CAIXA
          AND R.DOCUMENTO = OLD.DOCUMENTO
          AND R.CLIENTE = OLD.CLIENTE
          AND R.NUMERO = OLD.NUMERO
          AND R.SERIE = OLD.SERIE
          AND R.PARCELA = OLD.PARCELA;
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_IT_CONTAS_RECEBER_02 ACTIVE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_IT_CONTAS_RECEBER_03 ACTIVE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_IT_CONTAS_RECEBER_04 ACTIVE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_gnre'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_CONJUNTO_PRODUTO ADD DESCRICAO_PRODUTO VARCHAR(80)

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER PROCEDURE PRO_MOV_NFE_DEVOLUCAO_VENDA (
     e_empresa integer,
     e_status varchar(20),
     e_finalidade_emissao_nfe varchar(15),
     e_devolucao_recebida varchar(1))
 returns (
     empresa integer,
     serie integer,
     numero integer,
     emissao date,
     cliente integer,
     nome_cliente varchar(80),
     fone_01_cliente varchar(15),
     email_cliente varchar(120),
     numero_lote_nfe integer,
     identificacao_arquivo_xml_nfe varchar(60),
     total_nota double precision,
     status varchar(20),
     nota_fiscal_entrada varchar(1),
     nome_transportadora varchar(80),
     volume double precision,
     devolucao_recebida varchar(1),
     finalidade_emissao_nfe varchar(15),
     data_recto_devolucao date,
     convenio integer,
     transportadora integer,
     retorno_produto_com_defeito varchar(1),
     retorno_produto_assistencia varchar(1))
 as
 BEGIN
     FOR SELECT N.EMPRESA, N.SERIE, N.NUMERO, N.EMISSAO, N.CLIENTE, N.NOME_CLIENTE,
                N.FONE_01_CLIENTE, CL.EMAIL, N.NUMERO_LOTE_NFE, N.IDENTIFICACAO_ARQUIVO_XML_NFE,
                N.TOTAL_NOTA, N.STATUS, N.NOTA_FISCAL_ENTRADA, N.NOME_TRANSPORTADORA,
                N.VOLUME, N.DEVOLUCAO_RECEBIDA, N.FINALIDADE_EMISSAO_NFE, N.DATA_RECTO_DEVOLUCAO,
                N.CONVENIO, N.TRANSPORTADORA, N.RETORNO_PRODUTO_COM_DEFEITO,
                N.RETORNO_PRODUTO_ASSISTENCIA
     FROM MOV_NOTA_FISCAL_VENDA N
     LEFT OUTER JOIN CAD_PESSOA CL ON(CL.CADASTRO = N.CLIENTE)
     WHERE N.EMPRESA = :E_EMPRESA
       AND N.STATUS = :E_STATUS
       AND N.DEVOLUCAO_RECEBIDA = :E_DEVOLUCAO_RECEBIDA
       AND N.FINALIDADE_EMISSAO_NFE = :E_FINALIDADE_EMISSAO_NFE
       AND N.NOTA_FISCAL_ENTRADA = '2'
     ORDER BY N.SERIE DESC, N.NUMERO DESC
     INTO :EMPRESA, :SERIE, :NUMERO, :EMISSAO, :CLIENTE, :NOME_CLIENTE,
          :FONE_01_CLIENTE, :EMAIL_CLIENTE, :NUMERO_LOTE_NFE, :IDENTIFICACAO_ARQUIVO_XML_NFE,
          :TOTAL_NOTA, :STATUS, :NOTA_FISCAL_ENTRADA, :NOME_TRANSPORTADORA, :VOLUME,
          :DEVOLUCAO_RECEBIDA, :FINALIDADE_EMISSAO_NFE, :DATA_RECTO_DEVOLUCAO, :CONVENIO,
          :TRANSPORTADORA, :RETORNO_PRODUTO_COM_DEFEITO, :RETORNO_PRODUTO_ASSISTENCIA
     DO BEGIN
         SUSPEND;
     END
 END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_conhecimento_transporte_conferencia'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE GENERATOR MOV_CONHECIMENTO_CONF_001

Erro..:  unsuccessful metadata update
Generator MOV_CONHECIMENTO_CONF_001 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE GENERATOR MOV_CONHECIMENTO_CONF_002

Erro..:  unsuccessful metadata update
Generator MOV_CONHECIMENTO_CONF_002 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER TRIGGER MOV_CONHECIMENTO_CONF_01  FOR MOV_CONHECIMENTO_CONF                         ACTIVE BEFORE DELETE POSITION 0                   AS                                                BEGIN                                                 DELETE FROM MOV_IT_CONHECIMENTO_CONF              WHERE EMPRESA = OLD.EMPRESA                         AND NUMERO = OLD.NUMERO;                    END                                              

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER TRIGGER MOV_CONHECIMENTO_CONF_01 FOR MOV_CONHECIMENTO_CONF
 ACTIVE BEFORE DELETE POSITION 0
 AS
 BEGIN
     DELETE FROM MOV_IT_CONHECIMENTO_CONF
     WHERE EMPRESA = OLD.EMPRESA
       AND NUMERO = OLD.NUMERO;

     DELETE FROM MOV_CONTAS_PAGAR
     WHERE EMPRESA = OLD.EMPRESA
       AND DOCUMENTO = 'CT'
       AND FORNECEDOR = OLD.TRANSPORTADORA
       AND NUMERO = OLD.NUMERO
       AND SERIE = 1;
 END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER PROCEDURE PRO_HIST_PEDIDO_VENDA (
    e_evento varchar(20),
    e_empresa integer,
    e_cliente integer,
    e_produto integer)
returns (
    empresa integer,
    numero integer,
    emissao date,
    cliente integer,
    nome_cliente varchar(80),
    nome_contato varchar(80),
    quantidade double precision,
    valor double precision,
    total double precision,
    total_pedido double precision,
    status varchar(25),
    prazo_entrega varchar(50),
    quantidade_faturada double precision,
    item_cancelado varchar(3),
    status_pedido varchar(25),
    nome_fornecedor varchar(80))
as
BEGIN
    IF (:E_EVENTO = 'Cliente') THEN
    BEGIN
        FOR SELECT P.EMPRESA, P.NUMERO, P.EMISSAO, P.NOME_CONTATO, P.TOTAL_PEDIDO, P.STATUS, P.PRAZO_ENTREGA,
                   F.NOME NOME_FORNECEDOR
        FROM MOV_PEDIDO_VENDA P
        LEFT OUTER JOIN CAD_PESSOA F ON(F.CADASTRO = P.FORNECEDOR)
        WHERE EMPRESA = :E_EMPRESA
          AND CLIENTE = :E_CLIENTE
        INTO :EMPRESA, :NUMERO, :EMISSAO, :NOME_CONTATO, :TOTAL_PEDIDO, :STATUS, :PRAZO_ENTREGA, :NOME_FORNECEDOR
        DO BEGIN
            SUSPEND;
        END
    END
    ELSE BEGIN
        IF (:E_EVENTO = 'Produto') THEN
        BEGIN
            FOR SELECT P.EMPRESA, P.NUMERO, P.EMISSAO, P.CLIENTE, CL.NOME NOME_CLIENTE, I.QUANTIDADE, I.VALOR, I.TOTAL,
                       I.QUANTIDADE_FATURADA, I.ITEM_CANCELADO, P.STATUS STATUS_PEDIDO
            FROM MOV_PEDIDO_VENDA P
            LEFT OUTER JOIN MOV_IT_PEDIDO_VENDA I ON(I.EMPRESA = P.EMPRESA
                                                 AND I.NUMERO = P.NUMERO)
            LEFT OUTER JOIN CAD_PESSOA CL ON(CL.CADASTRO = P.CLIENTE)
            WHERE P.EMPRESA = :E_EMPRESA
              AND I.PRODUTO = :E_PRODUTO
            INTO :EMPRESA, :NUMERO, :EMISSAO, :CLIENTE, :NOME_CLIENTE, :QUANTIDADE, :VALOR, :TOTAL,
            :QUANTIDADE_FATURADA, :ITEM_CANCELADO, :STATUS_PEDIDO
            DO BEGIN
                SUSPEND;
            END
        END
        ELSE BEGIN
            IF (:E_EVENTO = 'Total Cliente') THEN
            BEGIN
                SELECT SUM(TOTAL_PEDIDO) TOTAL_PEDIDO
                FROM MOV_PEDIDO_VENDA
                WHERE EMPRESA = :E_EMPRESA
                  AND CLIENTE = :E_CLIENTE
                  AND STATUS <> 'Cancelado'
                  INTO :TOTAL_PEDIDO;

                SUSPEND;
            END
            ELSE BEGIN
                IF (:E_EVENTO = 'Total Produto') THEN
                BEGIN
                    SELECT SUM(I.TOTAL) TOTAL
                    FROM MOV_PEDIDO_VENDA P
                    LEFT OUTER JOIN MOV_IT_PEDIDO_VENDA I ON(I.EMPRESA = P.EMPRESA
                                                         AND I.NUMERO = P.NUMERO)
                    WHERE P.EMPRESA = :E_EMPRESA
                      AND P.STATUS <> 'Cancelado'
                      AND I.PRODUTO = :E_PRODUTO
                      AND I.ITEM_CANCELADO = 'No'
                      INTO :TOTAL;

                    SUSPEND;
                END
            END
        END
    END
END

Erro..:  Column unknown
P.FORNECEDOR
At line 30, column 56

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmcons_impostos'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_CONJUNTO_PRODUTO  DROP DESCRICAO_PRODUTO

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER TRIGGER MOV_IT_PEDIDO_VENDA_02 FOR MOV_IT_PEDIDO_VENDA
 ACTIVE AFTER INSERT POSITION 0
 AS
 BEGIN
     INSERT INTO MOV_IT_PEDIDO_VENDA_ESPELHO
     (EMPRESA, NUMERO, SEQ)
     VALUES
     (NEW.EMPRESA, NEW.NUMERO, NEW.SEQ);
 END


C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_exportacao_dados_entre_empresas'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 INSERT INTO CAD_CONDICAO_PAGAMENTO                 
 (EMPRESA, CADASTRO, DESCRICAO, TIPO_TAXA_JUROS,    
  PERCENTUAL_JUROS, INATIVO, TIPO_FATURAMENTO,      
  PERIODO_FATURAMENTO, QUANTIDADE_DIAS_PRAZO_PAGTO) 
 VALUES                                             
 (1, 9,           
  'CARTAO DE CREDITO (CONVCARD)', 'Nenhuma', 0, 
  1, 'Normal', 0, 0)                              

Erro..:  violation of PRIMARY or UNIQUE KEY constraint "INTEG_963" on table "CAD_CONDICAO_PAGAMENTO"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA ADD AUMENTA_CASAS_CONS_PRODUTO VARCHAR(1) DEFAULT '0'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE CAD_EMPRESA SET AUMENTA_CASAS_CONS_PRODUTO = 1 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE TABLE CAD_IT_PRODUTO_GRADE                                            (EMPRESA  INTEGER NOT NULL,                                                   CADASTRO INTEGER NOT NULL,                                                   SEQ      INTEGER NOT NULL,                                                   GRADE    INTEGER,                                                            FOREIGN KEY(EMPRESA, CADASTRO) REFERENCES CAD_PRODUTO (EMPRESA, CADASTRO),   FOREIGN KEY(GRADE) REFERENCES CAD_GRADE_PRODUTO (CADASTRO),                 PRIMARY KEY(EMPRESA, CADASTRO, SEQ))                                        

Erro..:  unsuccessful metadata update
Table CAD_GRADE_PRODUTO not found
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_emissao_etiqueta_produto_informacao_nutricional'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmcad_familia'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmcons_faturamento_periodo'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmrel_curva_abc_venda_por_fornecedor'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA  DROP AUMENTA_CASAS_CONS_PRODUTO

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA  DROP AUMENTA_CASAS_CONS_PRODUTO

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_EMPRESA  DROP AUMENTA_CASAS_CONS_PRODUTO

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_contas_pagar_baixa_titulo'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_contas_pagar_baixa_titulo_com_dinheiro'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_contas_pagar_baixa_titulo_com_cheque_emitido'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_contas_pagar_baixa_titulo_com_cheque_recebido'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_contas_pagar_alteracao'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_contas_receber_baixa_titulo'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_contas_receber_baixa_titulo_com_dinheiro'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_contas_receber_baixa_titulo_com_cheque_recebido'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_contas_receber_alteracao'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmrel_nota_fiscal_venda_d_detalhado'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
  CREATE OR ALTER PROCEDURE PRO_MOV_CONTAS_PAGAR (                                                                                                 
      e_evento varchar(20),                                                                                                                        
      e_empresa integer,                                                                                                                           
      e_documento varchar(2),                                                                                                                      
      e_fornecedor integer,                                                                                                                        
      e_numero integer,                                                                                                                            
      e_serie varchar(10),                                                                                                                         
      e_parcela integer)                                                                                                                           
 returns (                                                                                                                                         
      empresa integer,                                                                                                                             
      documento varchar(2),                                                                                                                        
      fornecedor integer,                                                                                                                          
      nome_fornecedor varchar(80),                                                                                                                 
      endereco_fornecedor varchar(50),                                                                                                             
      cnpj_cpf_fornecedor varchar(18),                                                                                                             
      numero integer,                                                                                                                              
      serie varchar(10),                                                                                                                           
      parcela integer,                                                                                                                             
      emissao date,                                                                                                                                
      vencimento date,                                                                                                                             
      valor double precision,                                                                                                                      
      referencia varchar(80),                                                                                                                      
      observacao varchar(80),                                                                                                                      
      valor_pago double precision,                                                                                                                 
      juros_pago double precision,                                                                                                                 
      desconto_concedido double precision,                                                                                                         
      saldo double precision,                                                                                                                      
      saldo_liquido double precision,                                                                                                              
      plano_contas varchar(15),                                                                                                                    
      descricao_plano_contas varchar(50),                                                                                                          
      centro_custo integer,                                                                                                                        
      descricao_centro_custo varchar(50),                                                                                                          
      instrucao_cobranca integer,                                                                                                                  
      descricao_instrucao_cobranca varchar(50),                                                                                                    
      seleciona_registro varchar(1),                                                                                                               
      ultima_data_pagamento date,                                                                                                                  
      data_alteracao timestamp)                                                                                                                    
  as                                                                                                                                               
  declare variable vvalor float;                                                                                                                   
                                                                                                                                                   
  BEGIN                                                                                                                                            
  IF (:E_EVENTO = 'Pendente Fornecedor') THEN                                                                                                    
  BEGIN                                                                                                                                            
      FOR SELECT P.EMPRESA, P.DOCUMENTO, P.FORNECEDOR, P.NUMERO, P.SERIE, P.PARCELA, P.EMISSAO, P.VENCIMENTO,                                      
                 P.VALOR, P.REFERENCIA, P.OBSERVACAO, P.SALDO, P.SALDO_LIQUIDO, P.SELECIONA_REGISTRO,                                              
                 P.ULTIMA_DATA_PAGAMENTO, P.DATA_ALTERACAO, SUM(I.VALOR_PAGO) I_VALOR_PAGO, SUM(I.JUROS_PAGO) I_JUROS_PAGO,                        
                 SUM(I.DESCONTO_CONCEDIDO) I_DESCONTO_CONCEDIDO                                                                                    
            FROM MOV_CONTAS_PAGAR P                                                                                                                
            LEFT OUTER JOIN MOV_IT_CONTAS_PAGAR I ON (I.EMPRESA    = P.EMPRESA                                                                     
                                                  AND I.DOCUMENTO  = P.DOCUMENTO                                                                   
                                                  AND I.FORNECEDOR = P.FORNECEDOR                                                                  
                                                  AND I.NUMERO     = P.NUMERO                                                                      
                                                  AND I.SERIE      = P.SERIE                                                                       
                                                  AND I.PARCELA    = P.PARCELA)                                                                    
           WHERE P.EMPRESA    = :E_EMPRESA                                                                                                         
             AND P.FORNECEDOR = :E_FORNECEDOR                                                                                                      
             AND P.SALDO > 0                                                                                                                       
             AND P.NAO_GERA_FLUXO_FINANCEIRO <> '2'                                                                                              
           GROUP BY P.EMPRESA, P.DOCUMENTO, P.FORNECEDOR, P.NUMERO, P.SERIE, P.PARCELA, P.EMISSAO, P.VENCIMENTO,                                   
                    P.VALOR, P.REFERENCIA, P.OBSERVACAO, P.SALDO, P.SALDO_LIQUIDO, P.SELECIONA_REGISTRO,                                           
                    P.ULTIMA_DATA_PAGAMENTO, P.DATA_ALTERACAO                                                                                      
            INTO :EMPRESA, :DOCUMENTO, :FORNECEDOR, :NUMERO, :SERIE, :PARCELA, :EMISSAO, :VENCIMENTO,                                              
                 :VALOR, :REFERENCIA, :OBSERVACAO, :SALDO, :SALDO_LIQUIDO, :SELECIONA_REGISTRO,                                                    
                 :ULTIMA_DATA_PAGAMENTO, :DATA_ALTERACAO, :VALOR_PAGO, :JUROS_PAGO, :DESCONTO_CONCEDIDO                                            
              DO BEGIN                                                                                                                             
                  SUSPEND;                                                                                                                         
              END                                                                                                                                  
      FOR SELECT CH.EMPRESA, 'CH', CH.FORNECEDOR, CH.NUMERO, NULL, NULL, CH.EMISSAO, CH.VENCIMENTO,                                              
                 CH.VALOR, 'N CHEQUE ' || CH.NUMERO_CHEQUE, CH.OBSERVACAO, CH.VALOR, CH.VALOR, NULL,                                            
                 NULL, NULL, NULL, NULL                                                                                                            
            FROM MOV_CHEQUE_EMITIDO CH                                                                                                             
           WHERE CH.EMPRESA    = :E_EMPRESA                                                                                                        
             AND CH.FORNECEDOR = :E_FORNECEDOR                                                                                                     
             AND CH.STATUS     = 'Pendente'                                                                                                      
            INTO :EMPRESA, :DOCUMENTO, :FORNECEDOR, :NUMERO, :SERIE, :PARCELA, :EMISSAO, :VENCIMENTO,                                              
                 :VALOR, :REFERENCIA, :OBSERVACAO, :SALDO, :SALDO_LIQUIDO, :SELECIONA_REGISTRO,                                                    
                 :ULTIMA_DATA_PAGAMENTO, :VALOR_PAGO, :JUROS_PAGO, :DESCONTO_CONCEDIDO                                                             
              DO BEGIN                                                                                                                             
                  SUSPEND;                                                                                                                         
              END                                                                                                                                  
  END                                                                                                                                              
  ELSE BEGIN                                                                                                                                       
      IF (:E_EVENTO = 'Pago Fornecedor') THEN                                                                                                    
      BEGIN                                                                                                                                        
          FOR SELECT P.EMPRESA, P.DOCUMENTO, P.FORNECEDOR, P.NUMERO, P.SERIE, P.PARCELA, P.EMISSAO, P.VENCIMENTO,                                  
                     P.VALOR, P.REFERENCIA, P.OBSERVACAO, P.SALDO, P.SALDO_LIQUIDO, P.SELECIONA_REGISTRO,                                          
                     P.ULTIMA_DATA_PAGAMENTO, P.DATA_ALTERACAO, SUM(I.VALOR_PAGO) I_VALOR_PAGO, SUM(I.JUROS_PAGO) I_JUROS_PAGO,                    
                     SUM(I.DESCONTO_CONCEDIDO) I_DESCONTO_CONCEDIDO                                                                                
                FROM MOV_CONTAS_PAGAR P                                                                                                            
                LEFT OUTER JOIN MOV_IT_CONTAS_PAGAR I ON (I.EMPRESA    = P.EMPRESA                                                                 
                                                      AND I.DOCUMENTO  = P.DOCUMENTO                                                               
                                                      AND I.FORNECEDOR = P.FORNECEDOR                                                              
                                                      AND I.NUMERO     = P.NUMERO                                                                  
                                                      AND I.SERIE      = P.SERIE                                                                   
                                                      AND I.PARCELA    = P.PARCELA)                                                                
               WHERE P.EMPRESA    = :E_EMPRESA                                                                                                     
                 AND P.FORNECEDOR = :E_FORNECEDOR                                                                                                  
                 AND P.SALDO <= 0                                                                                                                  
                 AND P.NAO_GERA_FLUXO_FINANCEIRO <> '2'                                                                                          
               GROUP BY P.EMPRESA, P.DOCUMENTO, P.FORNECEDOR, P.NUMERO, P.SERIE, P.PARCELA, P.EMISSAO, P.VENCIMENTO,                               
                        P.VALOR, P.REFERENCIA, P.OBSERVACAO, P.SALDO, P.SALDO_LIQUIDO, P.SELECIONA_REGISTRO,                                       
                        P.ULTIMA_DATA_PAGAMENTO, P.DATA_ALTERACAO                                                                                  
                INTO :EMPRESA, :DOCUMENTO, :FORNECEDOR, :NUMERO, :SERIE, :PARCELA, :EMISSAO, :VENCIMENTO,                                          
                     :VALOR, :REFERENCIA, :OBSERVACAO, :SALDO, :SALDO_LIQUIDO, :SELECIONA_REGISTRO,                                                
                     :ULTIMA_DATA_PAGAMENTO, :DATA_ALTERACAO, :VALOR_PAGO, :JUROS_PAGO, :DESCONTO_CONCEDIDO                                        
                  DO BEGIN                                                                                                                         
                      SUSPEND;                                                                                                                     
                  END                                                                                                                              
          FOR SELECT CH.EMPRESA, 'CH', CH.FORNECEDOR, CH.NUMERO, NULL, NULL, CH.EMISSAO, CH.VENCIMENTO,                                          
                     CH.VALOR, 'N CHEQUE ' || CH.NUMERO_CHEQUE, CH.OBSERVACAO, 0, 0, NULL,                                                      
                     CH.DATA_BAIXA, CH.VALOR, NULL, NULL                                                                                           
                FROM MOV_CHEQUE_EMITIDO CH                                                                                                         
               WHERE CH.EMPRESA    = :E_EMPRESA                                                                                                    
                 AND CH.FORNECEDOR = :E_FORNECEDOR                                                                                                 
                 AND CH.STATUS     = 'Baixado'                                                                                                   
                INTO :EMPRESA, :DOCUMENTO, :FORNECEDOR, :NUMERO, :SERIE, :PARCELA, :EMISSAO, :VENCIMENTO,                                          
                     :VALOR, :REFERENCIA, :OBSERVACAO, :SALDO, :SALDO_LIQUIDO, :SELECIONA_REGISTRO,                                                
                     :ULTIMA_DATA_PAGAMENTO, :VALOR_PAGO, :JUROS_PAGO, :DESCONTO_CONCEDIDO                                                         
                  DO BEGIN                                                                                                                         
                      SUSPEND;                                                                                                                     
                  END                                                                                                                              
      END                                                                                                                                          
      ELSE BEGIN                                                                                                                                   
          IF (:E_EVENTO = 'Todos Fornecedor') THEN                                                                                               
          BEGIN                                                                                                                                    
              FOR SELECT P.EMPRESA, P.DOCUMENTO, P.FORNECEDOR, P.NUMERO, P.SERIE, P.PARCELA, P.EMISSAO, P.VENCIMENTO,                              
                         P.VALOR, P.REFERENCIA, P.OBSERVACAO, P.SALDO, P.SALDO_LIQUIDO, P.SELECIONA_REGISTRO,                                      
                         P.ULTIMA_DATA_PAGAMENTO, P.DATA_ALTERACAO, SUM(I.VALOR_PAGO) I_VALOR_PAGO, SUM(I.JUROS_PAGO) I_JUROS_PAGO,                
                         SUM(I.DESCONTO_CONCEDIDO) I_DESCONTO_CONCEDIDO                                                                            
                    FROM MOV_CONTAS_PAGAR P                                                                                                        
                    LEFT OUTER JOIN MOV_IT_CONTAS_PAGAR I ON (I.EMPRESA    = P.EMPRESA                                                             
                                                          AND I.DOCUMENTO  = P.DOCUMENTO                                                           
                                                          AND I.FORNECEDOR = P.FORNECEDOR                                                          
                                                          AND I.NUMERO     = P.NUMERO                                                              
                                                          AND I.SERIE      = P.SERIE                                                               
                                                          AND I.PARCELA    = P.PARCELA)                                                            
                   WHERE P.EMPRESA    = :E_EMPRESA                                                                                                 
                     AND P.FORNECEDOR = :E_FORNECEDOR                                                                                              
                     AND P.NAO_GERA_FLUXO_FINANCEIRO <> '2'                                                                                      
                   GROUP BY P.EMPRESA, P.DOCUMENTO, P.FORNECEDOR, P.NUMERO, P.SERIE, P.PARCELA, P.EMISSAO, P.VENCIMENTO,                           
                            P.VALOR, P.REFERENCIA, P.OBSERVACAO, P.SALDO, P.SALDO_LIQUIDO, P.SELECIONA_REGISTRO,                                   
                            P.ULTIMA_DATA_PAGAMENTO, P.DATA_ALTERACAO                                                                              
                    INTO :EMPRESA, :DOCUMENTO, :FORNECEDOR, :NUMERO, :SERIE, :PARCELA, :EMISSAO, :VENCIMENTO,                                      
                         :VALOR, :REFERENCIA, :OBSERVACAO, :SALDO, :SALDO_LIQUIDO, :SELECIONA_REGISTRO,                                            
                         :ULTIMA_DATA_PAGAMENTO, :DATA_ALTERACAO, :VALOR_PAGO, :JUROS_PAGO, :DESCONTO_CONCEDIDO                                    
                      DO BEGIN                                                                                                                     
                          SUSPEND;                                                                                                                 
                      END                                                                                                                          
              FOR SELECT CH.EMPRESA, 'CH', CH.FORNECEDOR, CH.NUMERO, NULL, NULL, CH.EMISSAO, CH.VENCIMENTO,                                      
                         CH.VALOR, 'N CHEQUE ' || CH.NUMERO_CHEQUE, CH.OBSERVACAO, CH.VALOR, CH.VALOR, NULL,                                    
                         NULL, NULL, NULL, NULL                                                                                                    
                    FROM MOV_CHEQUE_EMITIDO CH                                                                                                     
                   WHERE CH.EMPRESA    = :E_EMPRESA                                                                                                
                     AND CH.FORNECEDOR = :E_FORNECEDOR                                                                                             
                     AND CH.STATUS     = 'Pendente'                                                                                              
                    INTO :EMPRESA, :DOCUMENTO, :FORNECEDOR, :NUMERO, :SERIE, :PARCELA, :EMISSAO, :VENCIMENTO,                                      
                         :VALOR, :REFERENCIA, :OBSERVACAO, :SALDO, :SALDO_LIQUIDO, :SELECIONA_REGISTRO,                                            
                         :ULTIMA_DATA_PAGAMENTO, :VALOR_PAGO, :JUROS_PAGO, :DESCONTO_CONCEDIDO                                                     
                      DO BEGIN                                                                                                                     
                          SUSPEND;                                                                                                                 
                      END                                                                                                                          
              FOR SELECT CH.EMPRESA, 'CH', CH.FORNECEDOR, CH.NUMERO, NULL, NULL, CH.EMISSAO, CH.VENCIMENTO,                                      
                         CH.VALOR, 'N CHEQUE ' || CH.NUMERO_CHEQUE, CH.OBSERVACAO, 0, 0, NULL,                                                  
                         CH.DATA_BAIXA, CH.VALOR, NULL, NULL                                                                                       
                    FROM MOV_CHEQUE_EMITIDO CH                                                                                                     
                   WHERE CH.EMPRESA    = :E_EMPRESA                                                                                                
                     AND CH.FORNECEDOR = :E_FORNECEDOR                                                                                             
                     AND CH.STATUS     = 'Baixado'                                                                                               
                    INTO :EMPRESA, :DOCUMENTO, :FORNECEDOR, :NUMERO, :SERIE, :PARCELA, :EMISSAO, :VENCIMENTO,                                      
                         :VALOR, :REFERENCIA, :OBSERVACAO, :SALDO, :SALDO_LIQUIDO, :SELECIONA_REGISTRO,                                            
                         :ULTIMA_DATA_PAGAMENTO, :VALOR_PAGO, :JUROS_PAGO, :DESCONTO_CONCEDIDO                                                     
                      DO BEGIN                                                                                                                     
                          SUSPEND;                                                                                                                 
                      END                                                                                                                          
          END                                                                                                                                      
          ELSE BEGIN                                                                                                                               
              IF (:E_EVENTO = 'Pendente') THEN                                                                                                   
              BEGIN                                                                                                                                
                  FOR SELECT P.EMPRESA, P.DOCUMENTO, P.FORNECEDOR, FO.NOME NOME_FORNECEDOR, P.NUMERO, P.SERIE, P.PARCELA, P.EMISSAO, P.VENCIMENTO, 
                             P.VALOR, P.REFERENCIA, P.OBSERVACAO, P.SALDO, P.SALDO_LIQUIDO, P.SELECIONA_REGISTRO, P.ULTIMA_DATA_PAGAMENTO,         
                             P.DATA_ALTERACAO                                                                                                      
                        FROM MOV_CONTAS_PAGAR P                                                                                                    
                        LEFT OUTER JOIN CAD_PESSOA FO ON (FO.CADASTRO = P.FORNECEDOR)                                                              
                       WHERE P.EMPRESA = :E_EMPRESA                                                                                                
                         AND P.SALDO > 0                                                                                                           
                         AND P.NAO_GERA_FLUXO_FINANCEIRO <> '2'                                                                                  
                        INTO :EMPRESA, :DOCUMENTO, :FORNECEDOR, :NOME_FORNECEDOR, :NUMERO, :SERIE, :PARCELA, :EMISSAO, :VENCIMENTO, :VALOR,        
                             :REFERENCIA, :OBSERVACAO, :SALDO, :SALDO_LIQUIDO, :SELECIONA_REGISTRO, :ULTIMA_DATA_PAGAMENTO, :DATA_ALTERACAO        
                          DO BEGIN                                                                                                                 
                              SUSPEND;                                                                                                             
                          END                                                                                                                      
                  FOR SELECT CH.EMPRESA, 'CH', CH.FORNECEDOR, FO.NOME NOME_FORNECEDOR, CH.NUMERO, NULL, NULL, CH.EMISSAO, CH.VENCIMENTO,         
                             CH.VALOR, 'N CHEQUE ' || CH.NUMERO_CHEQUE, CH.OBSERVACAO, CH.VALOR, CH.VALOR, NULL, NULL                           
                        FROM MOV_CHEQUE_EMITIDO CH                                                                                                 
                        LEFT OUTER JOIN CAD_PESSOA FO ON (FO.CADASTRO = CH.FORNECEDOR)                                                             
                       WHERE CH.EMPRESA    = :E_EMPRESA                                                                                            
                         AND CH.STATUS     = 'Pendente'                                                                                          
                        INTO :EMPRESA, :DOCUMENTO, :FORNECEDOR, :NOME_FORNECEDOR, :NUMERO, :SERIE, :PARCELA, :EMISSAO, :VENCIMENTO, :VALOR,        
                             :REFERENCIA, :OBSERVACAO, :SALDO, :SALDO_LIQUIDO, :SELECIONA_REGISTRO, :ULTIMA_DATA_PAGAMENTO                         
                          DO BEGIN                                                                                                                 
                              SUSPEND;                                                                                                             
                          END                                                                                                                      
              END                                                                                                                                  
              ELSE BEGIN                                                                                                                           
                  IF (:E_EVENTO = 'Pago') THEN                                                                                                   
                  BEGIN                                                                                                                            
                      FOR SELECT P.EMPRESA, P.DOCUMENTO, P.FORNECEDOR, FO.NOME NOME_FORNECEDOR, P.NUMERO, P.SERIE, P.PARCELA, P.EMISSAO,           
                                 P.VENCIMENTO, P.VALOR, P.REFERENCIA, P.OBSERVACAO, P.SALDO, P.SALDO_LIQUIDO, P.SELECIONA_REGISTRO,                
                                 P.ULTIMA_DATA_PAGAMENTO, P.DATA_ALTERACAO                                                                         
                            FROM MOV_CONTAS_PAGAR P                                                                                                
                            LEFT OUTER JOIN CAD_PESSOA FO ON (FO.CADASTRO = P.FORNECEDOR)                                                          
                           WHERE P.EMPRESA = :E_EMPRESA                                                                                            
                             AND P.SALDO <= 0                                                                                                      
                             AND P.NAO_GERA_FLUXO_FINANCEIRO <> '2'                                                                              
                            INTO :EMPRESA, :DOCUMENTO, :FORNECEDOR, :NOME_FORNECEDOR, :NUMERO, :SERIE, :PARCELA, :EMISSAO, :VENCIMENTO, :VALOR,    
                                 :REFERENCIA, :OBSERVACAO, :SALDO, :SALDO_LIQUIDO, :SELECIONA_REGISTRO, :ULTIMA_DATA_PAGAMENTO, :DATA_ALTERACAO    
                              DO BEGIN                                                                                                             
                                  SUSPEND;                                                                                                         
                              END                                                                                                                  
                      FOR SELECT CH.EMPRESA, 'CH', CH.FORNECEDOR, FO.NOME NOME_FORNECEDOR, CH.NUMERO, NULL, NULL, CH.EMISSAO, CH.VENCIMENTO,     
                                  CH.VALOR, 'N CHEQUE ' || CH.NUMERO_CHEQUE, CH.OBSERVACAO, CH.VALOR, CH.VALOR, NULL, NULL                      
                            FROM MOV_CHEQUE_EMITIDO CH                                                                                             
                            LEFT OUTER JOIN CAD_PESSOA FO ON (FO.CADASTRO = CH.FORNECEDOR)                                                         
                           WHERE CH.EMPRESA    = :E_EMPRESA                                                                                        
                             AND CH.STATUS     = 'Baixado'                                                                                       
                            INTO :EMPRESA, :DOCUMENTO, :FORNECEDOR, :NOME_FORNECEDOR, :NUMERO, :SERIE, :PARCELA, :EMISSAO, :VENCIMENTO, :VALOR,    
                                 :REFERENCIA, :OBSERVACAO, :SALDO, :SALDO_LIQUIDO, :SELECIONA_REGISTRO, :ULTIMA_DATA_PAGAMENTO                     
                              DO BEGIN                                                                                                             
                                  SUSPEND;                                                                                                         
                              END                                                                                                                  
                  END                                                                                                                              
                  ELSE BEGIN                                                                                                                       
                      IF (:E_EVENTO = 'Todos') THEN                                                                                              
                      BEGIN                                                                                                                        
                          FOR SELECT P.EMPRESA, P.DOCUMENTO, P.FORNECEDOR, FO.NOME NOME_FORNECEDOR, P.NUMERO, P.SERIE, P.PARCELA, P.EMISSAO,       
                                     P.VENCIMENTO, P.VALOR, P.REFERENCIA, P.OBSERVACAO, P.SALDO, P.SALDO_LIQUIDO, P.SELECIONA_REGISTRO,            
                                     P.ULTIMA_DATA_PAGAMENTO, P.DATA_ALTERACAO                                                                     
                                FROM MOV_CONTAS_PAGAR P                                                                                            
                                LEFT OUTER JOIN CAD_PESSOA FO ON (FO.CADASTRO = P.FORNECEDOR)                                                      
                               WHERE P.EMPRESA    = :E_EMPRESA                                                                                     
                                 AND P.SALDO <= 0                                                                                                  
                                INTO :EMPRESA, :DOCUMENTO, :FORNECEDOR, :NOME_FORNECEDOR, :NUMERO, :SERIE, :PARCELA, :EMISSAO, :VENCIMENTO,        
                                     :VALOR, :REFERENCIA, :OBSERVACAO, :SALDO, :SALDO_LIQUIDO, :SELECIONA_REGISTRO, :ULTIMA_DATA_PAGAMENTO,        
                                     :DATA_ALTERACAO                                                                                               
                                  DO BEGIN                                                                                                         
                                      SUSPEND;                                                                                                     
                                  END                                                                                                              
                          FOR SELECT CH.EMPRESA, 'CH', CH.FORNECEDOR, FO.NOME NOME_FORNECEDOR, CH.NUMERO, NULL, NULL, CH.EMISSAO, CH.VENCIMENTO, 
                                     CH.VALOR, 'N CHEQUE ' || CH.NUMERO_CHEQUE, CH.OBSERVACAO, CH.VALOR, CH.VALOR, NULL, NULL                   
                                FROM MOV_CHEQUE_EMITIDO CH                                                                                         
                                LEFT OUTER JOIN CAD_PESSOA FO ON (FO.CADASTRO = CH.FORNECEDOR)                                                     
                               WHERE CH.EMPRESA    = :E_EMPRESA                                                                                    
                                 AND CH.STATUS     = 'Pendente'                                                                                  
                                INTO :EMPRESA, :DOCUMENTO, :FORNECEDOR, :NOME_FORNECEDOR, :NUMERO, :SERIE, :PARCELA, :EMISSAO, :VENCIMENTO,        
                                     :VALOR, :REFERENCIA, :OBSERVACAO, :SALDO, :SALDO_LIQUIDO, :SELECIONA_REGISTRO, :ULTIMA_DATA_PAGAMENTO         
                                  DO BEGIN                                                                                                         
                                      SUSPEND;                                                                                                     
                                  END                                                                                                              
                          FOR SELECT CH.EMPRESA, 'CH', CH.FORNECEDOR, FO.NOME NOME_FORNECEDOR, CH.NUMERO, NULL, NULL, CH.EMISSAO,                
                                     CH.VENCIMENTO, CH.VALOR, 'N CHEQUE ' || CH.NUMERO_CHEQUE, CH.OBSERVACAO, 0, 0, NULL, CH.DATA_BAIXA         
                                FROM MOV_CHEQUE_EMITIDO CH                                                                                         
                                LEFT OUTER JOIN CAD_PESSOA FO ON (FO.CADASTRO = CH.FORNECEDOR)                                                     
                               WHERE CH.EMPRESA    = :E_EMPRESA                                                                                    
                                 AND CH.STATUS     = 'Baixado'                                                                                   
                                INTO :EMPRESA, :DOCUMENTO, :FORNECEDOR, :NOME_FORNECEDOR, :NUMERO, :SERIE, :PARCELA, :EMISSAO, :VENCIMENTO,        
                                     :VALOR, :REFERENCIA, :OBSERVACAO, :SALDO, :SALDO_LIQUIDO, :SELECIONA_REGISTRO, :ULTIMA_DATA_PAGAMENTO         
                                  DO BEGIN                                                                                                         
                                      SUSPEND;                                                                                                     
                                  END                                                                                                              
                      END                                                                                                                          
                      ELSE BEGIN                                                                                                                   
                          IF (:E_EVENTO = 'Select') THEN                                                                                         
                          BEGIN                                                                                                                    
                               SELECT P.EMPRESA, P.DOCUMENTO, P.FORNECEDOR, FO.NOME NOME_FORNECEDOR, FO.ENDERECO ENDERECO_FORNECEDOR,              
                                      FO.CNPJ_CPF CNPJ_CPF_FORNECEDOR, P.NUMERO, P.SERIE, P.PARCELA, P.EMISSAO, P.VENCIMENTO,                      
                                      P.VALOR, P.REFERENCIA, P.OBSERVACAO, P.SALDO, P.SALDO_LIQUIDO, P.PLANO_CONTAS,                               
                                      PC.DESCRICAO DESCRICAO_PLANO_CONTAS, P.CENTRO_CUSTO, CC.DESCRICAO DESCRICAO_CENTRO_CUSTO,                    
                                      P.INSTRUCAO_COBRANCA, IC.DESCRICAO DESCRICAO_INSTRUCAO_COBRANCA, P.ULTIMA_DATA_PAGAMENTO, P.DATA_ALTERACAO   
                                 FROM MOV_CONTAS_PAGAR P                                                                                           
                                 LEFT OUTER JOIN CAD_PESSOA FO ON (FO.CADASTRO = P.FORNECEDOR)                                                     
                                 LEFT OUTER JOIN CAD_PLANO_CONTAS PC ON (PC.EMPRESA  = P.EMPRESA                                                   
                                                                     AND PC.CADASTRO = P.PLANO_CONTAS)                                             
                                 LEFT OUTER JOIN CAD_CENTRO_CUSTO CC ON (CC.EMPRESA  = P.EMPRESA                                                   
                                                                     AND CC.CADASTRO = P.CENTRO_CUSTO)                                             
                                 LEFT OUTER JOIN CAD_INSTRUCAO_COBRANCA IC ON (IC.EMPRESA  = P.EMPRESA                                             
                                                                           AND IC.CADASTRO = P.INSTRUCAO_COBRANCA)                                 
                                WHERE P.EMPRESA    = :E_EMPRESA                                                                                    
                                  AND P.DOCUMENTO  = :E_DOCUMENTO                                                                                  
                                  AND P.FORNECEDOR = :E_FORNECEDOR                                                                                 
                                  AND P.NUMERO     = :E_NUMERO                                                                                     
                                  AND P.SERIE      = :E_SERIE                                                                                      
                                  AND P.PARCELA    = :E_PARCELA                                                                                    
                                 INTO :EMPRESA, :DOCUMENTO, :FORNECEDOR, :NOME_FORNECEDOR, :ENDERECO_FORNECEDOR,                                   
                                      :CNPJ_CPF_FORNECEDOR, :NUMERO, :SERIE, :PARCELA, :EMISSAO, :VENCIMENTO,                                      
                                      :VALOR, :REFERENCIA, :OBSERVACAO, :SALDO, :SALDO_LIQUIDO, :PLANO_CONTAS,                                     
                                      :DESCRICAO_PLANO_CONTAS, :CENTRO_CUSTO, :DESCRICAO_CENTRO_CUSTO,                                             
                                      :INSTRUCAO_COBRANCA, :DESCRICAO_INSTRUCAO_COBRANCA, :ULTIMA_DATA_PAGAMENTO, :DATA_ALTERACAO;                 
                                                                                                                                                   
                                 SUSPEND;                                                                                                          
                          END                                                                                                                      
                          ELSE BEGIN                                                                                                               
                              IF (:E_EVENTO = 'Vencimentos') THEN                                                                                
                              BEGIN                                                                                                                
                                  FOR SELECT P.EMPRESA, P.DOCUMENTO, P.FORNECEDOR, P.NUMERO, P.SERIE, P.PARCELA, P.EMISSAO, P.VENCIMENTO,          
                                             P.VALOR, P.REFERENCIA, P.OBSERVACAO, P.SALDO, P.DATA_ALTERACAO, SUM(I.VALOR_PAGO) I_VALOR_PAGO,       
                                             SUM(I.JUROS_PAGO) I_JUROS_PAGO, SUM(I.DESCONTO_CONCEDIDO) I_DESCONTO_CONCEDIDO                        
                                        FROM MOV_CONTAS_PAGAR P                                                                                    
                                        LEFT OUTER JOIN MOV_IT_CONTAS_PAGAR I ON (I.EMPRESA    = P.EMPRESA                                         
                                                                              AND I.DOCUMENTO  = P.DOCUMENTO                                       
                                                                              AND I.FORNECEDOR = P.FORNECEDOR                                      
                                                                              AND I.NUMERO     = P.NUMERO                                          
                                                                              AND I.SERIE      = P.SERIE                                           
                                                                              AND I.PARCELA    = P.PARCELA)                                        
                                       WHERE P.EMPRESA    = :E_EMPRESA                                                                             
                                         AND P.DOCUMENTO  = :E_DOCUMENTO                                                                           
                                         AND P.FORNECEDOR = :E_FORNECEDOR                                                                          
                                         AND P.NUMERO     = :E_NUMERO                                                                              
                                         AND P.SERIE      = :E_SERIE                                                                               
                                       GROUP BY P.EMPRESA, P.DOCUMENTO, P.FORNECEDOR, P.NUMERO, P.SERIE, P.PARCELA, P.EMISSAO,                     
                                                P.VENCIMENTO, P.VALOR, P.REFERENCIA, P.OBSERVACAO, P.SALDO, P.DATA_ALTERACAO                       
                                        INTO :EMPRESA, :DOCUMENTO, :FORNECEDOR, :NUMERO, :SERIE, :PARCELA, :EMISSAO, :VENCIMENTO,                  
                                             :VALOR, :REFERENCIA, :OBSERVACAO, :SALDO, :DATA_ALTERACAO, :VALOR_PAGO, :JUROS_PAGO,                  
                                             :DESCONTO_CONCEDIDO                                                                                   
                                      DO BEGIN                                                                                                     
                                          SUSPEND;                                                                                                 
                                      END                                                                                                          
                              END                                                                                                                  
                              ELSE BEGIN                                                                                                           
                                  IF (:E_EVENTO = 'Total Saldo') THEN                                                                            
                                  BEGIN                                                                                                            
                                      SALDO  = 0;                                                                                                  
                                      VVALOR = 0;                                                                                                  
                                                                                                                                                   
                                      SELECT SUM(P.SALDO)                                                                                          
                                        FROM MOV_CONTAS_PAGAR P                                                                                    
                                       WHERE P.EMPRESA    = :E_EMPRESA                                                                             
                                         AND P.FORNECEDOR = :E_FORNECEDOR                                                                          
                                         AND P.SALDO > 0                                                                                           
                                         AND P.NAO_GERA_FLUXO_FINANCEIRO <> '2'                                                                  
                                        INTO :VVALOR;                                                                                              
                                                                                                                                                   
                                      IF (VVALOR > 0) THEN                                                                                         
                                      BEGIN                                                                                                        
                                          SALDO = VVALOR;                                                                                          
                                      END                                                                                                          
                                      VVALOR = 0;                                                                                                  
                                                                                                                                                   
                                      SELECT SUM(CH.VALOR)                                                                                         
                                        FROM MOV_CHEQUE_EMITIDO CH                                                                                 
                                       WHERE CH.EMPRESA    = :E_EMPRESA                                                                            
                                         AND CH.FORNECEDOR = :E_FORNECEDOR                                                                         
                                         AND CH.STATUS     = 'Pendente'                                                                          
                                        INTO :VVALOR;                                                                                              
                                                                                                                                                   
                                      IF (VVALOR > 0) THEN                                                                                         
                                      BEGIN                                                                                                        
                                          SALDO = SALDO + VVALOR;                                                                                  
                                      END                                                                                                          
                                      SUSPEND;                                                                                                     
                                  END                                                                                                              
                                  ELSE BEGIN                                                                                                       
                                      IF (:E_EVENTO = 'Total Titulo') THEN                                                                       
                                      BEGIN                                                                                                        
                                          SELECT SUM(P.VALOR)                                                                                      
                                            FROM MOV_CONTAS_PAGAR P                                                                                
                                           WHERE P.EMPRESA    = :E_EMPRESA                                                                         
                                             AND P.FORNECEDOR = :E_FORNECEDOR                                                                      
                                             AND P.NAO_GERA_FLUXO_FINANCEIRO <> '2'                                                              
                                            INTO :VALOR;                                                                                           
                                           SUSPEND;                                                                                                
                                      END                                                                                                          
                                      ELSE BEGIN                                                                                                   
                                          IF (:E_EVENTO = 'Total Pago') THEN                                                                     
                                          BEGIN                                                                                                    
                                              SELECT SUM(I.VALOR_PAGO) I_VALOR_PAGO, SUM(I.JUROS_PAGO) I_JUROS_PAGO,                               
                                                     SUM(I.DESCONTO_CONCEDIDO) I_DESCONTO_CONCEDIDO                                                
                                                FROM MOV_CONTAS_PAGAR P                                                                            
                                                LEFT OUTER JOIN MOV_IT_CONTAS_PAGAR I ON (I.EMPRESA    = P.EMPRESA                                 
                                                                                      AND I.DOCUMENTO  = P.DOCUMENTO                               
                                                                                      AND I.FORNECEDOR = P.FORNECEDOR                              
                                                                                      AND I.NUMERO     = P.NUMERO                                  
                                                                                      AND I.SERIE      = P.SERIE                                   
                                                                                      AND I.PARCELA    = P.PARCELA)                                
                                                LEFT OUTER JOIN MOV_CHEQUE_EMITIDO CH ON (CH.EMPRESA = I.EMPRESA                                   
                                                                                      AND CH.NUMERO  = I.CHEQUE_EMITIDO)                           
                                               WHERE P.EMPRESA    = :E_EMPRESA                                                                     
                                                 AND P.FORNECEDOR = :E_FORNECEDOR                                                                  
                                                 AND ((I.CHEQUE_EMITIDO IS NULL) OR (CH.STATUS = 'Baixado'))                                     
                                                INTO :VALOR_PAGO, :JUROS_PAGO, :DESCONTO_CONCEDIDO;                                                
                                              SUSPEND;                                                                                             
                                          END                                                                                                      
                                          ELSE BEGIN                                                                                               
                                              IF (:E_EVENTO = 'Total Atraso') THEN                                                               
                                              BEGIN                                                                                                
                                                  SALDO  = 0;                                                                                      
                                                  VVALOR = 0;                                                                                      
                                                                                                                                                   
                                                  SELECT SUM(P.SALDO)                                                                              
                                                    FROM MOV_CONTAS_PAGAR P                                                                        
                                                   WHERE P.EMPRESA    = :E_EMPRESA                                                                 
                                                     AND P.FORNECEDOR = :E_FORNECEDOR                                                              
                                                     AND P.SALDO > 0                                                                               
                                                     AND P.VENCIMENTO < CURRENT_DATE                                                               
                                                     AND P.NAO_GERA_FLUXO_FINANCEIRO <> '2'                                                      
                                                    INTO :VVALOR;                                                                                  
                                                                                                                                                   
                                                  IF (VVALOR > 0) THEN                                                                             
                                                  BEGIN                                                                                            
                                                      SALDO = VVALOR;                                                                              
                                                  END                                                                                              
                                                  VVALOR = 0;                                                                                      
                                                                                                                                                   
                                                  SELECT SUM(CH.VALOR)                                                                             
                                                    FROM MOV_CHEQUE_EMITIDO CH                                                                     
                                                   WHERE CH.EMPRESA    = :E_EMPRESA                                                                
                                                     AND CH.FORNECEDOR = :E_FORNECEDOR                                                             
                                                     AND CH.STATUS     = 'Pendente'                                                              
                                                     AND CH.VENCIMENTO < CURRENT_DATE                                                              
                                                    INTO :VVALOR;                                                                                  
                                                                                                                                                   
                                                  IF (VVALOR > 0) THEN                                                                             
                                                  BEGIN                                                                                            
                                                      SALDO = SALDO + VVALOR;                                                                      
                                                  END                                                                                              
                                                  SUSPEND;                                                                                         
                                              END                                                                                                  
                                          END                                                                                                      
                                      END                                                                                                          
                                  END                                                                                                              
                              END                                                                                                                  
                          END                                                                                                                      
                      END                                                                                                                          
                  END                                                                                                                              
              END                                                                                                                                  
          END                                                                                                                                      
      END                                                                                                                                          
  END                                                                                                                                              
  END                                                                                                                                              

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmrel_curva_abc_venda_por_cliente_pedido'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 INSERT INTO CAD_CIDADE                            (CADASTRO, NOME, ESTADO, PAIS, INATIVO)           VALUES                                            (4220000, 'BALNEARIO RINCAO', 'SC', 1058, 1) 

Erro..:  violation of PRIMARY or UNIQUE KEY constraint "INTEG_5" on table "CAD_CIDADE"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 INSERT INTO CAD_CIDADE                          (CADASTRO, NOME, ESTADO, PAIS, INATIVO)         VALUES                                          (4212650, 'PESCARIA BRAVA', 'SC', 1058, 1) 

Erro..:  violation of PRIMARY or UNIQUE KEY constraint "INTEG_5" on table "CAD_CIDADE"
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE GENERATOR CAD_MODELO_EDI

Erro..:  unsuccessful metadata update
Generator CAD_MODELO_EDI already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmcad_modelo_edi'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmrel_curva_abc_venda_por_produto_pedido'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER PROCEDURE PRO_HIST_PEDIDO_VENDA (
    e_evento varchar(20),
    e_empresa integer,
    e_cliente integer,
    e_produto integer)
returns (
    empresa integer,
    numero integer,
    emissao date,
    cliente integer,
    nome_cliente varchar(80),
    nome_contato varchar(80),
    quantidade double precision,
    valor double precision,
    total double precision,
    total_pedido double precision,
    status varchar(25),
    prazo_entrega varchar(50),
    quantidade_faturada double precision,
    item_cancelado varchar(3),
    status_pedido varchar(25),
    nome_fornecedor varchar(80))
as
BEGIN
    IF (:E_EVENTO = 'Cliente') THEN
    BEGIN
        FOR SELECT P.EMPRESA, P.NUMERO, P.EMISSAO, P.NOME_CONTATO, P.TOTAL_PEDIDO, P.STATUS, P.PRAZO_ENTREGA,
                   F.NOME NOME_FORNECEDOR
        FROM MOV_PEDIDO_VENDA P
        LEFT OUTER JOIN CAD_PESSOA F ON(F.CADASTRO = P.FORNECEDOR)
        WHERE EMPRESA = :E_EMPRESA
          AND CLIENTE = :E_CLIENTE
        INTO :EMPRESA, :NUMERO, :EMISSAO, :NOME_CONTATO, :TOTAL_PEDIDO, :STATUS, :PRAZO_ENTREGA, :NOME_FORNECEDOR
        DO BEGIN
            SUSPEND;
        END
    END
    ELSE BEGIN
        IF (:E_EVENTO = 'Produto') THEN
        BEGIN
            FOR SELECT P.EMPRESA, P.NUMERO, P.EMISSAO, P.CLIENTE, CL.NOME NOME_CLIENTE, I.QUANTIDADE, I.VALOR, I.TOTAL,
                       I.QUANTIDADE_FATURADA, I.ITEM_CANCELADO, P.STATUS STATUS_PEDIDO
            FROM MOV_PEDIDO_VENDA P
            LEFT OUTER JOIN MOV_IT_PEDIDO_VENDA I ON(I.EMPRESA = P.EMPRESA
                                                 AND I.NUMERO = P.NUMERO)
            LEFT OUTER JOIN CAD_PESSOA CL ON(CL.CADASTRO = P.CLIENTE)
            WHERE P.EMPRESA = :E_EMPRESA
              AND I.PRODUTO = :E_PRODUTO
            INTO :EMPRESA, :NUMERO, :EMISSAO, :CLIENTE, :NOME_CLIENTE, :QUANTIDADE, :VALOR, :TOTAL,
            :QUANTIDADE_FATURADA, :ITEM_CANCELADO, :STATUS_PEDIDO
            DO BEGIN
                SUSPEND;
            END
        END
        ELSE BEGIN
            IF (:E_EVENTO = 'Total Cliente') THEN
            BEGIN
                SELECT SUM(TOTAL_PEDIDO) TOTAL_PEDIDO
                FROM MOV_PEDIDO_VENDA
                WHERE EMPRESA = :E_EMPRESA
                  AND CLIENTE = :E_CLIENTE
                  AND STATUS <> 'Cancelado'
                  INTO :TOTAL_PEDIDO;

                SUSPEND;
            END
            ELSE BEGIN
                IF (:E_EVENTO = 'Total Produto') THEN
                BEGIN
                    SELECT SUM(I.TOTAL) TOTAL
                    FROM MOV_PEDIDO_VENDA P
                    LEFT OUTER JOIN MOV_IT_PEDIDO_VENDA I ON(I.EMPRESA = P.EMPRESA
                                                         AND I.NUMERO = P.NUMERO)
                    WHERE P.EMPRESA = :E_EMPRESA
                      AND P.STATUS <> 'Cancelado'
                      AND I.PRODUTO = :E_PRODUTO
                      AND I.ITEM_CANCELADO = 'No'
                      INTO :TOTAL;

                    SUSPEND;
                END
            END
        END
    END
END

Erro..:  Column unknown
P.FORNECEDOR
At line 30, column 56

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_IT_PEDIDO_VENDA_HISTORICO ADD HORA VARCHAR(5)

Erro..:  Dynamic SQL Error
SQL error code = -204
Table unknown
MOV_IT_PEDIDO_VENDA_HISTORICO
At line 1, column 14
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_IT_ASSISTENCIA_HISTORICO ADD HORA VARCHAR(5)

Erro..:  Dynamic SQL Error
SQL error code = -204
Table unknown
MOV_IT_ASSISTENCIA_HISTORICO
At line 1, column 14
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 DROP PROCEDURE PRO_HIST_ORDEM_SERVICO

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE PROCEDURE PRO_HIST_ORDEM_SERVICO (                                                                                          
     E_EVENTO VARCHAR(30),                                                                                                          
     E_EMPRESA INTEGER,                                                                                                             
     E_CLIENTE INTEGER,                                                                                                             
     E_PRODUTO INTEGER)                                                                                                             
 RETURNS (                                                                                                                          
     EMPRESA INTEGER,                                                                                                               
     NUMERO INTEGER,                                                                                                                
     EMISSAO DATE,                                                                                                                  
     DESCRICAO VARCHAR(100),                                                                                                        
     CLIENTE INTEGER,                                                                                                               
     NOME_CLIENTE VARCHAR(80),                                                                                                      
     DESCRICAO_EQUIPAMENTO VARCHAR(80),                                                                                             
     STATUS VARCHAR(15),                                                                                                            
     QUANTIDADE DOUBLE PRECISION,                                                                                                   
     VALOR DOUBLE PRECISION,                                                                                                        
     TOTAL DOUBLE PRECISION,                                                                                                        
     TOTAL_ORDEM_SERVICO DOUBLE PRECISION)                                                                                          
 AS                                                                                                                                 
 BEGIN                                                                                                                              
     IF (:E_EVENTO = 'Cliente') THEN                                                                                              
     BEGIN                                                                                                                          
         FOR SELECT O.EMPRESA, O.NUMERO, O.EMISSAO, O.DESCRICAO, E.DESCRICAO DESCRICAO_EQUIPAMENTO, O.STATUS, O.TOTAL_ORDEM_SERVICO 
         FROM MOV_ORDEM_SERVICO O                                                                                                   
         LEFT OUTER JOIN CAD_EQUIPAMENTO E ON(E.EMPRESA = O.EMPRESA                                                                 
                                          AND E.CADASTRO = O.EQUIPAMENTO)                                                           
         WHERE O.EMPRESA = :E_EMPRESA                                                                                               
           AND O.CLIENTE = :E_CLIENTE                                                                                               
         INTO :EMPRESA, :NUMERO, :EMISSAO, :DESCRICAO, :DESCRICAO_EQUIPAMENTO, :STATUS, :TOTAL_ORDEM_SERVICO                        
         DO BEGIN                                                                                                                   
             SUSPEND;                                                                                                               
         END                                                                                                                        
     END                                                                                                                            
     ELSE BEGIN                                                                                                                     
         IF (:E_EVENTO = 'Produto') THEN                                                                                          
         BEGIN                                                                                                                      
             FOR SELECT O.EMPRESA, O.NUMERO, O.EMISSAO, O.DESCRICAO, O.CLIENTE, CL.NOME NOME_CLIENTE, I.QUANTIDADE,                 
                        I.VALOR, I.TOTAL                                                                                            
             FROM MOV_ORDEM_SERVICO O                                                                                               
             LEFT OUTER JOIN MOV_IT_ORDEM_SERVICO I ON(I.EMPRESA = O.EMPRESA                                                        
                                                   AND I.NUMERO = O.NUMERO)                                                         
             LEFT OUTER JOIN CAD_PESSOA CL ON(CL.CADASTRO = O.CLIENTE)                                                              
             WHERE O.EMPRESA = :E_EMPRESA                                                                                           
               AND I.PRODUTO = :E_PRODUTO                                                                                           
             INTO :EMPRESA, :NUMERO, :EMISSAO, :DESCRICAO, :CLIENTE, :NOME_CLIENTE, :QUANTIDADE, :VALOR, :TOTAL                     
             DO BEGIN                                                                                                               
                 SUSPEND;                                                                                                           
             END                                                                                                                    
         END                                                                                                                        
         ELSE BEGIN                                                                                                                 
             IF (:E_EVENTO = 'Total Cliente') THEN                                                                                
             BEGIN                                                                                                                  
                 SELECT SUM(TOTAL_ORDEM_SERVICO) TOTAL_ORDEM_SERVICO                                                                
                 FROM MOV_ORDEM_SERVICO                                                                                             
                 WHERE EMPRESA = :E_EMPRESA                                                                                         
                   AND CLIENTE = :E_CLIENTE                                                                                         
                   INTO :TOTAL_ORDEM_SERVICO;                                                                                       
                                                                                                                                    
                 SUSPEND;                                                                                                           
             END                                                                                                                    
             ELSE BEGIN                                                                                                             
                 IF (:E_EVENTO = 'Total Produto') THEN                                                                            
                 BEGIN                                                                                                              
                     SELECT SUM(I.TOTAL) TOTAL                                                                                      
                     FROM MOV_ORDEM_SERVICO O                                                                                       
                     LEFT OUTER JOIN MOV_IT_ORDEM_SERVICO I ON(I.EMPRESA = O.EMPRESA                                                
                                                           AND I.NUMERO = O.NUMERO)                                                 
                     WHERE O.EMPRESA = :E_EMPRESA                                                                                   
                       AND I.PRODUTO = :E_PRODUTO                                                                                   
                       INTO :TOTAL;                                                                                                 
                                                                                                                                    
                     SUSPEND;                                                                                                       
                 END                                                                                                                
             END                                                                                                                    
         END                                                                                                                        
     END                                                                                                                            
 END                                                                                                                                

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmrel_nota_fiscal_compra_remessa_industrializacao'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE MOV_PEDIDO_COMPRA I SET  STATUS = 'Finalizado'         WHERE STATUS = 'Efetuado'    

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_configuracao_cfop_entrada'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE GENERATOR MOV_CONFIG_CFOP_ENTRADA_001

Erro..:  unsuccessful metadata update
Generator MOV_CONFIG_CFOP_ENTRADA_001 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_IT_RELAC_PRODUTO_ETIQUETA ADD TIPO_ETIQUETA VARCHAR(50)

Erro..:  Dynamic SQL Error
SQL error code = -204
Table unknown
MOV_IT_RELAC_PRODUTO_ETIQUETA
At line 1, column 14
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE INDEX IDXPEDIDO_MOV_IT_RELAC_ETIQ ON MOV_IT_RELAC_PRODUTO_ETIQUETA(EMPRESA,TIPO_DOCUMENTO,NUMERO_DOCUMENTO,SEQ_PRODUTO_DOCUMENTO)

Erro..:  unsuccessful metadata update
Unknown columns in index IDXPEDIDO_MOV_IT_RELAC_ETIQ
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE INDEX IDXNOTA_MOV_IT_RELAC_ETIQ ON MOV_IT_RELAC_PRODUTO_ETIQUETA(EMPRESA,TIPO_DOCUMENTO,SERIE_DOCUMENTO,NUMERO_DOCUMENTO,SEQ_PRODUTO_DOCUMENTO)

Erro..:  unsuccessful metadata update
Unknown columns in index IDXNOTA_MOV_IT_RELAC_ETIQ
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE INDEX IDXORDEM_COMPRA_MOV_PEDIDO_VENDA ON MOV_PEDIDO_VENDA(EMPRESA,NUMERO_ORDEM_COMPRA)

Erro..:  unsuccessful metadata update
Name longer than database column size
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE GENERATOR MOV_TRANSF_ENTRE_CONTAS_001

Erro..:  unsuccessful metadata update
Generator MOV_TRANSF_ENTRE_CONTAS_001 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE RDB$RELATION_FIELDS SET               RDB$NULL_FLAG = NULL                         WHERE (RDB$FIELD_NAME = 'HASH_MD5')          AND (RDB$RELATION_NAME = 'CAD_PRODUTO') 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER TRIGGER CAD_PRODUTO_01 FOR CAD_PRODUTO
 ACTIVE BEFORE INSERT OR UPDATE POSITION 0
 AS
 DECLARE VARIABLE VHASH_MD5_CALCULADO VARCHAR(100);
  BEGIN
      /*----------------------------------------*/
      /***** Definindo a Mascara dos Campos *****/
      /*----------------------------------------*/
      NEW.PRECO_CUSTO = UDF_FORMAT_FLOAT(NEW.PRECO_CUSTO, 3);
      NEW.CUSTO_MEDIO = UDF_FORMAT_FLOAT(NEW.CUSTO_MEDIO, 3);
      NEW.ESTOQUE = UDF_FORMAT_FLOAT(NEW.ESTOQUE, 3);
  END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER TRIGGER MOV_IT_NOTA_FISCAL_COMPRA_02 FOR MOV_IT_NOTA_FISCAL_COMPRA
 ACTIVE AFTER INSERT POSITION 0
 AS
 DECLARE VARIABLE VESTOQUE REAL;
 DECLARE VARIABLE VPRECO_CUSTO REAL;
 DECLARE VARIABLE VCUSTO_MEDIO REAL;
 DECLARE VARIABLE VCONTROLA_ESTOQUE VARCHAR(1);
 DECLARE VARIABLE VTIPO_CODIGO_BARRAS VARCHAR(10);
 DECLARE VARIABLE VTIPO_CONTROLE_ESTOQUE VARCHAR(10);
 DECLARE VARIABLE VENTRADA_ESTOQUE_COMPOSICAO VARCHAR(1);
 DECLARE VARIABLE VPRODUTO_COMPOSICAO INTEGER;
 DECLARE VARIABLE VPERCENTUAL_COMPOSICAO REAL;
 DECLARE VARIABLE VATT_PRECO_CUSTO_PROD_IMP_XML VARCHAR(1);
 DECLARE VARIABLE VPRECO_VENDA REAL;
 DECLARE VARIABLE VPERCENTUAL_LUCRO REAL;
 BEGIN
     IF (NEW.STATUS = 'Lanada') THEN
     BEGIN
         IF ((NEW.PRODUTO IS NOT NULL) AND (NEW.PRODUTO > 0)) THEN
         BEGIN
             SELECT P.ESTOQUE, P.CUSTO_MEDIO, P.CONTROLA_ESTOQUE, P.ENTRADA_ESTOQUE_COMPOSICAO,
                    P.PRECO_VENDA
             FROM CAD_PRODUTO P
             WHERE P.EMPRESA = NEW.EMPRESA
               AND P.CADASTRO = NEW.PRODUTO
             INTO :VESTOQUE, :VCUSTO_MEDIO, :VCONTROLA_ESTOQUE, :VENTRADA_ESTOQUE_COMPOSICAO, :VPRECO_VENDA;

             SELECT NA.TIPO_CONTROLE_ESTOQUE
             FROM CAD_NATUREZA_OPERACAO NA
             WHERE NA.EMPRESA = NEW.EMPRESA
               AND NA.CADASTRO = NEW.NATUREZA_OPERACAO
             INTO :VTIPO_CONTROLE_ESTOQUE;

             /*--------------------------------------------*/
             /***** Atualizando o Estoque dos Produtos *****/
             /*--------------------------------------------*/
             SELECT E.TIPO_CODIGO_BARRAS, E.ATT_PRECO_CUSTO_PROD_IMP_XML
             FROM CAD_EMPRESA E
             WHERE E.CADASTRO = NEW.EMPRESA
             INTO :VTIPO_CODIGO_BARRAS, :VATT_PRECO_CUSTO_PROD_IMP_XML;

             IF (VTIPO_CONTROLE_ESTOQUE = 'Entrada') THEN
             BEGIN
                 IF (VENTRADA_ESTOQUE_COMPOSICAO = '2') THEN
                 BEGIN
                     FOR SELECT I.PRODUTO_COMPOSICAO, I.PERCENTUAL
                     FROM CAD_IT_PRODUTO_COMPOSICAO I
                     LEFT OUTER JOIN CAD_PRODUTO PR ON(PR.EMPRESA = I.EMPRESA
                                                   AND PR.CADASTRO = I.PRODUTO_COMPOSICAO)
                     WHERE I.EMPRESA = NEW.EMPRESA
                       AND I.PRODUTO = NEW.PRODUTO
                       AND PR.CONTROLA_ESTOQUE = '2'
                     INTO :VPRODUTO_COMPOSICAO, :VPERCENTUAL_COMPOSICAO

                     DO BEGIN
                         UPDATE CAD_PRODUTO P SET
                         P.ESTOQUE = P.ESTOQUE + (NEW.QUANTIDADE * (:VPERCENTUAL_COMPOSICAO / 100))
                         WHERE P.EMPRESA = NEW.EMPRESA
                           AND P.CADASTRO = :VPRODUTO_COMPOSICAO;
                     END
                 END
                 ELSE BEGIN
                     IF ((VTIPO_CODIGO_BARRAS = 'Grade') AND (VCONTROLA_ESTOQUE = '2')) THEN
                     BEGIN
                         UPDATE CAD_IT_PRODUTO_CODIGO_BARRA I SET
                         I.ESTOQUE = I.ESTOQUE + NEW.QUANTIDADE
                         WHERE I.EMPRESA = NEW.EMPRESA
                           AND I.PRODUTO = NEW.PRODUTO
                           AND I.CODIGO_BARRA = NEW.CODIGO_BARRA;
                     END

                     UPDATE CAD_PRODUTO P SET
                     P.ESTOQUE = P.ESTOQUE + NEW.QUANTIDADE
                     WHERE P.EMPRESA = NEW.EMPRESA
                       AND P.CADASTRO = NEW.PRODUTO
                       AND P.CONTROLA_ESTOQUE = '2';
                 END

                 /*--------------------------------------------------------------------*/
                 /****** Atualizando o Preo de Custo e Custo Mdio dos Produtos *******/
                 /*--------------------------------------------------------------------*/
                 IF ((NEW.VALOR_DESCONTO > 0) AND (NEW.TOTAL > 0) AND (NEW.QUANTIDADE > 0)) THEN
                 BEGIN
                     VPRECO_CUSTO = ((NEW.TOTAL / NEW.QUANTIDADE) + NEW.VALOR_FRETE_RATEADO + NEW.VALOR_CONHEC_FRETE_RATEADO + NEW.VALOR_DESPESA_RATEADO
                                    + NEW.VALOR_IPI_RATEADO + NEW.VALOR_SUBSTITUICAO_RATEADO - NEW.VALOR_DESCONTO_PRODUTO_RATEADO - NEW.VALOR_DESCONTO_NOTA_RATEADO);
                 END
                 ELSE BEGIN
                     VPRECO_CUSTO = (NEW.VALOR + NEW.VALOR_FRETE_RATEADO + NEW.VALOR_CONHEC_FRETE_RATEADO + NEW.VALOR_DESPESA_RATEADO
                                   + NEW.VALOR_IPI_RATEADO + NEW.VALOR_SUBSTITUICAO_RATEADO - NEW.VALOR_DESCONTO_PRODUTO_RATEADO - NEW.VALOR_DESCONTO_NOTA_RATEADO);
                 END

                 IF (VCONTROLA_ESTOQUE = '2') THEN
                 BEGIN
                     IF ((VESTOQUE > 0) AND (VCUSTO_MEDIO > 0) AND (NEW.QUANTIDADE > 0)) THEN
                     BEGIN
                         VCUSTO_MEDIO = ((VESTOQUE * VCUSTO_MEDIO) + (VPRECO_CUSTO * NEW.QUANTIDADE)) / (VESTOQUE + NEW.QUANTIDADE);
                     END
                     ELSE BEGIN
                         VCUSTO_MEDIO = VPRECO_CUSTO;
                     END
                 END
                 ELSE BEGIN
                     VCUSTO_MEDIO = VPRECO_CUSTO;
                 END

                 IF (VATT_PRECO_CUSTO_PROD_IMP_XML = '2') THEN
                 BEGIN
                     IF (VPRECO_VENDA > 0) THEN
                     BEGIN
                         UPDATE CAD_PRODUTO P SET
                         P.NUMERO_NOTA_FISCAL_COMPRA = NEW.NUMERO,
                         P.PRECO_CUSTO = :VPRECO_CUSTO,
                         P.CUSTO_MEDIO = :VCUSTO_MEDIO,
                         P.PERCENTUAL_LUCRO = (((:VPRECO_VENDA - :VPRECO_CUSTO) / :VPRECO_CUSTO) * 100)
                         WHERE P.EMPRESA = NEW.EMPRESA
                           AND P.CADASTRO = NEW.PRODUTO;
                     END
                     ELSE BEGIN
                         UPDATE CAD_PRODUTO P SET
                         P.NUMERO_NOTA_FISCAL_COMPRA = NEW.NUMERO,
                         P.PRECO_CUSTO = :VPRECO_CUSTO,
                         P.CUSTO_MEDIO = :VCUSTO_MEDIO
                         WHERE P.EMPRESA = NEW.EMPRESA
                           AND P.CADASTRO = NEW.PRODUTO;
                     END
                 END
                 ELSE BEGIN
                     UPDATE CAD_PRODUTO P SET
                     P.NUMERO_NOTA_FISCAL_COMPRA = NEW.NUMERO,
                     P.CUSTO_MEDIO = :VCUSTO_MEDIO
                     WHERE P.EMPRESA = NEW.EMPRESA
                       AND P.CADASTRO = NEW.PRODUTO;
                 END
             END
         END
     END
 END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER TRIGGER MOV_IT_NOTA_FISCAL_COMPRA_04 FOR MOV_IT_NOTA_FISCAL_COMPRA
 ACTIVE AFTER UPDATE POSITION 0
 AS
 DECLARE VARIABLE VESTOQUE REAL;
 DECLARE VARIABLE VQUANTIDADE REAL;
 DECLARE VARIABLE VPRECO_CUSTO REAL;
 DECLARE VARIABLE VCUSTO_MEDIO REAL;
 DECLARE VARIABLE VCONTROLA_ESTOQUE VARCHAR(1);
 DECLARE VARIABLE VTIPO_CODIGO_BARRAS VARCHAR(10);
 DECLARE VARIABLE VNUMERO_NOTA_FISCAL_COMPRA INTEGER;
 DECLARE VARIABLE VPRODUTO INTEGER;
 DECLARE VARIABLE VTIPO_CONTROLE_ESTOQUE VARCHAR(10);
 DECLARE VARIABLE VENTRADA_ESTOQUE_COMPOSICAO VARCHAR(1);
 DECLARE VARIABLE VPRODUTO_COMPOSICAO INTEGER;
 DECLARE VARIABLE VPERCENTUAL_COMPOSICAO REAL;
 DECLARE VARIABLE VATT_PRECO_CUSTO_PROD_IMP_XML VARCHAR(1);
 BEGIN
     IF (NEW.STATUS = 'Lanada') THEN
     BEGIN
         IF (OLD.STATUS = 'Pendente') THEN
         BEGIN
             IF ((NEW.PRODUTO IS NOT NULL) AND (NEW.PRODUTO > 0)) THEN
             BEGIN
                 SELECT P.ESTOQUE, P.CUSTO_MEDIO, P.CONTROLA_ESTOQUE, P.ENTRADA_ESTOQUE_COMPOSICAO
                 FROM CAD_PRODUTO P
                 WHERE P.EMPRESA = NEW.EMPRESA
                   AND P.CADASTRO = NEW.PRODUTO
                 INTO :VESTOQUE, :VCUSTO_MEDIO, :VCONTROLA_ESTOQUE, :VENTRADA_ESTOQUE_COMPOSICAO;

                 SELECT NA.TIPO_CONTROLE_ESTOQUE
                 FROM CAD_NATUREZA_OPERACAO NA
                 WHERE NA.EMPRESA = NEW.EMPRESA
                   AND NA.CADASTRO = NEW.NATUREZA_OPERACAO
                 INTO :VTIPO_CONTROLE_ESTOQUE;

                 /*--------------------------------------------*/
                 /***** Atualizando o Estoque dos Produtos *****/
                 /*--------------------------------------------*/
                 SELECT E.TIPO_CODIGO_BARRAS, E.ATT_PRECO_CUSTO_PROD_IMP_XML
                 FROM CAD_EMPRESA E
                 WHERE E.CADASTRO = NEW.EMPRESA
                 INTO :VTIPO_CODIGO_BARRAS, :VATT_PRECO_CUSTO_PROD_IMP_XML;

                 IF (VTIPO_CONTROLE_ESTOQUE = 'Entrada') THEN
                 BEGIN
                     IF (VENTRADA_ESTOQUE_COMPOSICAO = '2') THEN
                     BEGIN
                         FOR SELECT I.PRODUTO_COMPOSICAO, I.PERCENTUAL
                         FROM CAD_IT_PRODUTO_COMPOSICAO I
                         LEFT OUTER JOIN CAD_PRODUTO PR ON(PR.EMPRESA = I.EMPRESA
                                                       AND PR.CADASTRO = I.PRODUTO_COMPOSICAO)
                         WHERE I.EMPRESA = NEW.EMPRESA
                           AND I.PRODUTO = NEW.PRODUTO
                           AND PR.CONTROLA_ESTOQUE = '2'
                         INTO :VPRODUTO_COMPOSICAO, :VPERCENTUAL_COMPOSICAO

                         DO BEGIN
                             UPDATE CAD_PRODUTO P SET
                             P.ESTOQUE = P.ESTOQUE + (NEW.QUANTIDADE * (:VPERCENTUAL_COMPOSICAO / 100))
                             WHERE P.EMPRESA = NEW.EMPRESA
                               AND P.CADASTRO = :VPRODUTO_COMPOSICAO;
                         END
                     END
                     ELSE BEGIN
                         IF ((VTIPO_CODIGO_BARRAS = 'Grade') AND (VCONTROLA_ESTOQUE = '2')) THEN
                         BEGIN
                             UPDATE CAD_IT_PRODUTO_CODIGO_BARRA I SET
                             I.ESTOQUE = I.ESTOQUE + NEW.QUANTIDADE
                             WHERE I.EMPRESA = NEW.EMPRESA
                               AND I.PRODUTO = NEW.PRODUTO
                               AND I.CODIGO_BARRA = NEW.CODIGO_BARRA;
                         END

                         UPDATE CAD_PRODUTO P SET
                         P.ESTOQUE = P.ESTOQUE + NEW.QUANTIDADE
                         WHERE P.EMPRESA = NEW.EMPRESA
                           AND P.CADASTRO = NEW.PRODUTO
                           AND P.CONTROLA_ESTOQUE = '2';
                     END

                     /*-----------------------------------------------------------------*/
                     /***** Atualizando o Preo de Custo e Custo Mdio dos Produtos *****/
                     /*-----------------------------------------------------------------*/
                     IF ((NEW.VALOR_DESCONTO > 0) AND (NEW.TOTAL > 0) AND (NEW.QUANTIDADE > 0)) THEN
                     BEGIN
                         VPRECO_CUSTO = ((NEW.TOTAL / NEW.QUANTIDADE) + NEW.VALOR_FRETE_RATEADO + NEW.VALOR_CONHEC_FRETE_RATEADO + NEW.VALOR_DESPESA_RATEADO
                                        + NEW.VALOR_IPI_RATEADO + NEW.VALOR_SUBSTITUICAO_RATEADO - NEW.VALOR_DESCONTO_PRODUTO_RATEADO - NEW.VALOR_DESCONTO_NOTA_RATEADO);
                     END
                     ELSE BEGIN
                         VPRECO_CUSTO = (NEW.VALOR + NEW.VALOR_FRETE_RATEADO + NEW.VALOR_CONHEC_FRETE_RATEADO + NEW.VALOR_DESPESA_RATEADO
                                       + NEW.VALOR_IPI_RATEADO + NEW.VALOR_SUBSTITUICAO_RATEADO - NEW.VALOR_DESCONTO_PRODUTO_RATEADO - NEW.VALOR_DESCONTO_NOTA_RATEADO);
                     END

                     IF (VCONTROLA_ESTOQUE = '2') THEN
                     BEGIN
                         IF ((VESTOQUE > 0) AND (VCUSTO_MEDIO > 0) AND (NEW.QUANTIDADE > 0)) THEN
                         BEGIN
                             VCUSTO_MEDIO = ((VESTOQUE * VCUSTO_MEDIO) + (VPRECO_CUSTO * NEW.QUANTIDADE)) / (VESTOQUE + NEW.QUANTIDADE);
                         END
                         ELSE BEGIN
                             VCUSTO_MEDIO = VPRECO_CUSTO;
                         END
                     END
                     ELSE BEGIN
                         VCUSTO_MEDIO = VPRECO_CUSTO;
                     END

                     IF (VATT_PRECO_CUSTO_PROD_IMP_XML = '2') THEN
                     BEGIN
                         UPDATE CAD_PRODUTO P SET
                         P.NUMERO_NOTA_FISCAL_COMPRA = NEW.NUMERO,
                         P.PRECO_CUSTO = :VPRECO_CUSTO,
                         P.CUSTO_MEDIO = :VCUSTO_MEDIO
                         WHERE P.EMPRESA = NEW.EMPRESA
                           AND P.CADASTRO = NEW.PRODUTO;
                     END
                     ELSE BEGIN
                         UPDATE CAD_PRODUTO P SET
                         P.NUMERO_NOTA_FISCAL_COMPRA = NEW.NUMERO,
                         P.CUSTO_MEDIO = :VCUSTO_MEDIO
                         WHERE P.EMPRESA = NEW.EMPRESA
                           AND P.CADASTRO = NEW.PRODUTO;
                     END
                 END
             END
         END
         ELSE BEGIN
             IF (NEW.PRODUTO <> OLD.PRODUTO) THEN
             BEGIN
                 IF ((OLD.PRODUTO IS NOT NULL) AND (OLD.PRODUTO > 0)) THEN
                 BEGIN
                     SELECT P.ESTOQUE, P.PRECO_CUSTO, P.CUSTO_MEDIO, P.CONTROLA_ESTOQUE, P.ENTRADA_ESTOQUE_COMPOSICAO
                     FROM CAD_PRODUTO P
                     WHERE P.EMPRESA = OLD.EMPRESA
                       AND P.CADASTRO = OLD.PRODUTO
                     INTO :VESTOQUE, :VPRECO_CUSTO, :VCUSTO_MEDIO, :VCONTROLA_ESTOQUE, :VENTRADA_ESTOQUE_COMPOSICAO;

                     SELECT NA.TIPO_CONTROLE_ESTOQUE
                     FROM CAD_NATUREZA_OPERACAO NA
                     WHERE NA.EMPRESA = OLD.EMPRESA
                       AND NA.CADASTRO = OLD.NATUREZA_OPERACAO
                     INTO :VTIPO_CONTROLE_ESTOQUE;

                     SELECT E.TIPO_CODIGO_BARRAS, E.ATT_PRECO_CUSTO_PROD_IMP_XML
                     FROM CAD_EMPRESA E
                     WHERE E.CADASTRO = OLD.EMPRESA
                     INTO :VTIPO_CODIGO_BARRAS, :VATT_PRECO_CUSTO_PROD_IMP_XML;

                     IF (VTIPO_CONTROLE_ESTOQUE = 'Entrada') THEN
                     BEGIN
                         IF (VENTRADA_ESTOQUE_COMPOSICAO = '2') THEN
                         BEGIN
                             FOR SELECT I.PRODUTO_COMPOSICAO, I.PERCENTUAL
                             FROM CAD_IT_PRODUTO_COMPOSICAO I
                             LEFT OUTER JOIN CAD_PRODUTO PR ON(PR.EMPRESA = I.EMPRESA
                                                           AND PR.CADASTRO = I.PRODUTO_COMPOSICAO)
                             WHERE I.EMPRESA = OLD.EMPRESA
                               AND I.PRODUTO = OLD.PRODUTO
                               AND PR.CONTROLA_ESTOQUE = '2'
                             INTO :VPRODUTO_COMPOSICAO, :VPERCENTUAL_COMPOSICAO

                             DO BEGIN
                                 UPDATE CAD_PRODUTO P SET
                                 P.ESTOQUE = P.ESTOQUE - (OLD.QUANTIDADE * (:VPERCENTUAL_COMPOSICAO / 100))
                                 WHERE P.EMPRESA = NEW.EMPRESA
                                   AND P.CADASTRO = :VPRODUTO_COMPOSICAO;
                             END
                         END
                         ELSE BEGIN
                             IF ((VTIPO_CODIGO_BARRAS = 'Grade') AND (VCONTROLA_ESTOQUE = '2')) THEN
                             BEGIN
                                 UPDATE CAD_IT_PRODUTO_CODIGO_BARRA I SET
                                 I.ESTOQUE = I.ESTOQUE - OLD.QUANTIDADE
                                 WHERE I.EMPRESA = OLD.EMPRESA
                                   AND I.PRODUTO = OLD.PRODUTO
                                   AND I.CODIGO_BARRA = OLD.CODIGO_BARRA;
                             END

                             UPDATE CAD_PRODUTO P SET
                             P.ESTOQUE = P.ESTOQUE - OLD.QUANTIDADE
                             WHERE P.EMPRESA = OLD.EMPRESA
                               AND P.CADASTRO = OLD.PRODUTO
                               AND P.CONTROLA_ESTOQUE = '2';
                         END
                     END

                     /*------------------------------------------------------*/
                     /****** Somente Atualiza os Custos do Produto caso ******/
                     /***** seja a ltima nota fiscal lancada no sistema *****/
                     /*------------------------------------------------------*/
                     SELECT P.NUMERO_NOTA_FISCAL_COMPRA
                     FROM CAD_PRODUTO P
                     WHERE P.EMPRESA = OLD.EMPRESA
                       AND P.CADASTRO = OLD.PRODUTO
                     INTO :VNUMERO_NOTA_FISCAL_COMPRA;

                     IF ((NEW.NUMERO >= VNUMERO_NOTA_FISCAL_COMPRA) OR (VNUMERO_NOTA_FISCAL_COMPRA IS NULL)) THEN
                     BEGIN
                         /*--------------------------------------------------------*/
                         /***** Verificando se o Cdigo do Produto foi lanado *****/
                         /********** mais de uma vez na mesma Nota Fiscal **********/
                         /*--------------------------------------------------------*/
                         VPRODUTO = 0;

                         FOR SELECT I.PRODUTO
                         FROM MOV_IT_NOTA_FISCAL_COMPRA I
                         WHERE I.EMPRESA = OLD.EMPRESA
                           AND I.NUMERO = OLD.NUMERO
                           AND I.PRODUTO = OLD.PRODUTO
                         ORDER BY I.SEQ
                         INTO :VPRODUTO

                         DO BEGIN
                             VPRODUTO = 1;
                         END

                         IF (VPRODUTO = 0) THEN
                         BEGIN
                             IF (VATT_PRECO_CUSTO_PROD_IMP_XML = '2') THEN
                             BEGIN
                                 UPDATE CAD_PRODUTO P SET
                                 P.PRECO_CUSTO = OLD.PRECO_CUSTO_ANTERIOR,
                                 P.CUSTO_MEDIO = OLD.CUSTO_MEDIO_ANTERIOR,
                                 P.NUMERO_NOTA_FISCAL_COMPRA = OLD.NUMERO_NOTA_COMPRA_ANTERIOR
                                 WHERE P.EMPRESA = OLD.EMPRESA
                                   AND P.CADASTRO = OLD.PRODUTO;
                             END
                             ELSE BEGIN
                                 UPDATE CAD_PRODUTO P SET
                                 P.CUSTO_MEDIO = OLD.CUSTO_MEDIO_ANTERIOR,
                                 P.NUMERO_NOTA_FISCAL_COMPRA = OLD.NUMERO_NOTA_COMPRA_ANTERIOR
                                 WHERE P.EMPRESA = OLD.EMPRESA
                                   AND P.CADASTRO = OLD.PRODUTO;
                             END
                         END
                         ELSE BEGIN
                             IF ((VCONTROLA_ESTOQUE = '2') AND (OLD.ESTOQUE_ANTERIOR > 0) AND (VESTOQUE > 0)) THEN
                             BEGIN
                                 /***** Recalcula o Custo Mdio do Produto *****/
                                 SELECT SUM(I.QUANTIDADE)
                                 FROM MOV_IT_NOTA_FISCAL_COMPRA I
                                 WHERE I.EMPRESA = OLD.EMPRESA
                                   AND I.NUMERO = OLD.NUMERO
                                   AND I.PRODUTO = OLD.PRODUTO
                                 INTO :VQUANTIDADE;

                                 VCUSTO_MEDIO = (((OLD.ESTOQUE_ANTERIOR * OLD.CUSTO_MEDIO_ANTERIOR) + (VQUANTIDADE * VPRECO_CUSTO)) / VESTOQUE);
                             END
                             ELSE BEGIN
                                 VCUSTO_MEDIO = VPRECO_CUSTO;
                             END

                             UPDATE CAD_PRODUTO P SET
                             P.CUSTO_MEDIO = :VCUSTO_MEDIO
                             WHERE P.EMPRESA = OLD.EMPRESA
                               AND P.CADASTRO = OLD.PRODUTO;
                         END
                     END
                 END

                 IF ((NEW.PRODUTO IS NOT NULL) AND (NEW.PRODUTO > 0)) THEN
                 BEGIN
                     SELECT P.ESTOQUE, P.CUSTO_MEDIO, P.CONTROLA_ESTOQUE, P.ENTRADA_ESTOQUE_COMPOSICAO
                     FROM CAD_PRODUTO P
                     WHERE P.EMPRESA = NEW.EMPRESA
                       AND P.CADASTRO = NEW.PRODUTO
                     INTO :VESTOQUE, :VCUSTO_MEDIO, :VCONTROLA_ESTOQUE, :VENTRADA_ESTOQUE_COMPOSICAO;

                     SELECT NA.TIPO_CONTROLE_ESTOQUE
                     FROM CAD_NATUREZA_OPERACAO NA
                     WHERE NA.EMPRESA = NEW.EMPRESA
                       AND NA.CADASTRO = NEW.NATUREZA_OPERACAO
                     INTO :VTIPO_CONTROLE_ESTOQUE;

                     SELECT E.TIPO_CODIGO_BARRAS, E.ATT_PRECO_CUSTO_PROD_IMP_XML
                     FROM CAD_EMPRESA E
                     WHERE E.CADASTRO = NEW.EMPRESA
                     INTO :VTIPO_CODIGO_BARRAS, :VATT_PRECO_CUSTO_PROD_IMP_XML;

                     IF (VTIPO_CONTROLE_ESTOQUE = 'Entrada') THEN
                     BEGIN
                         IF (VENTRADA_ESTOQUE_COMPOSICAO = '2') THEN
                         BEGIN
                             FOR SELECT I.PRODUTO_COMPOSICAO, I.PERCENTUAL
                             FROM CAD_IT_PRODUTO_COMPOSICAO I
                             LEFT OUTER JOIN CAD_PRODUTO PR ON (PR.EMPRESA = I.EMPRESA
                                                            AND PR.CADASTRO = I.PRODUTO_COMPOSICAO)
                             WHERE I.EMPRESA = NEW.EMPRESA
                               AND I.PRODUTO = NEW.PRODUTO
                               AND PR.CONTROLA_ESTOQUE = '2'
                             INTO :VPRODUTO_COMPOSICAO, :VPERCENTUAL_COMPOSICAO

                             DO BEGIN
                                 UPDATE CAD_PRODUTO P SET
                                 P.ESTOQUE = P.ESTOQUE + (NEW.QUANTIDADE * (:VPERCENTUAL_COMPOSICAO / 100))
                                 WHERE P.EMPRESA = NEW.EMPRESA
                                   AND P.CADASTRO = :VPRODUTO_COMPOSICAO;
                             END
                         END
                         ELSE BEGIN
                             IF ((VTIPO_CODIGO_BARRAS = 'Grade') AND (VCONTROLA_ESTOQUE = '2')) THEN
                             BEGIN
                                 UPDATE CAD_IT_PRODUTO_CODIGO_BARRA I SET
                                 I.ESTOQUE = I.ESTOQUE + NEW.QUANTIDADE
                                 WHERE I.EMPRESA = NEW.EMPRESA
                                   AND I.PRODUTO = NEW.PRODUTO
                                   AND I.CODIGO_BARRA = NEW.CODIGO_BARRA;
                             END

                             UPDATE CAD_PRODUTO P SET
                             P.ESTOQUE = P.ESTOQUE + NEW.QUANTIDADE
                             WHERE P.EMPRESA = NEW.EMPRESA
                               AND P.CADASTRO = NEW.PRODUTO
                               AND P.CONTROLA_ESTOQUE = '2';
                         END
                     END

                     /*------------------------------------------------------*/
                     /****** Somente Atualiza os Custos do Produto caso ******/
                     /***** seja a ltima nota fiscal lancada no sistema *****/
                     /*------------------------------------------------------*/
                     SELECT P.NUMERO_NOTA_FISCAL_COMPRA
                     FROM CAD_PRODUTO P
                     WHERE P.EMPRESA = NEW.EMPRESA
                       AND P.CADASTRO = NEW.PRODUTO
                     INTO :VNUMERO_NOTA_FISCAL_COMPRA;

                     IF ((NEW.NUMERO >= VNUMERO_NOTA_FISCAL_COMPRA) OR (VNUMERO_NOTA_FISCAL_COMPRA IS NULL)) THEN
                     BEGIN
                         /*----------------------------------------------------*/
                         /* Atualizando Preo Custo e Custo Mdio dos Produtos */
                         /*----------------------------------------------------*/
                         IF ((NEW.VALOR_DESCONTO > 0) AND (NEW.TOTAL > 0) AND (NEW.QUANTIDADE > 0)) THEN
                         BEGIN
                             VPRECO_CUSTO = ((NEW.TOTAL / NEW.QUANTIDADE) + NEW.VALOR_FRETE_RATEADO + NEW.VALOR_CONHEC_FRETE_RATEADO + NEW.VALOR_DESPESA_RATEADO
                                            + NEW.VALOR_IPI_RATEADO + NEW.VALOR_SUBSTITUICAO_RATEADO - NEW.VALOR_DESCONTO_PRODUTO_RATEADO - NEW.VALOR_DESCONTO_NOTA_RATEADO);
                         END
                         ELSE BEGIN
                             VPRECO_CUSTO = (NEW.VALOR + NEW.VALOR_FRETE_RATEADO + NEW.VALOR_CONHEC_FRETE_RATEADO + NEW.VALOR_DESPESA_RATEADO
                                           + NEW.VALOR_IPI_RATEADO + NEW.VALOR_SUBSTITUICAO_RATEADO - NEW.VALOR_DESCONTO_PRODUTO_RATEADO - NEW.VALOR_DESCONTO_NOTA_RATEADO);
                         END

                         IF (VCONTROLA_ESTOQUE = '2') THEN
                         BEGIN
                             IF ((VESTOQUE > 0) AND (VCUSTO_MEDIO > 0) AND (NEW.QUANTIDADE > 0)) THEN
                             BEGIN
                                 VCUSTO_MEDIO = ((VESTOQUE * VCUSTO_MEDIO) + (VPRECO_CUSTO * NEW.QUANTIDADE)) / (VESTOQUE + NEW.QUANTIDADE);
                             END
                             ELSE BEGIN
                                 VCUSTO_MEDIO = VPRECO_CUSTO;
                             END
                         END
                         ELSE BEGIN
                             VCUSTO_MEDIO = VPRECO_CUSTO;
                         END

                           IF (VATT_PRECO_CUSTO_PROD_IMP_XML = '2') THEN
                         BEGIN
                             UPDATE CAD_PRODUTO P SET
                             P.NUMERO_NOTA_FISCAL_COMPRA = NEW.NUMERO,
                             P.PRECO_CUSTO = :VPRECO_CUSTO,
                             P.CUSTO_MEDIO = :VCUSTO_MEDIO
                             WHERE P.EMPRESA = NEW.EMPRESA
                               AND P.CADASTRO = NEW.PRODUTO;
                         END
                         ELSE BEGIN
                             UPDATE CAD_PRODUTO P SET
                             P.NUMERO_NOTA_FISCAL_COMPRA = NEW.NUMERO,
                             P.CUSTO_MEDIO = :VCUSTO_MEDIO
                             WHERE P.EMPRESA = NEW.EMPRESA
                               AND P.CADASTRO = NEW.PRODUTO;
                         END
                     END
                 END
             END
             ELSE BEGIN
                 IF ((NEW.PRODUTO IS NOT NULL) AND (NEW.PRODUTO > 0)) THEN
                 BEGIN
                     SELECT P.ESTOQUE, P.CUSTO_MEDIO, P.CONTROLA_ESTOQUE, P.ENTRADA_ESTOQUE_COMPOSICAO
                     FROM CAD_PRODUTO P
                     WHERE P.EMPRESA = NEW.EMPRESA
                       AND P.CADASTRO = NEW.PRODUTO
                     INTO :VESTOQUE, :VCUSTO_MEDIO, :VCONTROLA_ESTOQUE, :VENTRADA_ESTOQUE_COMPOSICAO;

                     SELECT NA.TIPO_CONTROLE_ESTOQUE
                     FROM CAD_NATUREZA_OPERACAO NA
                     WHERE NA.EMPRESA = NEW.EMPRESA
                       AND NA.CADASTRO = NEW.NATUREZA_OPERACAO
                     INTO :VTIPO_CONTROLE_ESTOQUE;

                     SELECT E.TIPO_CODIGO_BARRAS, E.ATT_PRECO_CUSTO_PROD_IMP_XML
                     FROM CAD_EMPRESA E
                     WHERE E.CADASTRO = NEW.EMPRESA
                     INTO :VTIPO_CODIGO_BARRAS, :VATT_PRECO_CUSTO_PROD_IMP_XML;

                     IF (VTIPO_CONTROLE_ESTOQUE = 'Entrada') THEN
                     BEGIN
                         IF (VENTRADA_ESTOQUE_COMPOSICAO = '2') THEN
                         BEGIN
                             FOR SELECT I.PRODUTO_COMPOSICAO, I.PERCENTUAL
                             FROM CAD_IT_PRODUTO_COMPOSICAO I
                             LEFT OUTER JOIN CAD_PRODUTO PR ON(PR.EMPRESA = I.EMPRESA
                                                           AND PR.CADASTRO = I.PRODUTO_COMPOSICAO)
                             WHERE I.EMPRESA = NEW.EMPRESA
                               AND I.PRODUTO = NEW.PRODUTO
                               AND PR.CONTROLA_ESTOQUE = '2'
                             INTO :VPRODUTO_COMPOSICAO, :VPERCENTUAL_COMPOSICAO

                             DO BEGIN
                                 IF (NEW.QUANTIDADE <> OLD.QUANTIDADE) THEN
                                 BEGIN
                                     UPDATE CAD_PRODUTO P SET
                                     P.ESTOQUE = P.ESTOQUE + ((NEW.QUANTIDADE * (:VPERCENTUAL_COMPOSICAO / 100)) - (OLD.QUANTIDADE * (:VPERCENTUAL_COMPOSICAO / 100)))
                                     WHERE P.EMPRESA = NEW.EMPRESA
                                       AND P.CADASTRO = :VPRODUTO_COMPOSICAO;
                                 END
                             END
                         END
                         ELSE BEGIN
                             IF (VCONTROLA_ESTOQUE = '2') THEN
                             BEGIN
                                 IF (VTIPO_CODIGO_BARRAS = 'Grade') THEN
                                 BEGIN
                                     IF (NEW.CODIGO_BARRA <> OLD.CODIGO_BARRA) THEN
                                     BEGIN
                                         UPDATE CAD_IT_PRODUTO_CODIGO_BARRA I SET
                                         I.ESTOQUE = I.ESTOQUE - OLD.QUANTIDADE
                                         WHERE I.EMPRESA = OLD.EMPRESA
                                           AND I.PRODUTO = OLD.PRODUTO
                                           AND I.CODIGO_BARRA = OLD.CODIGO_BARRA;

                                         UPDATE CAD_IT_PRODUTO_CODIGO_BARRA I SET
                                         I.ESTOQUE = I.ESTOQUE + NEW.QUANTIDADE
                                         WHERE I.EMPRESA = NEW.EMPRESA
                                           AND I.PRODUTO = NEW.PRODUTO
                                           AND I.CODIGO_BARRA = NEW.CODIGO_BARRA;

                                         UPDATE CAD_PRODUTO P SET
                                         P.ESTOQUE = P.ESTOQUE + (NEW.QUANTIDADE - OLD.QUANTIDADE)
                                         WHERE P.EMPRESA = NEW.EMPRESA
                                           AND P.CADASTRO = NEW.PRODUTO
                                           AND P.CONTROLA_ESTOQUE = '2';

                                         VESTOQUE = VESTOQUE + (NEW.QUANTIDADE - OLD.QUANTIDADE);
                                     END
                                     ELSE BEGIN
                                         IF (NEW.QUANTIDADE <> OLD.QUANTIDADE) THEN
                                         BEGIN
                                             UPDATE CAD_IT_PRODUTO_CODIGO_BARRA I SET
                                             I.ESTOQUE = I.ESTOQUE + (NEW.QUANTIDADE - OLD.QUANTIDADE)
                                             WHERE I.EMPRESA = NEW.EMPRESA
                                               AND I.PRODUTO = NEW.PRODUTO
                                               AND I.CODIGO_BARRA = NEW.CODIGO_BARRA;

                                             UPDATE CAD_PRODUTO P SET
                                             P.ESTOQUE = P.ESTOQUE + (NEW.QUANTIDADE - OLD.QUANTIDADE)
                                             WHERE P.EMPRESA = NEW.EMPRESA
                                               AND P.CADASTRO = NEW.PRODUTO
                                               AND P.CONTROLA_ESTOQUE = '2';

                                             VESTOQUE = VESTOQUE + (NEW.QUANTIDADE - OLD.QUANTIDADE);
                                         END
                                     END
                                 END
                                 ELSE BEGIN
                                     IF (NEW.QUANTIDADE <> OLD.QUANTIDADE) THEN
                                     BEGIN
                                         UPDATE CAD_PRODUTO P SET
                                         P.ESTOQUE = P.ESTOQUE + (NEW.QUANTIDADE - OLD.QUANTIDADE)
                                         WHERE P.EMPRESA = NEW.EMPRESA
                                           AND P.CADASTRO = NEW.PRODUTO
                                           AND P.CONTROLA_ESTOQUE = '2';

                                         VESTOQUE = VESTOQUE + (NEW.QUANTIDADE - OLD.QUANTIDADE);
                                     END
                                 END
                             END
                         END
                     END

                     /*------------------------------------------------*/
                     /******** Somente atualiza o Preo de Custo *******/
                     /***** caso seja a Ultima Nota Fiscal Lanada *****/
                     /*------------------------------------------------*/
                     SELECT P.NUMERO_NOTA_FISCAL_COMPRA
                     FROM CAD_PRODUTO P
                     WHERE P.EMPRESA = NEW.EMPRESA
                       AND P.CADASTRO = NEW.PRODUTO
                     INTO :VNUMERO_NOTA_FISCAL_COMPRA;

                     IF (VNUMERO_NOTA_FISCAL_COMPRA = OLD.NUMERO) THEN
                     BEGIN
                         /*------------------------------------------------------------*/
                         /***** Atualizando Preo Custo e Custo Mdio dos Produtos *****/
                         /*------------------------------------------------------------*/
                         IF ((NEW.VALOR_DESCONTO > 0) AND (NEW.TOTAL > 0) AND (NEW.QUANTIDADE > 0)) THEN
                         BEGIN
                             VPRECO_CUSTO = ((NEW.TOTAL / NEW.QUANTIDADE) + NEW.VALOR_FRETE_RATEADO + NEW.VALOR_CONHEC_FRETE_RATEADO + NEW.VALOR_DESPESA_RATEADO
                                            + NEW.VALOR_IPI_RATEADO + NEW.VALOR_SUBSTITUICAO_RATEADO - NEW.VALOR_DESCONTO_PRODUTO_RATEADO - NEW.VALOR_DESCONTO_NOTA_RATEADO);
                         END
                         ELSE BEGIN
                             VPRECO_CUSTO = (NEW.VALOR + NEW.VALOR_FRETE_RATEADO + NEW.VALOR_CONHEC_FRETE_RATEADO + NEW.VALOR_DESPESA_RATEADO
                                           + NEW.VALOR_IPI_RATEADO + NEW.VALOR_SUBSTITUICAO_RATEADO - NEW.VALOR_DESCONTO_PRODUTO_RATEADO - NEW.VALOR_DESCONTO_NOTA_RATEADO);
                         END

                         IF ((VCONTROLA_ESTOQUE = '2') AND (OLD.ESTOQUE_ANTERIOR > 0) AND (VESTOQUE > 0)) THEN
                         BEGIN
                             /***** Recalcula o Custo Mdio do Produto *****/
                             SELECT SUM(I.QUANTIDADE)
                             FROM MOV_IT_NOTA_FISCAL_COMPRA I
                             WHERE I.EMPRESA = OLD.EMPRESA
                               AND I.NUMERO = OLD.NUMERO
                               AND I.PRODUTO = OLD.PRODUTO
                             INTO :VQUANTIDADE;

                             VCUSTO_MEDIO = (((OLD.ESTOQUE_ANTERIOR * OLD.CUSTO_MEDIO_ANTERIOR) + (VQUANTIDADE * VPRECO_CUSTO)) / VESTOQUE);
                         END
                         ELSE BEGIN
                             VCUSTO_MEDIO = VPRECO_CUSTO;
                         END

                         IF (VATT_PRECO_CUSTO_PROD_IMP_XML = '2') THEN
                         BEGIN
                             UPDATE CAD_PRODUTO P SET
                             P.PRECO_CUSTO = :VPRECO_CUSTO,
                             P.CUSTO_MEDIO = :VCUSTO_MEDIO
                             WHERE P.EMPRESA = NEW.EMPRESA
                               AND P.CADASTRO = NEW.PRODUTO;
                         END
                         ELSE BEGIN
                             UPDATE CAD_PRODUTO P SET
                             P.CUSTO_MEDIO = :VCUSTO_MEDIO
                             WHERE P.EMPRESA = NEW.EMPRESA
                               AND P.CADASTRO = NEW.PRODUTO;
                         END
                     END
                 END
             END
         END
     END
 END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER TRIGGER MOV_IT_NOTA_FISCAL_COMPRA_05 FOR MOV_IT_NOTA_FISCAL_COMPRA
 ACTIVE AFTER DELETE POSITION 0
 AS
 DECLARE VARIABLE VPRODUTO INTEGER;
 DECLARE VARIABLE VNUMERO_NOTA_FISCAL_COMPRA INTEGER;
 DECLARE VARIABLE VESTOQUE REAL;
 DECLARE VARIABLE VPRECO_CUSTO REAL;
 DECLARE VARIABLE VCUSTO_MEDIO REAL;
 DECLARE VARIABLE VQUANTIDADE REAL;
 DECLARE VARIABLE VCONTROLA_ESTOQUE VARCHAR(1);
 DECLARE VARIABLE VTIPO_CODIGO_BARRAS VARCHAR(10);
 DECLARE VARIABLE VTIPO_CONTROLE_ESTOQUE VARCHAR(10);
 DECLARE VARIABLE VENTRADA_ESTOQUE_COMPOSICAO VARCHAR(1);
 DECLARE VARIABLE VPRODUTO_COMPOSICAO INTEGER;
 DECLARE VARIABLE VPERCENTUAL_COMPOSICAO REAL;
 DECLARE VARIABLE VATT_PRECO_CUSTO_PROD_IMP_XML VARCHAR(1);
 BEGIN
     IF (OLD.STATUS = 'Lanada') THEN
     BEGIN
         IF ((OLD.PRODUTO IS NOT NULL) AND (OLD.PRODUTO > 0)) THEN
         BEGIN
             SELECT P.PRECO_CUSTO, P.ESTOQUE, P.CONTROLA_ESTOQUE, P.ENTRADA_ESTOQUE_COMPOSICAO
             FROM CAD_PRODUTO P
             WHERE P.EMPRESA = OLD.EMPRESA
               AND P.CADASTRO = OLD.PRODUTO
             INTO :VPRECO_CUSTO, :VESTOQUE, :VCONTROLA_ESTOQUE, :VENTRADA_ESTOQUE_COMPOSICAO;

             SELECT NA.TIPO_CONTROLE_ESTOQUE
             FROM CAD_NATUREZA_OPERACAO NA
             WHERE NA.EMPRESA = OLD.EMPRESA
               AND NA.CADASTRO = OLD.NATUREZA_OPERACAO
             INTO :VTIPO_CONTROLE_ESTOQUE;

             /*-----------------------------------------*/
             /***** Voltando o Estoque dos Produtos *****/
             /*-----------------------------------------*/
             SELECT E.TIPO_CODIGO_BARRAS, E.ATT_PRECO_CUSTO_PROD_IMP_XML
             FROM CAD_EMPRESA E
             WHERE E.CADASTRO = OLD.EMPRESA
             INTO :VTIPO_CODIGO_BARRAS, :VATT_PRECO_CUSTO_PROD_IMP_XML;

             IF (VTIPO_CONTROLE_ESTOQUE = 'Entrada') THEN
             BEGIN
                 IF (VENTRADA_ESTOQUE_COMPOSICAO = '2') THEN
                 BEGIN
                     FOR SELECT I.PRODUTO_COMPOSICAO, I.PERCENTUAL
                     FROM CAD_IT_PRODUTO_COMPOSICAO I
                     LEFT OUTER JOIN CAD_PRODUTO PR ON(PR.EMPRESA = I.EMPRESA
                                                   AND PR.CADASTRO = I.PRODUTO_COMPOSICAO)
                     WHERE I.EMPRESA = OLD.EMPRESA
                       AND I.PRODUTO = OLD.PRODUTO
                       AND PR.CONTROLA_ESTOQUE = '2'
                     INTO :VPRODUTO_COMPOSICAO, :VPERCENTUAL_COMPOSICAO

                     DO BEGIN
                         UPDATE CAD_PRODUTO P SET
                         P.ESTOQUE = P.ESTOQUE - (OLD.QUANTIDADE * (:VPERCENTUAL_COMPOSICAO / 100))
                         WHERE P.EMPRESA = OLD.EMPRESA
                           AND P.CADASTRO = :VPRODUTO_COMPOSICAO;
                     END
                 END
                 ELSE BEGIN
                     IF ((VTIPO_CODIGO_BARRAS = 'Grade') AND (VCONTROLA_ESTOQUE = '2')) THEN
                     BEGIN
                         UPDATE CAD_IT_PRODUTO_CODIGO_BARRA I SET
                         I.ESTOQUE = I.ESTOQUE - OLD.QUANTIDADE
                         WHERE I.EMPRESA = OLD.EMPRESA
                           AND I.PRODUTO = OLD.PRODUTO
                           AND I.CODIGO_BARRA = OLD.CODIGO_BARRA;
                     END

                     UPDATE CAD_PRODUTO P SET
                     P.ESTOQUE = P.ESTOQUE - OLD.QUANTIDADE
                     WHERE P.EMPRESA = OLD.EMPRESA
                       AND P.CADASTRO = OLD.PRODUTO
                       AND P.CONTROLA_ESTOQUE = '2';
                 END
             END

             /*------------------------------------------------------------------*/
             /***** Verificando se  a ltima Nota Fiscal Lanada no Sistema *****/
             /*------------------------------------------------------------------*/
             SELECT P.NUMERO_NOTA_FISCAL_COMPRA
             FROM CAD_PRODUTO P
             WHERE P.EMPRESA = OLD.EMPRESA
               AND P.CADASTRO = OLD.PRODUTO
             INTO :VNUMERO_NOTA_FISCAL_COMPRA;

             IF (VNUMERO_NOTA_FISCAL_COMPRA = OLD.NUMERO) THEN
             BEGIN
                 /*----------------------------------------------------------*/
                 /***** Verificando se o Produto que est sendo excludo *****/
                 /***** foi lanado mais de uma vez na mesma nota fiscal *****/
                 /*----------------------------------------------------------*/
                 VPRODUTO = 0;

                 FOR SELECT I.PRODUTO
                 FROM MOV_IT_NOTA_FISCAL_COMPRA I
                 WHERE I.EMPRESA = OLD.EMPRESA
                   AND I.NUMERO = OLD.NUMERO
                   AND I.PRODUTO = OLD.PRODUTO
                 ORDER BY I.SEQ
                 INTO :VPRODUTO

                 DO BEGIN
                     VPRODUTO = 1;
                 END

                 IF (VPRODUTO = 1) THEN
                 BEGIN
                      IF ((VCONTROLA_ESTOQUE = '2') AND (OLD.ESTOQUE_ANTERIOR > 0) AND (VESTOQUE > 0)) THEN
                     BEGIN
                         /***** Recalcula o Custo Mdio do Produto *****/
                         SELECT SUM(I.QUANTIDADE)
                         FROM MOV_IT_NOTA_FISCAL_COMPRA I
                         WHERE I.EMPRESA = OLD.EMPRESA
                           AND I.NUMERO = OLD.NUMERO
                           AND I.PRODUTO = OLD.PRODUTO
                         INTO :VQUANTIDADE;

                         VCUSTO_MEDIO = ((((OLD.ESTOQUE_ANTERIOR * OLD.CUSTO_MEDIO_ANTERIOR) + (VQUANTIDADE * VPRECO_CUSTO)) / (VESTOQUE - OLD.QUANTIDADE)));
                     END
                     ELSE BEGIN
                         VCUSTO_MEDIO = VPRECO_CUSTO;
                     END

                     UPDATE CAD_PRODUTO P SET
                     P.CUSTO_MEDIO = :VCUSTO_MEDIO
                     WHERE P.EMPRESA = OLD.EMPRESA
                       AND P.CADASTRO = OLD.PRODUTO;
                 END
                 ELSE BEGIN
                     /*------------------------------------------------------*/
                     /***** Volta o Preco de Custo Anterior, Custo Medio *****/
                     /******* Anterior gravado nos itens da nota fiscal ******/
                     /*------------------------------------------------------*/
                     IF (VATT_PRECO_CUSTO_PROD_IMP_XML = '2') THEN
                    BEGIN
                         UPDATE CAD_PRODUTO P SET
                         P.PRECO_CUSTO = OLD.PRECO_CUSTO_ANTERIOR,
                         P.CUSTO_MEDIO = OLD.CUSTO_MEDIO_ANTERIOR,
                         P.NUMERO_NOTA_FISCAL_COMPRA = OLD.NUMERO_NOTA_COMPRA_ANTERIOR
                         WHERE P.EMPRESA = OLD.EMPRESA
                           AND P.CADASTRO = OLD.PRODUTO;
                     END
                     ELSE BEGIN
                         UPDATE CAD_PRODUTO P SET
                         P.CUSTO_MEDIO = OLD.CUSTO_MEDIO_ANTERIOR,
                         P.NUMERO_NOTA_FISCAL_COMPRA = OLD.NUMERO_NOTA_COMPRA_ANTERIOR
                         WHERE P.EMPRESA = OLD.EMPRESA
                           AND P.CADASTRO = OLD.PRODUTO;
                     END
                 END
             END
         END
     END
 END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE RDB$RELATION_FIELDS SET                    RDB$NULL_FLAG = NULL                              WHERE (RDB$FIELD_NAME = 'HASH_MD5')               AND (RDB$RELATION_NAME = 'MOV_PEDIDO_VENDA') 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE RDB$RELATION_FIELDS SET                       RDB$NULL_FLAG = NULL                                 WHERE (RDB$FIELD_NAME = 'HASH_MD5')                  AND (RDB$RELATION_NAME = 'MOV_IT_PEDIDO_VENDA') 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER TRIGGER MOV_NOTA_FISCAL_VENDA_04 FOR MOV_NOTA_FISCAL_VENDA
 ACTIVE AFTER UPDATE POSITION 1
 AS
 DECLARE VARIABLE VIDENTIFICACAO_ARQUIVO_XML VARCHAR(60);
 DECLARE VARIABLE VTRA_CARREGAMENTO_AUTOMATICO VARCHAR(1);
 DECLARE VARIABLE VNUMERO_PEDIDO_IMPORTADO INTEGER;
 DECLARE VARIABLE VID_PEDIDO_SITE INTEGER;
 DECLARE VARIABLE VNUMERO_PEDIDO_SISTEMA INTEGER;
 DECLARE VARIABLE VSTATUS_PEDIDO_SISTEMA VARCHAR(25);
 BEGIN
     IF (((OLD.STATUS = 'NFE Gerada') OR (OLD.STATUS = 'NFSE Gerada') OR (OLD.STATUS = 'NFE Pendente')) AND
         ((NEW.STATUS = 'NFE Autorizada') OR (NEW.STATUS = 'NFSE Autorizada') OR (NEW.STATUS = 'Faturada'))) THEN
     BEGIN
         FOR SELECT P.TRA_CARREGAMENTO_AUTOMATICO
         FROM CAD_PESSOA P
         WHERE P.CADASTRO = NEW.TRANSPORTADORA
         INTO :VTRA_CARREGAMENTO_AUTOMATICO

         DO BEGIN
             IF (VTRA_CARREGAMENTO_AUTOMATICO = '2') THEN
             BEGIN
                 UPDATE MOV_NOTA_FISCAL_VENDA N SET
                 N.ENTREGUE_TRANSPORTADORA = '2',
                 N.DATA_ENTREGUE_TRANSPORTADORA = NEW.EMISSAO
                 WHERE N.EMPRESA = NEW.EMPRESA
                   AND N.SERIE = NEW.SERIE
                   AND N.NUMERO = NEW.NUMERO;

                 /*-------------------------------------*/
                 /***** Atualizando Pedido de Venda *****/
                 /*-------------------------------------*/
                 FOR SELECT DISTINCT(I.NUMERO_PEDIDO_IMPORTADO)
                 FROM MOV_IT_NOTA_VENDA_PRODUTO I
                 WHERE I.EMPRESA = NEW.EMPRESA
                   AND I.SERIE = NEW.SERIE
                   AND I.NUMERO = NEW.NUMERO
                 INTO :VNUMERO_PEDIDO_IMPORTADO

                 DO BEGIN
                     UPDATE MOV_PEDIDO_VENDA P SET
                     P.STATUS = 'Em Transporte'
                     WHERE P.EMPRESA = NEW.EMPRESA
                       AND P.NUMERO = :VNUMERO_PEDIDO_IMPORTADO;
                 END
             END
         END
         IF (NEW.FINALIDADE_EMISSAO_NFE = 'Devoluo') THEN
         BEGIN
             FOR SELECT SUBSTRING(I.IDENTIFICACAO_ARQUIVO_XML FROM 1 FOR 4) ||
                        SUBSTRING(I.IDENTIFICACAO_ARQUIVO_XML FROM 6 FOR 4) ||
                        SUBSTRING(I.IDENTIFICACAO_ARQUIVO_XML FROM 11 FOR 4) ||
                        SUBSTRING(I.IDENTIFICACAO_ARQUIVO_XML FROM 16 FOR 4) ||
                        SUBSTRING(I.IDENTIFICACAO_ARQUIVO_XML FROM 21 FOR 4) ||
                        SUBSTRING(I.IDENTIFICACAO_ARQUIVO_XML FROM 26 FOR 4) ||
                        SUBSTRING(I.IDENTIFICACAO_ARQUIVO_XML FROM 31 FOR 4) ||
                        SUBSTRING(I.IDENTIFICACAO_ARQUIVO_XML FROM 36 FOR 4) ||
                        SUBSTRING(I.IDENTIFICACAO_ARQUIVO_XML FROM 41 FOR 4) ||
                        SUBSTRING(I.IDENTIFICACAO_ARQUIVO_XML FROM 46 FOR 4) ||
                        SUBSTRING(I.IDENTIFICACAO_ARQUIVO_XML FROM 51 FOR 4)
             FROM MOV_IT_NOTA_VENDA_REFERENCIADA I
             WHERE I.EMPRESA = NEW.EMPRESA
               AND I.SERIE = NEW.SERIE
               AND I.NUMERO = NEW.NUMERO
             INTO :VIDENTIFICACAO_ARQUIVO_XML

             DO BEGIN
                 UPDATE MOV_NOTA_FISCAL_VENDA N SET
                 N.DEVOLVIDO = '2'
                 WHERE N.EMPRESA = NEW.EMPRESA
                   AND SUBSTRING(N.IDENTIFICACAO_ARQUIVO_XML_NFE FROM 1 FOR 44) = :VIDENTIFICACAO_ARQUIVO_XML;
             END
         END
     END
     ELSE BEGIN
         IF (((OLD.STATUS = 'NFE Autorizada') OR (OLD.STATUS = 'NFSE Autorizada') OR (OLD.STATUS = 'Faturada'))
         AND ((NEW.STATUS = 'NFE Cancelada') OR (NEW.STATUS = 'NFSE Cancelada') OR (NEW.STATUS = 'Cancelada')
           OR (NEW.STATUS = 'NFE Denegada'))) THEN
         BEGIN
             IF (NEW.FINALIDADE_EMISSAO_NFE = 'Devoluo') THEN
             BEGIN
                 FOR SELECT SUBSTRING(I.IDENTIFICACAO_ARQUIVO_XML FROM 1 FOR 4) ||
                            SUBSTRING(I.IDENTIFICACAO_ARQUIVO_XML FROM 6 FOR 4) ||
                            SUBSTRING(I.IDENTIFICACAO_ARQUIVO_XML FROM 11 FOR 4) ||
                            SUBSTRING(I.IDENTIFICACAO_ARQUIVO_XML FROM 16 FOR 4) ||
                            SUBSTRING(I.IDENTIFICACAO_ARQUIVO_XML FROM 21 FOR 4) ||
                            SUBSTRING(I.IDENTIFICACAO_ARQUIVO_XML FROM 26 FOR 4) ||
                            SUBSTRING(I.IDENTIFICACAO_ARQUIVO_XML FROM 31 FOR 4) ||
                            SUBSTRING(I.IDENTIFICACAO_ARQUIVO_XML FROM 36 FOR 4) ||
                            SUBSTRING(I.IDENTIFICACAO_ARQUIVO_XML FROM 41 FOR 4) ||
                            SUBSTRING(I.IDENTIFICACAO_ARQUIVO_XML FROM 46 FOR 4) ||
                            SUBSTRING(I.IDENTIFICACAO_ARQUIVO_XML FROM 51 FOR 4)
                 FROM MOV_IT_NOTA_VENDA_REFERENCIADA I
                 WHERE I.EMPRESA = NEW.EMPRESA
                   AND I.SERIE = NEW.SERIE
                   AND I.NUMERO = NEW.NUMERO
                 INTO :VIDENTIFICACAO_ARQUIVO_XML

                 DO BEGIN
                     UPDATE MOV_NOTA_FISCAL_VENDA N SET
                     N.DEVOLVIDO = NULL
                     WHERE N.EMPRESA = NEW.EMPRESA
                       AND SUBSTRING(N.IDENTIFICACAO_ARQUIVO_XML_NFE FROM 1 FOR 44) = :VIDENTIFICACAO_ARQUIVO_XML;
                 END
             END

             FOR SELECT DISTINCT(I.NUMERO_PEDIDO_IMPORTADO)
                 FROM MOV_IT_NOTA_VENDA_PRODUTO I
                 WHERE I.EMPRESA = NEW.EMPRESA
                   AND I.SERIE = NEW.SERIE
                   AND I.NUMERO = NEW.NUMERO
             INTO :VNUMERO_PEDIDO_IMPORTADO

             DO BEGIN
                 UPDATE MOV_PEDIDO_VENDA P SET
                 P.STATUS = 'Pendente'
                 WHERE P.EMPRESA = NEW.EMPRESA
                   AND P.NUMERO = :VNUMERO_PEDIDO_IMPORTADO;
             END
         END
     END
 END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE RDB$RELATION_FIELDS SET                     RDB$NULL_FLAG = NULL                               WHERE (RDB$FIELD_NAME = 'HASH_MD5')                AND (RDB$RELATION_NAME = 'MOV_ORDEM_SERVICO') 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER trigger mov_ordem_servico_01 for mov_ordem_servico
 active before delete position 0
 AS
 DECLARE VARIABLE VPRODUTO INTEGER;
 DECLARE VARIABLE VQUANTIDADE DOUBLE PRECISION;
 DECLARE VARIABLE VEMPENHAR VARCHAR(1);
 BEGIN
     IF (((OLD.STATUS = 'Aberta') OR (OLD.STATUS = 'Aguardando Pea') OR
          (OLD.STATUS = 'Concluida') OR (OLD.STATUS = 'Fechada'))) THEN
     BEGIN
         /*-----------------------------------------------------*/
         /***** Estornando o Estoque Empenhado dos Produtos *****/
         /*-----------------------------------------------------*/
         FOR SELECT I.PRODUTO, I.QUANTIDADE, E.EMPENHAR_ORDEM_SERVICO
         FROM MOV_IT_ORDEM_SERVICO I
         LEFT OUTER JOIN CAD_PRODUTO PR ON (PR.EMPRESA = I.EMPRESA
                                        AND PR.CADASTRO = I.PRODUTO)
         LEFT OUTER JOIN CAD_EMPRESA E ON (E.CADASTRO = OLD.EMPRESA)
         WHERE I.EMPRESA = OLD.EMPRESA
           AND I.NUMERO = OLD.NUMERO
           AND I.ITEM_CANCELADO = 'No'
           AND PR.CONTROLA_ESTOQUE = '2'
         ORDER BY I.SEQ
         INTO :VPRODUTO, :VQUANTIDADE, :VEMPENHAR

         DO BEGIN
             IF (:VEMPENHAR = '2') THEN
             BEGIN
                 UPDATE CAD_PRODUTO PR SET
                 PR.ESTOQUE_EMPENHADO = UDF_FORMAT_FLOAT(PR.ESTOQUE_EMPENHADO - :VQUANTIDADE, 3)
                 WHERE PR.EMPRESA = OLD.EMPRESA
                   AND PR.CADASTRO = :VPRODUTO;
             END
         END
     END

     DELETE FROM MOV_IT_ORDEM_SERVICO
     WHERE EMPRESA = OLD.EMPRESA
       AND NUMERO = OLD.NUMERO;
 END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER trigger mov_ordem_servico_02 for mov_ordem_servico
 active after update position 0
 AS
 DECLARE VARIABLE VPRODUTO INTEGER;
 DECLARE VARIABLE VQUANTIDADE DOUBLE PRECISION;
 DECLARE VARIABLE VEQUIPAMENTO VARCHAR(80);
 DECLARE VARIABLE VEMPENHAR VARCHAR(1);
 BEGIN
     IF ((NEW.STATUS = 'Alterada') AND
        ((OLD.STATUS = 'Aberta') OR (OLD.STATUS = 'Aguardando Pea') OR
         (OLD.STATUS = 'Concluida') OR (OLD.STATUS = 'Fechada'))) THEN
     BEGIN
         /*----------------------------------------------------*/
         /***** Retirando o Estoque Empenhado dos Produtos *****/
         /*----------------------------------------------------*/
         FOR SELECT I.PRODUTO, I.QUANTIDADE, E.EMPENHAR_ORDEM_SERVICO
         FROM MOV_IT_ORDEM_SERVICO I
         LEFT OUTER JOIN CAD_PRODUTO PR ON (PR.EMPRESA = I.EMPRESA
                                        AND PR.CADASTRO = I.PRODUTO)
         LEFT OUTER JOIN CAD_EMPRESA E ON (E.CADASTRO = OLD.EMPRESA)
         WHERE I.EMPRESA = OLD.EMPRESA
           AND I.NUMERO = OLD.NUMERO
           AND I.ITEM_CANCELADO = 'No'
           AND PR.CONTROLA_ESTOQUE = '2'
         ORDER BY I.SEQ
         INTO :VPRODUTO, :VQUANTIDADE, :VEMPENHAR

         DO BEGIN
             IF (:VEMPENHAR = '2') THEN
             BEGIN
                 UPDATE CAD_PRODUTO PR SET
                 PR.ESTOQUE_EMPENHADO = UDF_FORMAT_FLOAT(PR.ESTOQUE_EMPENHADO - :VQUANTIDADE, 3)
                 WHERE PR.EMPRESA = OLD.EMPRESA
                   AND PR.CADASTRO = :VPRODUTO;
             END
         END
     END
     ELSE BEGIN
         IF ((NEW.STATUS = 'Faturada') AND
            ((OLD.STATUS = 'Aberta') OR (OLD.STATUS = 'Aguardando Pea') OR
             (OLD.STATUS = 'Concluida') OR (OLD.STATUS = 'Fechada'))) THEN
         BEGIN
             /*----------------------------------------------------*/
             /***** Retirando o Estoque Empenhado dos Produtos *****/
             /*----------------------------------------------------*/
             FOR SELECT I.PRODUTO, I.QUANTIDADE, E.EMPENHAR_ORDEM_SERVICO
             FROM MOV_IT_ORDEM_SERVICO I
             LEFT OUTER JOIN CAD_PRODUTO PR ON (PR.EMPRESA = I.EMPRESA
                                            AND PR.CADASTRO = I.PRODUTO)
             LEFT OUTER JOIN CAD_EMPRESA E ON (E.CADASTRO = OLD.EMPRESA)
             WHERE I.EMPRESA = OLD.EMPRESA
               AND I.NUMERO = OLD.NUMERO
               AND I.ITEM_CANCELADO = 'No'
               AND PR.CONTROLA_ESTOQUE = '2'
             ORDER BY I.SEQ
             INTO :VPRODUTO, :VQUANTIDADE, :VEMPENHAR

             DO BEGIN
                 IF (:VEMPENHAR = '2') THEN
                 BEGIN
                     UPDATE CAD_PRODUTO PR SET
                     PR.ESTOQUE_EMPENHADO = UDF_FORMAT_FLOAT(PR.ESTOQUE_EMPENHADO - :VQUANTIDADE, 3)
                     WHERE PR.EMPRESA = OLD.EMPRESA
                       AND PR.CADASTRO = :VPRODUTO;
                 END
             END
         END
         ELSE BEGIN
             IF ((NEW.STATUS = 'Cancelada') AND
                ((OLD.STATUS = 'Aberta') OR (OLD.STATUS = 'Aguardando Pea') OR
                 (OLD.STATUS = 'Concluida') OR (OLD.STATUS = 'Fechada'))) THEN
             BEGIN
                 /*-----------------------------------------------------*/
                 /***** Estornando o Estoque Empenhado dos Produtos *****/
                 /*-----------------------------------------------------*/
                 FOR SELECT I.PRODUTO, I.QUANTIDADE, E.EMPENHAR_ORDEM_SERVICO
                 FROM MOV_IT_ORDEM_SERVICO I
                 LEFT OUTER JOIN CAD_PRODUTO PR ON (PR.EMPRESA = I.EMPRESA
                                                AND PR.CADASTRO = I.PRODUTO)
                 LEFT OUTER JOIN CAD_EMPRESA E ON (E.CADASTRO = OLD.EMPRESA)
                 WHERE I.EMPRESA = OLD.EMPRESA
                   AND I.NUMERO = OLD.NUMERO
                   AND I.ITEM_CANCELADO = 'No'
                   AND PR.CONTROLA_ESTOQUE = '2'
                 ORDER BY I.SEQ
                 INTO :VPRODUTO, :VQUANTIDADE, :VEMPENHAR

                 DO BEGIN
                     IF (:VEMPENHAR = '2') THEN
                     BEGIN
                         UPDATE CAD_PRODUTO PR SET
                         PR.ESTOQUE_EMPENHADO = UDF_FORMAT_FLOAT(PR.ESTOQUE_EMPENHADO - :VQUANTIDADE, 3)
                         WHERE PR.EMPRESA = OLD.EMPRESA
                           AND PR.CADASTRO = :VPRODUTO;
                     END
                 END

                 /*---------------------------------------------------*/
                 /***** Excluindo as Parcelas do Contas a Receber *****/
                 /*---------------------------------------------------*/
                 DELETE FROM MOV_CONTAS_RECEBER
                 WHERE EMPRESA = OLD.EMPRESA
                   AND CAIXA = 'OS'
                   AND DOCUMENTO = 'OS'
                   AND CLIENTE = OLD.CLIENTE
                   AND NUMERO = OLD.NUMERO
                   AND SERIE = '1';
             END
             ELSE BEGIN
                 /*---------------------------------------------------------------------*/
                 /********* Quando  Emitido Cupom Fiscal pela Ordem de Servio *********/
                 /****** e o mesmo  Cancelado na Tela do Cupom Fiscal, o sistema *******/
                 /***** Altera o Status Ordem de Servio de "Faturada" p/ "Fechada" *****/
                 /*---------------------------------------------------------------------*/
                 IF ((NEW.STATUS = 'Fechada') AND (OLD.STATUS = 'Faturada')) THEN
                 BEGIN
                     /*-------------------------------------------*/
                     /***** Empenhando o Estoque dos Produtos *****/
                     /*-------------------------------------------*/
                     FOR SELECT I.PRODUTO, I.QUANTIDADE, E.EMPENHAR_ORDEM_SERVICO
                     FROM MOV_IT_ORDEM_SERVICO I
                     LEFT OUTER JOIN CAD_PRODUTO PR ON (PR.EMPRESA = I.EMPRESA
                                                    AND PR.CADASTRO = I.PRODUTO)
                     LEFT OUTER JOIN CAD_EMPRESA E ON (E.CADASTRO = OLD.EMPRESA)
                     WHERE I.EMPRESA = OLD.EMPRESA
                       AND I.NUMERO = OLD.NUMERO
                       AND I.ITEM_CANCELADO = 'No'
                       AND PR.CONTROLA_ESTOQUE = '2'
                     ORDER BY I.SEQ
                     INTO :VPRODUTO, :VQUANTIDADE, :VEMPENHAR

                     DO BEGIN
                         IF (:VEMPENHAR = '2') THEN
                         BEGIN
                             UPDATE CAD_PRODUTO PR SET
                             PR.ESTOQUE_EMPENHADO = UDF_FORMAT_FLOAT(PR.ESTOQUE_EMPENHADO + :VQUANTIDADE, 3)
                             WHERE PR.EMPRESA = OLD.EMPRESA
                               AND PR.CADASTRO = :VPRODUTO;
                         END
                     END

                     /*---------------------------------------------------*/
                     /***** Excluindo as Parcelas do Contas a Receber *****/
                     /*---------------------------------------------------*/
                     DELETE FROM MOV_CONTAS_RECEBER
                     WHERE EMPRESA = OLD.EMPRESA
                       AND CAIXA = 'OS'
                       AND DOCUMENTO = 'OS'
                       AND CLIENTE = OLD.CLIENTE
                       AND NUMERO = OLD.NUMERO
                       AND SERIE = '1';
                 END
             END
         END
     END

     IF ((NEW.CLIENTE <> OLD.CLIENTE) OR
         (NEW.DESCRICAO <> OLD.DESCRICAO) OR
         (NEW.EQUIPAMENTO <> OLD.EQUIPAMENTO) OR
         (NEW.ATENDENTE <> OLD.ATENDENTE)) THEN
     BEGIN
         SELECT E.DESCRICAO
         FROM CAD_EQUIPAMENTO E
         WHERE E.EMPRESA = NEW.EMPRESA
           AND E.CADASTRO = NEW.EQUIPAMENTO
         INTO :VEQUIPAMENTO;

         UPDATE MOV_CONTAS_RECEBER SET
         CLIENTE = NEW.CLIENTE,
         REFERENCIA = UDF_COPY(NEW.DESCRICAO, 1, 80),
         OBSERVACAO = UDF_COPY('EQUIPAMENTO..:  ' ||:VEQUIPAMENTO, 1, 80),
         VENDEDOR = NEW.ATENDENTE
         WHERE EMPRESA = OLD.EMPRESA
           AND CAIXA = 'OS'
           AND DOCUMENTO = 'OS'
           AND CLIENTE = OLD.CLIENTE
           AND NUMERO = OLD.NUMERO
           AND SERIE = '1';
     END
 END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE RDB$RELATION_FIELDS SET                        RDB$NULL_FLAG = NULL                                  WHERE (RDB$FIELD_NAME = 'HASH_MD5')                   AND (RDB$RELATION_NAME = 'MOV_IT_ORDEM_SERVICO') 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER TRIGGER MOV_IT_ORDEM_SERVICO_02 FOR MOV_IT_ORDEM_SERVICO
 ACTIVE AFTER INSERT POSITION 0
 AS
 DECLARE VARIABLE VCONTROLA_ESTOQUE VARCHAR(1);
 DECLARE VARIABLE VEMPENHAR VARCHAR(1);
 BEGIN
     /*---------------------------------------------*/
     /****** Empenhando o Estoque dos Produtos ******/
     /*---------------------------------------------*/
     IF ((NEW.ITEM_CANCELADO = 'No') AND
         (OLD.ITEM_CANCELADO <> 'No')) THEN
     BEGIN
         IF ((NEW.PRODUTO IS NOT NULL) AND (NEW.PRODUTO > 0)) THEN
         BEGIN
             SELECT P.CONTROLA_ESTOQUE, E.EMPENHAR_ORDEM_SERVICO
             FROM CAD_PRODUTO P
             LEFT OUTER JOIN CAD_EMPRESA E ON (E.CADASTRO = NEW.EMPRESA)
             WHERE P.EMPRESA = NEW.EMPRESA
               AND P.CADASTRO = NEW.PRODUTO
             INTO :VCONTROLA_ESTOQUE, :VEMPENHAR;

             IF (VCONTROLA_ESTOQUE = '2') THEN
             BEGIN
                 IF (:VEMPENHAR = '2') THEN
                 BEGIN
                     UPDATE CAD_PRODUTO PR SET
                     PR.ESTOQUE_EMPENHADO = UDF_FORMAT_FLOAT(PR.ESTOQUE_EMPENHADO + NEW.QUANTIDADE, 3)
                     WHERE PR.EMPRESA = NEW.EMPRESA
                       AND PR.CADASTRO = NEW.PRODUTO;
                 END
             END
         END
     END

     /*-----------------------------------------------*/
     /****** Gravando os Itens na Tabela Espelho ******/
     /*-----------------------------------------------*/
     INSERT INTO MOV_IT_ORDEM_SERVICO_ESPELHO
     (EMPRESA, NUMERO, SEQ)
     VALUES
     (NEW.EMPRESA, NEW.NUMERO, NEW.SEQ);
 END

Erro..:  Column unknown
OLD.ITEM_CANCELADO
At line 11, column 15

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER TRIGGER MOV_IT_ORDEM_SERVICO_03 FOR MOV_IT_ORDEM_SERVICO
 ACTIVE AFTER UPDATE POSITION 0
 AS
 DECLARE VARIABLE VCONTROLA_ESTOQUE VARCHAR(1);
 DECLARE VARIABLE VEMPENHAR VARCHAR(1);
 BEGIN
     /*----------------------------------------------------*/
     /****** Tirando o Estoque Empenhado dos Produtos ******/
     /*----------------------------------------------------*/
     IF ((NEW.ITEM_CANCELADO = 'Sim') AND
         (OLD.ITEM_CANCELADO <> 'Sim')) THEN
     BEGIN
         IF ((NEW.PRODUTO IS NOT NULL) AND (NEW.PRODUTO > 0)) THEN
         BEGIN
             SELECT P.CONTROLA_ESTOQUE, E.EMPENHAR_ORDEM_SERVICO
             FROM CAD_PRODUTO P
             LEFT OUTER JOIN CAD_EMPRESA E ON (E.CADASTRO = NEW.EMPRESA)
             WHERE P.EMPRESA = NEW.EMPRESA
               AND P.CADASTRO = NEW.PRODUTO
             INTO :VCONTROLA_ESTOQUE, :VEMPENHAR;

             IF (VCONTROLA_ESTOQUE = '2') THEN
             BEGIN
                 IF (:VEMPENHAR = '2') THEN
                 BEGIN
                     UPDATE CAD_PRODUTO PR SET
                     PR.ESTOQUE_EMPENHADO = UDF_FORMAT_FLOAT(PR.ESTOQUE_EMPENHADO - OLD.QUANTIDADE, 3)
                     WHERE PR.EMPRESA = NEW.EMPRESA
                       AND PR.CADASTRO = NEW.PRODUTO;
                 END
             END
         END
     END
 END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE RDB$RELATION_FIELDS SET                          RDB$NULL_FLAG = NULL                                    WHERE (RDB$FIELD_NAME = 'HASH_MD5')                     AND (RDB$RELATION_NAME = 'MOV_REGISTRO_PRE_VENDA') 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER MOV_REGISTRO_PRE_VENDA_03 FOR MOV_REGISTRO_PRE_VENDA
ACTIVE AFTER UPDATE POSITION 0
AS
DECLARE VARIABLE VPRODUTO INTEGER;
DECLARE VARIABLE VQUANTIDADE DOUBLE PRECISION;
BEGIN
    IF ((NEW.STATUS = 'Faturado') AND (OLD.STATUS = 'Pendente')) THEN
    BEGIN
        /*----------------------------------------------------*/
        /***** Retirando o Estoque Empenhado dos Produtos *****/
        /*----------------------------------------------------*/
        FOR SELECT I.PRODUTO, I.QUANTIDADE
        FROM MOV_IT_REGISTRO_PRE_VENDA I
        LEFT OUTER JOIN CAD_PRODUTO PR ON (PR.EMPRESA = I.EMPRESA
                                       AND PR.CADASTRO = I.PRODUTO)
        WHERE I.EMPRESA = OLD.EMPRESA
          AND I.NUMERO = OLD.NUMERO
          AND I.ITEM_CANCELADO = 'No'
          AND PR.CONTROLA_ESTOQUE = '2'
        ORDER BY I.SEQ
        INTO :VPRODUTO, :VQUANTIDADE

        DO BEGIN
            UPDATE CAD_PRODUTO PR SET
            PR.ESTOQUE_EMPENHADO = UDF_FORMAT_FLOAT(PR.ESTOQUE_EMPENHADO - :VQUANTIDADE, 3)
            WHERE PR.EMPRESA = OLD.EMPRESA
              AND PR.CADASTRO = :VPRODUTO;
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER PROCEDURE PRO_MOV_REGISTRO_PRE_VENDA (
    e_filtro varchar(20),
    e_empresa integer,
    e_status varchar(15),
    e_emissao date)
RETURNS (
    empresa integer,
    numero integer,
    cliente integer,
    nome_cliente varchar(80),
    nome_cidade varchar(55),
    emissao date,
    vendedor integer,
    valor_desconto double precision,
    valor_acrescimo double precision,
    total_registro_pre_venda double precision,
    status varchar(15),
    caixa_ecf varchar(3),
    ano_ecf integer,
    numero_ecf integer,
    numero_cupom_fiscal integer)
AS
BEGIN
    IF (:E_FILTRO = ''Gerenciar'') THEN
    BEGIN
        FOR SELECT R.EMPRESA, R.NUMERO, R.CLIENTE, CL.NOME NOME_CLIENTE, CI.NOME || '' - '' || CI.ESTADO NOME_CIDADE,
                   R.EMISSAO, R.VENDEDOR, R.VALOR_DESCONTO, R.VALOR_ACRESCIMO, R.TOTAL_REGISTRO_PRE_VENDA, R.STATUS,
                   R.CAIXA_ECF, R.ANO_ECF, R.NUMERO_ECF, R.NUMERO_CUPOM_FISCAL
        FROM MOV_REGISTRO_PRE_VENDA R
        LEFT OUTER JOIN CAD_PESSOA CL ON(CL.CADASTRO = R.CLIENTE)
        LEFT OUTER JOIN CAD_CIDADE CI ON(CI.CADASTRO = CL.CIDADE)
        WHERE R.EMPRESA = :E_EMPRESA
          AND R.STATUS = :E_STATUS
        ORDER BY R.NUMERO DESC
        INTO :EMPRESA, :NUMERO, :CLIENTE, :NOME_CLIENTE, :NOME_CIDADE,
             :EMISSAO, :VENDEDOR, :VALOR_DESCONTO, :VALOR_ACRESCIMO, :TOTAL_REGISTRO_PRE_VENDA, :STATUS,
             :CAIXA_ECF, :ANO_ECF, :NUMERO_ECF, :NUMERO_CUPOM_FISCAL
        DO BEGIN
            SUSPEND;
        END
    END
    ELSE BEGIN
        IF (:E_FILTRO = ''Reduo Z'') THEN
        BEGIN
            FOR SELECT R.EMPRESA, R.NUMERO, R.CLIENTE, CL.NOME NOME_CLIENTE, CI.NOME || '' - '' || CI.ESTADO NOME_CIDAD
                       R.EMISSAO, R.VENDEDOR, R.VALOR_DESCONTO, R.VALOR_ACRESCIMO, R.TOTAL_REGISTRO_PRE_VENDA, R.STATUS,
                       R.CAIXA_ECF, R.ANO_ECF, R.NUMERO_ECF, R.NUMERO_CUPOM_FISCAL
            FROM MOV_REGISTRO_PRE_VENDA R
            LEFT OUTER JOIN CAD_PESSOA CL ON(CL.CADASTRO = R.CLIENTE)
            LEFT OUTER JOIN CAD_CIDADE CI ON(CI.CADASTRO = CL.CIDADE)
            WHERE R.EMPRESA = :E_EMPRESA
              AND R.STATUS = ''Pendente''
              AND R.EMISSAO <= :E_EMISSAO
            ORDER BY R.NUMERO
            INTO :EMPRESA, :NUMERO, :CLIENTE, :NOME_CLIENTE, :NOME_CIDADE,
                 :EMISSAO, :VENDEDOR, :VALOR_DESCONTO, :VALOR_ACRESCIMO, :TOTAL_REGISTRO_PRE_VENDA, :STATUS,
                 :CAIXA_ECF, :ANO_ECF, :NUMERO_ECF, :NUMERO_CUPOM_FISCAL
            DO BEGIN
                SUSPEND;
            END
        END
    END
END

Erro..:  Token unknown - line 24, column 23
Gerenciar

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE RDB$RELATION_FIELDS SET                             RDB$NULL_FLAG = NULL                                       WHERE (RDB$FIELD_NAME = 'HASH_MD5')                        AND (RDB$RELATION_NAME = 'MOV_IT_REGISTRO_PRE_VENDA') 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER MOV_IT_REGISTRO_PRE_VENDA_02 FOR MOV_IT_REGISTRO_PRE_VENDA
ACTIVE AFTER INSERT POSITION 0
AS
DECLARE VARIABLE VSTATUS VARCHAR(15);
BEGIN
    /*-------------------------------------------*/
    /***** Empenhando o Estoque dos Produtos *****/
    /*-------------------------------------------*/
    IF (NEW.ITEM_CANCELADO = 'No') THEN
    BEGIN
        SELECT STATUS
        FROM MOV_REGISTRO_PRE_VENDA
        WHERE EMPRESA = NEW.EMPRESA
          AND NUMERO = NEW.NUMERO
        INTO :VSTATUS;

        IF (VSTATUS = 'Pendente') THEN
        BEGIN
            UPDATE CAD_PRODUTO PR SET
            PR.ESTOQUE_EMPENHADO = UDF_FORMAT_FLOAT(PR.ESTOQUE_EMPENHADO + NEW.QUANTIDADE, 3)
            WHERE PR.EMPRESA = NEW.EMPRESA
              AND PR.CADASTRO = NEW.PRODUTO
              AND PR.CONTROLA_ESTOQUE = '2';
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER MOV_IT_REGISTRO_PRE_VENDA_03 FOR MOV_IT_REGISTRO_PRE_VENDA
ACTIVE AFTER UPDATE POSITION 0
AS
DECLARE VARIABLE VSTATUS VARCHAR(15);
BEGIN
    /*-------------------------------------------*/
    /***** Empenhando o Estoque dos Produtos *****/
    /*-------------------------------------------*/
    IF ((NEW.PRODUTO <> OLD.PRODUTO) OR
        (NEW.QUANTIDADE <> OLD.QUANTIDADE) OR
        (NEW.ITEM_CANCELADO <> OLD.ITEM_CANCELADO)) THEN
    BEGIN
        SELECT STATUS
        FROM MOV_REGISTRO_PRE_VENDA
        WHERE EMPRESA = NEW.EMPRESA
          AND NUMERO = NEW.NUMERO
        INTO :VSTATUS;

        IF (VSTATUS = 'Pendente') THEN
        BEGIN
            IF (NEW.PRODUTO <> OLD.PRODUTO) THEN
            BEGIN
                IF (OLD.ITEM_CANCELADO = 'No') THEN
                BEGIN
                    UPDATE CAD_PRODUTO PR SET
                    PR.ESTOQUE_EMPENHADO = UDF_FORMAT_FLOAT(PR.ESTOQUE_EMPENHADO - OLD.QUANTIDADE, 3)
                    WHERE PR.EMPRESA = OLD.EMPRESA
                      AND PR.CADASTRO = OLD.PRODUTO
                      AND PR.CONTROLA_ESTOQUE = '2';
                END

                IF (NEW.ITEM_CANCELADO = 'No') THEN
                BEGIN
                    UPDATE CAD_PRODUTO PR SET
                    PR.ESTOQUE_EMPENHADO = UDF_FORMAT_FLOAT(PR.ESTOQUE_EMPENHADO + NEW.QUANTIDADE, 3)
                    WHERE PR.EMPRESA = NEW.EMPRESA
                      AND PR.CADASTRO = NEW.PRODUTO
                      AND PR.CONTROLA_ESTOQUE = '2';
                END
            END
            ELSE BEGIN
                IF (NEW.ITEM_CANCELADO <> OLD.ITEM_CANCELADO) THEN
                BEGIN
                    IF ((OLD.ITEM_CANCELADO = 'Sim') AND (NEW.ITEM_CANCELADO = 'No')) THEN
                    BEGIN
                        UPDATE CAD_PRODUTO PR SET
                        PR.ESTOQUE_EMPENHADO = UDF_FORMAT_FLOAT(PR.ESTOQUE_EMPENHADO + NEW.QUANTIDADE, 3)
                        WHERE PR.EMPRESA = NEW.EMPRESA
                          AND PR.CADASTRO = NEW.PRODUTO
                          AND PR.CONTROLA_ESTOQUE = '2';
                    END
                    ELSE BEGIN
                        IF ((OLD.ITEM_CANCELADO = 'No') AND (NEW.ITEM_CANCELADO = 'Sim')) THEN
                        BEGIN
                            UPDATE CAD_PRODUTO PR SET
                            PR.ESTOQUE_EMPENHADO = UDF_FORMAT_FLOAT(PR.ESTOQUE_EMPENHADO - NEW.QUANTIDADE, 3)
                            WHERE PR.EMPRESA = NEW.EMPRESA
                              AND PR.CADASTRO = NEW.PRODUTO
                              AND PR.CONTROLA_ESTOQUE = '2';
                        END
                    END
                END
                ELSE BEGIN
                    UPDATE CAD_PRODUTO PR SET
                    PR.ESTOQUE_EMPENHADO = UDF_FORMAT_FLOAT(PR.ESTOQUE_EMPENHADO + (NEW.QUANTIDADE - OLD.QUANTIDADE), 3)
                    WHERE PR.EMPRESA = NEW.EMPRESA
                      AND PR.CADASTRO = NEW.PRODUTO
                      AND PR.CONTROLA_ESTOQUE = '2';
                END
            END
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER MOV_IT_REGISTRO_PRE_VENDA_04 FOR MOV_IT_REGISTRO_PRE_VENDA
ACTIVE AFTER DELETE POSITION 0
AS
DECLARE VARIABLE VSTATUS VARCHAR(15);
BEGIN
    /*------------------------------------------------------*/
    /***** Estornando o Empenho do Estoque dos Produtos *****/
    /*------------------------------------------------------*/
    IF (OLD.ITEM_CANCELADO = 'No') THEN
    BEGIN
        SELECT STATUS
        FROM MOV_REGISTRO_PRE_VENDA
        WHERE EMPRESA = OLD.EMPRESA
          AND NUMERO = OLD.NUMERO
        INTO :VSTATUS;

        IF (VSTATUS = 'Pendente') THEN
        BEGIN
            UPDATE CAD_PRODUTO PR SET
            PR.ESTOQUE_EMPENHADO = UDF_FORMAT_FLOAT(PR.ESTOQUE_EMPENHADO - OLD.QUANTIDADE, 3)
            WHERE PR.EMPRESA = OLD.EMPRESA
              AND PR.CADASTRO = OLD.PRODUTO
              AND PR.CONTROLA_ESTOQUE = '2';
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE RDB$RELATION_FIELDS SET                    RDB$NULL_FLAG = NULL                              WHERE (RDB$FIELD_NAME = 'HASH_MD5')               AND (RDB$RELATION_NAME = 'MOV_CUPOM_FISCAL') 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER MOV_CUPOM_FISCAL_03 FOR MOV_CUPOM_FISCAL
ACTIVE AFTER UPDATE POSITION 0
AS
DECLARE VARIABLE VANO INTEGER;
DECLARE VARIABLE VMES INTEGER;
DECLARE VARIABLE VPRODUTO INTEGER;
DECLARE VARIABLE VREGISTRO INTEGER;
DECLARE VARIABLE VCODIGO_BARRA VARCHAR(25);
DECLARE VARIABLE VQUANTIDADE REAL;
DECLARE VARIABLE VTOTAL REAL;
DECLARE VARIABLE VPRECO_CUSTO REAL;
DECLARE VARIABLE VCUSTO_MEDIO REAL;
DECLARE VARIABLE VVALOR_DESCONTO_RATEADO REAL;
DECLARE VARIABLE VTIPO_CODIGO_BARRAS VARCHAR(10);
DECLARE VARIABLE VCONTROLA_ESTOQUE VARCHAR(1);
DECLARE VARIABLE VBAIXA_ESTOQUE_COMPOSICAO VARCHAR(1);
DECLARE VARIABLE VPRODUTO_COMPOSICAO INTEGER;
DECLARE VARIABLE VPERCENTUAL_COMPOSICAO REAL;
BEGIN
    /*---------------------------------------------*/
    /***** Cupom Fiscal Cancelado pelo Usurio *****/
    /*---------------------------------------------*/
    IF ((NEW.STATUS = 'Cancelado') AND (OLD.STATUS = 'Faturado')) THEN
    BEGIN
        /*-------------------------------------------------------------*/
        /***** Quando o Cupom Fiscal  Emitido na Ordem de Servio *****/
        /************* Volta o Status da Ordem de Servio **************/
        /*-------------------------------------------------------------*/
        IF (OLD.DOCUMENTO = 'OS') THEN
        BEGIN
            UPDATE MOV_ORDEM_SERVICO O SET
            O.STATUS = 'Fechada'
            WHERE O.EMPRESA = OLD.EMPRESA
              AND O.NUMERO = OLD.NUMERO_DOCUMENTO;
        END

        /*-----------------------------------------------------------------*/
        /***** Quando o Cupom Fiscal  Emitido na Nota Fiscal de Venda *****/
        /************ o estoque dos produtos no ser estornado ************/
        /*********** pois o mesmo j foi baixado na Nota Fiscal ************/
        /*-----------------------------------------------------------------*/
        IF ((OLD.DOCUMENTO <> 'NF') OR (OLD.DOCUMENTO IS NULL)) THEN
        BEGIN
            /*-------------------------------------------------*/
            /***** Estorna a Sada do Estoque dos Produtos *****/
            /*-------------------------------------------------*/
            FOR SELECT I.PRODUTO, I.CODIGO_BARRA, I.QUANTIDADE, PR.CONTROLA_ESTOQUE, PR.BAIXA_ESTOQUE_COMPOSICAO
            FROM MOV_IT_CUPOM_FISCAL I
            LEFT OUTER JOIN CAD_PRODUTO PR ON (PR.EMPRESA = I.EMPRESA
                                           AND PR.CADASTRO = I.PRODUTO)
            WHERE I.EMPRESA = NEW.EMPRESA
              AND I.CAIXA = NEW.CAIXA
              AND I.ANO = NEW.ANO
              AND I.NUMERO = NEW.NUMERO
              AND I.PRODUTO IS NOT NULL
              AND I.PRODUTO > 0
              AND I.STATUS = 'Faturado'
            ORDER BY I.SEQ
            INTO :VPRODUTO, :VCODIGO_BARRA, :VQUANTIDADE, :VCONTROLA_ESTOQUE, :VBAIXA_ESTOQUE_COMPOSICAO

            DO BEGIN
                IF (VBAIXA_ESTOQUE_COMPOSICAO = '2') THEN
                BEGIN
                    FOR SELECT I.PRODUTO_COMPOSICAO, I.PERCENTUAL
                    FROM CAD_IT_PRODUTO_COMPOSICAO I
                    LEFT OUTER JOIN CAD_PRODUTO PR ON (PR.EMPRESA = I.EMPRESA
                                                   AND PR.CADASTRO = I.PRODUTO_COMPOSICAO)
                    WHERE I.EMPRESA = OLD.EMPRESA
                      AND I.PRODUTO = :VPRODUTO
                      AND PR.CONTROLA_ESTOQUE = '2'
                    INTO :VPRODUTO_COMPOSICAO, :VPERCENTUAL_COMPOSICAO

                    DO BEGIN
                        UPDATE CAD_PRODUTO P SET
                        P.ESTOQUE = P.ESTOQUE + (:VQUANTIDADE * :VPERCENTUAL_COMPOSICAO)
                        WHERE P.EMPRESA = OLD.EMPRESA
                          AND P.CADASTRO = :VPRODUTO_COMPOSICAO;
                    END
                END

                IF (VCONTROLA_ESTOQUE = '2') THEN
                BEGIN
                    SELECT E.TIPO_CODIGO_BARRAS
                    FROM CAD_EMPRESA E
                    WHERE E.CADASTRO = NEW.EMPRESA
                    INTO :VTIPO_CODIGO_BARRAS;

                    IF (VTIPO_CODIGO_BARRAS = 'Grade') THEN
                    BEGIN
                        UPDATE CAD_IT_PRODUTO_CODIGO_BARRA I SET
                        I.ESTOQUE = I.ESTOQUE + :VQUANTIDADE
                        WHERE I.EMPRESA = NEW.EMPRESA
                          AND I.PRODUTO = :VPRODUTO
                          AND I.CODIGO_BARRA = :VCODIGO_BARRA;
                    END

                    UPDATE CAD_PRODUTO P SET
                    P.ESTOQUE = P.ESTOQUE + :VQUANTIDADE
                    WHERE P.EMPRESA = NEW.EMPRESA
                      AND P.CADASTRO = :VPRODUTO;
                END
            END

            /*---------------------------------------*/
            /***** Atualiza a Venda dos Produtos *****/
            /*---------------------------------------*/
            VANO = EXTRACT(YEAR FROM NEW.EMISSAO);
            VMES = EXTRACT(MONTH FROM NEW.EMISSAO);

            FOR SELECT I.PRODUTO, I.QUANTIDADE, I.TOTAL, I.PRECO_CUSTO, I.CUSTO_MEDIO, I.VALOR_DESCONTO_RATEADO
            FROM MOV_IT_CUPOM_FISCAL I
            WHERE I.EMPRESA = NEW.EMPRESA
              AND I.CAIXA = NEW.CAIXA
              AND I.ANO = NEW.ANO
              AND I.NUMERO = NEW.NUMERO
              AND I.PRODUTO IS NOT NULL
              AND I.PRODUTO > 0
              AND I.STATUS = 'Faturado'
            ORDER BY I.SEQ
            INTO :VPRODUTO, :VQUANTIDADE, :VTOTAL, :VPRECO_CUSTO, :VCUSTO_MEDIO, :VVALOR_DESCONTO_RATEADO

            DO BEGIN
                VREGISTRO = 0;

                SELECT PRODUTO
                FROM MOV_VENDA_MENSAL_PRODUTO
                WHERE EMPRESA = NEW.EMPRESA
                  AND ANO = :VANO
                  AND MES = :VMES
                  AND PRODUTO = :VPRODUTO
                INTO :VREGISTRO;

                IF ((VREGISTRO > 0) AND (VREGISTRO IS NOT NULL)) THEN
                BEGIN
                    UPDATE MOV_VENDA_MENSAL_PRODUTO SET
                    QUANTIDADE = UDF_FORMAT_FLOAT(QUANTIDADE - :VQUANTIDADE, 3),
                    TOTAL = UDF_FORMAT_FLOAT(TOTAL - :VTOTAL, 3),
                    TOTAL_PRECO_CUSTO = UDF_FORMAT_FLOAT(TOTAL_PRECO_CUSTO - (:VQUANTIDADE * :VPRECO_CUSTO), 3),
                    TOTAL_CUSTO_MEDIO = UDF_FORMAT_FLOAT(TOTAL_CUSTO_MEDIO - (:VQUANTIDADE * :VCUSTO_MEDIO), 3),
                    TOTAL_DESCONTO_RATEADO = UDF_FORMAT_FLOAT(TOTAL_DESCONTO_RATEADO - :VVALOR_DESCONTO_RATEADO, 3)
                    WHERE EMPRESA = NEW.EMPRESA
                      AND ANO = :VANO
                      AND MES = :VMES
                      AND PRODUTO = :VPRODUTO;
                END
            END
        END

        /*---------------------------------------------------*/
        /***** Excluindo as Parcelas do Contas a Receber *****/
        /*---------------------------------------------------*/
        DELETE FROM MOV_CONTAS_RECEBER
        WHERE EMPRESA = OLD.EMPRESA
          AND CAIXA = OLD.CAIXA
          AND DOCUMENTO = 'CF'
          AND CLIENTE = OLD.CLIENTE
          AND NUMERO = OLD.NUMERO
          AND SERIE = OLD.ANO;
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE RDB$RELATION_FIELDS SET                       RDB$NULL_FLAG = NULL                                 WHERE (RDB$FIELD_NAME = 'HASH_MD5')                  AND (RDB$RELATION_NAME = 'MOV_IT_CUPOM_FISCAL') 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER MOV_IT_CUPOM_FISCAL_01 FOR MOV_IT_CUPOM_FISCAL
ACTIVE AFTER INSERT POSITION 0
AS
DECLARE VARIABLE VSTATUS VARCHAR(10);
DECLARE VARIABLE VDOCUMENTO VARCHAR(2);
DECLARE VARIABLE VCONTROLA_ESTOQUE VARCHAR(1);
DECLARE VARIABLE VTIPO_CODIGO_BARRAS VARCHAR(10);
DECLARE VARIABLE VANO INTEGER;
DECLARE VARIABLE VMES INTEGER;
DECLARE VARIABLE VREGISTRO INTEGER;
DECLARE VARIABLE VBAIXA_ESTOQUE_COMPOSICAO VARCHAR(1);
DECLARE VARIABLE VPRODUTO_COMPOSICAO INTEGER;
DECLARE VARIABLE VPERCENTUAL_COMPOSICAO REAL;
BEGIN
    /*------------------------------------------------------------------*/
    /***** Verificando se o Item do Cupom Fiscal no est Cancelado *****/
    /*------------------------------------------------------------------*/
    IF (NEW.STATUS = 'Faturado') THEN
    BEGIN
        SELECT STATUS, DOCUMENTO, EXTRACT(YEAR FROM EMISSAO) ANO, EXTRACT(MONTH FROM EMISSAO) MES
        FROM MOV_CUPOM_FISCAL
        WHERE EMPRESA = NEW.EMPRESA
          AND CAIXA = NEW.CAIXA
          AND ANO = NEW.ANO
          AND NUMERO = NEW.NUMERO
        INTO :VSTATUS, :VDOCUMENTO, :VANO, :VMES;

        /*----------------------------------------------------------*/
        /***** Verificando se o Cupom Fiscal no est Cancelado *****/
        /*----------------------------------------------------------*/
        IF (VSTATUS = 'Faturado') THEN
        BEGIN
            /*-----------------------------------------------------------------*/
            /***** Quando o Cupom Fiscal  Emitido na Nota Fiscal de Venda *****/
            /************* o estoque dos produtos no ser baixado *************/
            /*********** pois o mesmo j foi baixado na Nota Fiscal ************/
            /*-----------------------------------------------------------------*/
            IF ((VDOCUMENTO <> 'NF') OR (VDOCUMENTO IS NULL)) THEN
            BEGIN
                IF ((NEW.PRODUTO IS NOT NULL) AND (NEW.PRODUTO > 0)) THEN
                BEGIN
                    SELECT P.CONTROLA_ESTOQUE, P.BAIXA_ESTOQUE_COMPOSICAO
                    FROM CAD_PRODUTO P
                    WHERE P.EMPRESA = NEW.EMPRESA
                      AND P.CADASTRO = NEW.PRODUTO
                    INTO :VCONTROLA_ESTOQUE, :VBAIXA_ESTOQUE_COMPOSICAO;

                    IF (VBAIXA_ESTOQUE_COMPOSICAO = '2') THEN
                    BEGIN
                        FOR SELECT I.PRODUTO_COMPOSICAO, I.PERCENTUAL
                        FROM CAD_IT_PRODUTO_COMPOSICAO I
                        LEFT OUTER JOIN CAD_PRODUTO PR ON (PR.EMPRESA = I.EMPRESA
                                                       AND PR.CADASTRO = I.PRODUTO_COMPOSICAO)
                        WHERE I.EMPRESA = NEW.EMPRESA
                          AND I.PRODUTO = NEW.PRODUTO
                          AND PR.CONTROLA_ESTOQUE = '2'
                        INTO :VPRODUTO_COMPOSICAO, :VPERCENTUAL_COMPOSICAO

                        DO BEGIN
                            UPDATE CAD_PRODUTO P SET
                            P.ESTOQUE = P.ESTOQUE - (NEW.QUANTIDADE * :VPERCENTUAL_COMPOSICAO)
                            WHERE P.EMPRESA = NEW.EMPRESA
                              AND P.CADASTRO = :VPRODUTO_COMPOSICAO;
                        END
                    END

                    IF (VCONTROLA_ESTOQUE = '2') THEN
                    BEGIN
                        /*---------------------------------------*/
                        /***** Sada do Estoque dos Produtos *****/
                        /*---------------------------------------*/
                        SELECT E.TIPO_CODIGO_BARRAS
                        FROM CAD_EMPRESA E
                        WHERE E.CADASTRO = NEW.EMPRESA
                        INTO :VTIPO_CODIGO_BARRAS;

                        IF (VTIPO_CODIGO_BARRAS = 'Grade') THEN
                        BEGIN
                            UPDATE CAD_IT_PRODUTO_CODIGO_BARRA I SET
                            I.ESTOQUE = I.ESTOQUE - NEW.QUANTIDADE
                            WHERE I.EMPRESA = NEW.EMPRESA
                              AND I.PRODUTO = NEW.PRODUTO
                              AND I.CODIGO_BARRA = NEW.CODIGO_BARRA;
                        END

                        UPDATE CAD_PRODUTO P SET
                        P.ESTOQUE = P.ESTOQUE - NEW.QUANTIDADE
                        WHERE P.EMPRESA = NEW.EMPRESA
                          AND P.CADASTRO = NEW.PRODUTO;
                    END

                    /*------------------------------------------*/
                    /***** Atualizando a Venda dos Produtos *****/
                    /*------------------------------------------*/
                    VREGISTRO = 0;

                    SELECT PRODUTO
                    FROM MOV_VENDA_MENSAL_PRODUTO
                    WHERE EMPRESA = NEW.EMPRESA
                      AND ANO = :VANO
                      AND MES = :VMES
                      AND PRODUTO = NEW.PRODUTO
                    INTO :VREGISTRO;

                    IF ((VREGISTRO > 0) AND (VREGISTRO IS NOT NULL)) THEN
                    BEGIN
                        UPDATE MOV_VENDA_MENSAL_PRODUTO SET
                        QUANTIDADE = UDF_FORMAT_FLOAT(QUANTIDADE + NEW.QUANTIDADE, 3),
                        TOTAL = UDF_FORMAT_FLOAT(TOTAL + NEW.TOTAL, 3),
                        TOTAL_PRECO_CUSTO = UDF_FORMAT_FLOAT(TOTAL_PRECO_CUSTO + (NEW.QUANTIDADE * NEW.PRECO_CUSTO), 3),
                        TOTAL_CUSTO_MEDIO = UDF_FORMAT_FLOAT(TOTAL_CUSTO_MEDIO + (NEW.QUANTIDADE * NEW.CUSTO_MEDIO), 3),
                        TOTAL_DESCONTO_RATEADO = UDF_FORMAT_FLOAT(TOTAL_DESCONTO_RATEADO + NEW.VALOR_DESCONTO_RATEADO, 3)
                        WHERE EMPRESA = NEW.EMPRESA
                          AND ANO = :VANO
                          AND MES = :VMES
                          AND PRODUTO = NEW.PRODUTO;
                    END
                    ELSE BEGIN
                        INSERT INTO MOV_VENDA_MENSAL_PRODUTO
                        (EMPRESA, ANO, MES, PRODUTO, QUANTIDADE,
                         TOTAL, TOTAL_PRECO_CUSTO,
                         TOTAL_CUSTO_MEDIO,
                         TOTAL_DESCONTO_RATEADO)
                        VALUES
                        (NEW.EMPRESA, :VANO, :VMES, NEW.PRODUTO, UDF_FORMAT_FLOAT(NEW.QUANTIDADE, 3),
                         UDF_FORMAT_FLOAT(NEW.TOTAL, 3), UDF_FORMAT_FLOAT((NEW.QUANTIDADE * NEW.PRECO_CUSTO), 3),
                         UDF_FORMAT_FLOAT((NEW.QUANTIDADE * NEW.CUSTO_MEDIO), 3),
                         UDF_FORMAT_FLOAT(NEW.VALOR_DESCONTO_RATEADO, 3));
                    END
                END
            END
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER MOV_IT_CUPOM_FISCAL_02 FOR MOV_IT_CUPOM_FISCAL
ACTIVE AFTER DELETE POSITION 0
AS
DECLARE VARIABLE VSTATUS VARCHAR(10);
DECLARE VARIABLE VDOCUMENTO VARCHAR(2);
DECLARE VARIABLE VCONTROLA_ESTOQUE VARCHAR(1);
DECLARE VARIABLE VTIPO_CODIGO_BARRAS VARCHAR(10);
DECLARE VARIABLE VANO INTEGER;
DECLARE VARIABLE VMES INTEGER;
DECLARE VARIABLE VREGISTRO INTEGER;
DECLARE VARIABLE VBAIXA_ESTOQUE_COMPOSICAO VARCHAR(1);
DECLARE VARIABLE VPRODUTO_COMPOSICAO INTEGER;
DECLARE VARIABLE VPERCENTUAL_COMPOSICAO REAL;
BEGIN
    /*------------------------------------------------------------------*/
    /***** Verificando se o Item do Cupom Fiscal no est Cancelado *****/
    /*------------------------------------------------------------------*/
    IF (OLD.STATUS = 'Faturado') THEN
    BEGIN
        SELECT STATUS, DOCUMENTO, EXTRACT(YEAR FROM EMISSAO) ANO, EXTRACT(MONTH FROM EMISSAO) MES
        FROM MOV_CUPOM_FISCAL
        WHERE EMPRESA = OLD.EMPRESA
          AND CAIXA = OLD.CAIXA
          AND ANO = OLD.ANO
          AND NUMERO = OLD.NUMERO
        INTO :VSTATUS, :VDOCUMENTO, VANO, VMES;

        /*----------------------------------------------------------*/
        /***** Verificando se o Cupom Fiscal no est Cancelado *****/
        /*----------------------------------------------------------*/
        IF (VSTATUS = 'Faturado') THEN
        BEGIN
            /*-----------------------------------------------------------------*/
            /***** Quando o Cupom Fiscal  Emitido na Nota Fiscal de Venda *****/
            /************* o estoque dos produtos no ser baixado *************/
            /*********** pois o mesmo j foi baixado na Nota Fiscal ************/
            /*-----------------------------------------------------------------*/
            IF ((VDOCUMENTO <> 'NF') OR (VDOCUMENTO IS NULL)) THEN
            BEGIN
                IF ((OLD.PRODUTO IS NOT NULL) AND (OLD.PRODUTO > 0)) THEN
                BEGIN
                    SELECT P.CONTROLA_ESTOQUE, P.BAIXA_ESTOQUE_COMPOSICAO
                    FROM CAD_PRODUTO P
                    WHERE P.EMPRESA = OLD.EMPRESA
                      AND P.CADASTRO = OLD.PRODUTO
                    INTO :VCONTROLA_ESTOQUE, :VBAIXA_ESTOQUE_COMPOSICAO;

                    IF (VBAIXA_ESTOQUE_COMPOSICAO = '2') THEN
                    BEGIN
                        FOR SELECT I.PRODUTO_COMPOSICAO, I.PERCENTUAL
                        FROM CAD_IT_PRODUTO_COMPOSICAO I
                        LEFT OUTER JOIN CAD_PRODUTO PR ON(PR.EMPRESA = I.EMPRESA
                                                      AND PR.CADASTRO = I.PRODUTO_COMPOSICAO)
                        WHERE I.EMPRESA = OLD.EMPRESA
                          AND I.PRODUTO = OLD.PRODUTO
                          AND PR.CONTROLA_ESTOQUE = '2'
                        INTO :VPRODUTO_COMPOSICAO, :VPERCENTUAL_COMPOSICAO

                        DO BEGIN
                            UPDATE CAD_PRODUTO P SET
                            P.ESTOQUE = P.ESTOQUE + (OLD.QUANTIDADE * :VPERCENTUAL_COMPOSICAO)
                            WHERE P.EMPRESA = OLD.EMPRESA
                              AND P.CADASTRO = :VPRODUTO_COMPOSICAO;
                        END
                    END

                    IF (VCONTROLA_ESTOQUE = '2') THEN
                    BEGIN
                        /*--------------------------------------------------*/
                        /***** Estorno da Sada do Estoque dos Produtos *****/
                        /*--------------------------------------------------*/
                        SELECT E.TIPO_CODIGO_BARRAS
                        FROM CAD_EMPRESA E
                        WHERE E.CADASTRO = OLD.EMPRESA
                        INTO :VTIPO_CODIGO_BARRAS;

                        IF (VTIPO_CODIGO_BARRAS = 'Grade') THEN
                        BEGIN
                            UPDATE CAD_IT_PRODUTO_CODIGO_BARRA I SET
                            I.ESTOQUE = I.ESTOQUE + OLD.QUANTIDADE
                            WHERE I.EMPRESA = OLD.EMPRESA
                              AND I.PRODUTO = OLD.PRODUTO
                              AND I.CODIGO_BARRA = OLD.CODIGO_BARRA;
                        END

                        UPDATE CAD_PRODUTO P SET
                        P.ESTOQUE = P.ESTOQUE + OLD.QUANTIDADE
                        WHERE P.EMPRESA = OLD.EMPRESA
                          AND P.CADASTRO = OLD.PRODUTO;
                    END

                    /*---------------------------------------*/
                    /***** Atualiza a Venda dos Produtos *****/
                    /*---------------------------------------*/
                    VREGISTRO = 0;

                    SELECT PRODUTO
                    FROM MOV_VENDA_MENSAL_PRODUTO
                    WHERE EMPRESA = OLD.EMPRESA
                      AND ANO = :VANO
                      AND MES = :VMES
                      AND PRODUTO = OLD.PRODUTO
                    INTO :VREGISTRO;

                    IF ((VREGISTRO > 0) AND (VREGISTRO IS NOT NULL)) THEN
                    BEGIN
                        UPDATE MOV_VENDA_MENSAL_PRODUTO SET
                        QUANTIDADE = UDF_FORMAT_FLOAT(QUANTIDADE - OLD.QUANTIDADE, 3),
                        TOTAL = UDF_FORMAT_FLOAT(TOTAL - OLD.TOTAL, 3),
                        TOTAL_PRECO_CUSTO = UDF_FORMAT_FLOAT(TOTAL_PRECO_CUSTO - (OLD.QUANTIDADE * OLD.PRECO_CUSTO), 3),
                        TOTAL_CUSTO_MEDIO = UDF_FORMAT_FLOAT(TOTAL_CUSTO_MEDIO - (OLD.QUANTIDADE * OLD.CUSTO_MEDIO), 3),
                        TOTAL_DESCONTO_RATEADO = UDF_FORMAT_FLOAT(TOTAL_DESCONTO_RATEADO - OLD.VALOR_DESCONTO_RATEADO, 3)
                        WHERE EMPRESA = OLD.EMPRESA
                          AND ANO = :VANO
                          AND MES = :VMES
                          AND PRODUTO = OLD.PRODUTO;
                    END
                END
            END
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE RDB$RELATION_FIELDS SET                                   RDB$NULL_FLAG = NULL                                             WHERE (RDB$FIELD_NAME = 'HASH_MD5')                              AND (RDB$RELATION_NAME = 'MOV_CUPOM_FISCAL_CONDICAO_PAGTO') 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER MOV_CUPOM_FISCAL_COND_PAGTO_03 FOR MOV_CUPOM_FISCAL_CONDICAO_PAGTO
ACTIVE AFTER INSERT POSITION 0
AS
BEGIN
    INSERT INTO MOV_CUPOM_PAGTO_ESPELHO_2
    (EMPRESA, CAIXA, ANO, NUMERO, CONDICAO_PAGAMENTO)
    VALUES
    (NEW.EMPRESA, NEW.CAIXA, NEW.ANO, NEW.NUMERO, NEW.CONDICAO_PAGAMENTO);
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE RDB$RELATION_FIELDS SET                              RDB$NULL_FLAG = NULL                                        WHERE (RDB$FIELD_NAME = 'HASH_MD5')                         AND (RDB$RELATION_NAME = 'MOV_CUPOM_FISCAL_REDUCAO_Z') 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER MOV_CUPOM_FISCAL_REDUCAO_Z_03 FOR MOV_CUPOM_FISCAL_REDUCAO_Z
ACTIVE AFTER INSERT POSITION 0
AS
BEGIN
    INSERT INTO MOV_CUPOM_REDUCAO_Z_ESPELHO_2
    (EMPRESA, NUMERO)
    VALUES
    (NEW.EMPRESA, NEW.NUMERO);
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE RDB$RELATION_FIELDS SET                                 RDB$NULL_FLAG = NULL                                           WHERE (RDB$FIELD_NAME = 'HASH_MD5')                            AND (RDB$RELATION_NAME = 'MOV_IT_CUPOM_FISCAL_REDUCAO_Z') 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE RDB$RELATION_FIELDS SET                      RDB$NULL_FLAG = NULL                                WHERE (RDB$FIELD_NAME = 'HASH_MD5')                 AND (RDB$RELATION_NAME = 'CAD_SOFTWARE_HOUSE') 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE RDB$RELATION_FIELDS SET                      RDB$NULL_FLAG = NULL                                WHERE (RDB$FIELD_NAME = 'HASH_MD5')                 AND (RDB$RELATION_NAME = 'CAD_IMPRESSORA_FISCAL') 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 DROP TRIGGER CAD_IMPRESSORA_FISCAL_01

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER PROCEDURE PRO_MOV_ORDEM_SERVICO (
     E_FILTRO VARCHAR(20),
     E_EMPRESA INTEGER,
     E_CLIENTE INTEGER,
     E_TECNICO INTEGER,
     E_EQUIPAMENTO INTEGER,
     E_STATUS VARCHAR(20),
     E_NUMERO INTEGER)
 RETURNS (
     EMPRESA INTEGER,
     NUMERO INTEGER,
     DESCRICAO VARCHAR(100),
     CLIENTE INTEGER,
     NOME_CLIENTE VARCHAR(80),
     ENDERECO_CLIENTE VARCHAR(50),
     BAIRRO_CLIENTE VARCHAR(50),
     CIDADE_CLIENTE VARCHAR(55),
     ESTADO_CLIENTE VARCHAR(2),
     FONE_01_CLIENTE VARCHAR(15),
     CELULAR_CLIENTE VARCHAR(15),
     PERCENTUAL_DESCONTO_CLIENTE DOUBLE PRECISION,
     NOME_SOLICITANTE VARCHAR(50),
     ATENDENTE INTEGER,
     NOME_ATENDENTE VARCHAR(80),
     EMISSAO DATE,
     EQUIPAMENTO INTEGER,
     DESCRICAO_EQUIPAMENTO VARCHAR(80),
     MARCA_EQUIPAMENTO VARCHAR(30),
     MODELO_EQUIPAMENTO VARCHAR(30),
     NUMERO_SERIE_EQUIPAMENTO VARCHAR(30),
     TECNICO INTEGER,
     NOME_TECNICO VARCHAR(80),
     PRIORIDADE VARCHAR(10),
     PREVISAO_ENTREGA DATE,
     HORA_ENTREGA VARCHAR(5),
     DETALHAMENTO_PROBLEMA BLOB SUB_TYPE 0 SEGMENT SIZE 80,
     STATUS VARCHAR(15),
     DATA_FECHAMENTO_TECNICO DATE,
     HORA_FECHAMENTO_TECNICO VARCHAR(5),
     OBSERVACAO_TECNICO BLOB SUB_TYPE 0 SEGMENT SIZE 80,
     FORMA_COBRANCA VARCHAR(20),
     TOTAL_HORAS VARCHAR(5),
     UTILIZAR_PRECO_PROMOCAO VARCHAR(1),
     VALOR_FRETE DOUBLE PRECISION,
     VALOR_DESPESA DOUBLE PRECISION,
     VALOR_DESCONTO DOUBLE PRECISION,
     TOTAL_PRODUTO DOUBLE PRECISION,
     TOTAL_SERVICO DOUBLE PRECISION,
     TOTAL_ORDEM_SERVICO DOUBLE PRECISION,
     DATA_FECHAMENTO DATE,
     OBSERVACAO BLOB SUB_TYPE 0 SEGMENT SIZE 80,
     CAIXA_ECF VARCHAR(3),
     ANO_ECF INTEGER,
     NUMERO_ECF INTEGER,
     NUMERO_ORDEM_SERVICO_ORIGINAL INTEGER,
     NUMERO_ORDEM_SERVICO_ANTERIOR INTEGER,
     VERSAO_ORDEM_SERVICO INTEGER,
     DATA_ORCAMENTO DATE,
     HORA_ORCAMENTO VARCHAR(5),
     NOME_CONTATO_ORCAMENTO VARCHAR(50),
     VALOR_ORCAMENTO DOUBLE PRECISION,
     STATUS_ORCAMENTO VARCHAR(25),
     OBSERVACAO_ORCAMENTO BLOB SUB_TYPE 0 SEGMENT SIZE 240,
     USUARIO_SISTEMA_ORCAMENTO INTEGER,
     NOME_USUARIO_ORCAMENTO VARCHAR(50),
     NUMERO_RECEITA INTEGER,
     DATA_CONSULTA_RECEITA DATE,
     MEDICO_RECEITA INTEGER,
     NOME_MEDICO_RECEITA VARCHAR(80),
     ESFERICO_DIREITO_RECEITA DOUBLE PRECISION,
     CILINDRO_DIREITO_RECEITA DOUBLE PRECISION,
     EIXO_DIREITO_RECEITA DOUBLE PRECISION,
     ADICAO_DIREITO_RECEITA DOUBLE PRECISION,
     DNP_DIREITO_RECEITA DOUBLE PRECISION,
     ALTURA_DIREITO_RECEITA DOUBLE PRECISION,
     ESFERICO_ESQUERDO_RECEITA DOUBLE PRECISION,
     CILINDRO_ESQUERDO_RECEITA DOUBLE PRECISION,
     EIXO_ESQUERDO_RECEITA DOUBLE PRECISION,
     ADICAO_ESQUERDO_RECEITA DOUBLE PRECISION,
     DNP_ESQUERDO_RECEITA DOUBLE PRECISION,
     ALTURA_ESQUERDO_RECEITA DOUBLE PRECISION,
     ARMACAO_RECEITA VARCHAR(50),
     TIPO_LENTE_RECEITA VARCHAR(50),
     NUMERO_CUPOM_FISCAL INTEGER,
     NUMERO_COO_IMPRESSO_DAV INTEGER,
     EMISSAO_CRIPTOGRAFADO VARCHAR(10),
     DAV_IMPRESSO VARCHAR(1),
     NUMERO_SERIE_IMPRESSO_DAV VARCHAR(20),
     SERIE_NOTA_DEVOLUCAO INTEGER,
     NUMERO_NOTA_DEVOLUCAO INTEGER,
     DAV_IMPRESSO_DATA DATE)
 AS
 BEGIN
      IF (:E_FILTRO = 'Tecnico') THEN
      BEGIN
          IF (:E_STATUS = 'Todos') THEN
          BEGIN
              FOR SELECT O.EMPRESA, O.NUMERO, O.DESCRICAO, O.EMISSAO, O.CLIENTE, CL.NOME NOME_CLIENTE,
                         CI.NOME || ' - ' || CI.ESTADO CIDADE_CLIENTE, CL.FONE_01 FONE_01_CLIENTE, CL.CELULAR CELULAR_CLIENTE, O.EQUIPAMENTO,
                         E.DESCRICAO DESCRICAO_EQUIPAMENTO, E.NUMERO_SERIE NUMERO_SERIE_EQUIPAMENTO, E.MARCA MARCA_EQUIPAMENTO,
                         E.MODELO MODELO_EQUIPAMENTO, O.TECNICO, TE.NOME NOME_TECNICO, O.PREVISAO_ENTREGA, O.STATUS,
                         O.NUMERO_ORDEM_SERVICO_ORIGINAL, O.VERSAO_ORDEM_SERVICO, O.NUMERO_COO_IMPRESSO_DAV, O.DAV_IMPRESSO,
                         O.NUMERO_SERIE_IMPRESSO_DAV, O.SERIE_NOTA_DEVOLUCAO, O.NUMERO_NOTA_DEVOLUCAO, O.DAV_IMPRESSO_DATA
              FROM MOV_ORDEM_SERVICO O
              LEFT OUTER JOIN CAD_PESSOA CL ON (CL.CADASTRO = O.CLIENTE)
              LEFT OUTER JOIN CAD_CIDADE CI ON (CI.CADASTRO = CL.CIDADE)
              LEFT OUTER JOIN CAD_EQUIPAMENTO E ON (E.EMPRESA = O.EMPRESA
                                                AND E.CADASTRO = O.EQUIPAMENTO)
              LEFT OUTER JOIN CAD_PESSOA TE ON (TE.CADASTRO = O.TECNICO)
              WHERE O.EMPRESA = :E_EMPRESA
                AND O.TECNICO = :E_TECNICO
                AND O.STATUS <> 'Alterada'
              INTO :EMPRESA, :NUMERO, :DESCRICAO, :EMISSAO, :CLIENTE, :NOME_CLIENTE,
                   :CIDADE_CLIENTE, :FONE_01_CLIENTE, :CELULAR_CLIENTE, :EQUIPAMENTO,
                   :DESCRICAO_EQUIPAMENTO, :NUMERO_SERIE_EQUIPAMENTO, :MARCA_EQUIPAMENTO,
                   :MODELO_EQUIPAMENTO, :TECNICO, :NOME_TECNICO, :PREVISAO_ENTREGA, :STATUS,
                   :NUMERO_ORDEM_SERVICO_ORIGINAL, :VERSAO_ORDEM_SERVICO, :NUMERO_COO_IMPRESSO_DAV, :DAV_IMPRESSO,
                   :NUMERO_SERIE_IMPRESSO_DAV, :SERIE_NOTA_DEVOLUCAO, :NUMERO_NOTA_DEVOLUCAO, :DAV_IMPRESSO_DATA

              DO BEGIN
                  SUSPEND;
              END
          END
          ELSE BEGIN
               FOR SELECT O.EMPRESA, O.NUMERO, O.DESCRICAO, O.EMISSAO, O.CLIENTE, CL.NOME NOME_CLIENTE,
                          CI.NOME || ' - ' || CI.ESTADO CIDADE_CLIENTE, CL.FONE_01 FONE_01_CLIENTE, CL.CELULAR CELULAR_CLIENTE,
                          O.EQUIPAMENTO, E.DESCRICAO DESCRICAO_EQUIPAMENTO, E.NUMERO_SERIE NUMERO_SERIE_EQUIPAMENTO, E.MARCA MARCA_EQUIPAMENTO,
                          E.MODELO MODELO_EQUIPAMENTO, O.TECNICO, TE.NOME NOME_TECNICO, O.PREVISAO_ENTREGA, O.STATUS,
                          O.NUMERO_ORDEM_SERVICO_ORIGINAL, O.VERSAO_ORDEM_SERVICO, O.NUMERO_COO_IMPRESSO_DAV, O.DAV_IMPRESSO,
                          O.NUMERO_SERIE_IMPRESSO_DAV, O.SERIE_NOTA_DEVOLUCAO, O.NUMERO_NOTA_DEVOLUCAO, O.DAV_IMPRESSO_DATA
               FROM MOV_ORDEM_SERVICO O
               LEFT OUTER JOIN CAD_PESSOA CL ON (CL.CADASTRO = O.CLIENTE)
               LEFT OUTER JOIN CAD_CIDADE CI ON (CI.CADASTRO = CL.CIDADE)
               LEFT OUTER JOIN CAD_EQUIPAMENTO E ON (E.EMPRESA = O.EMPRESA
                                                 AND E.CADASTRO = O.EQUIPAMENTO)
               LEFT OUTER JOIN CAD_PESSOA TE ON (TE.CADASTRO = O.TECNICO)
               WHERE O.EMPRESA = :E_EMPRESA
                 AND O.TECNICO = :E_TECNICO
                 AND O.STATUS = :E_STATUS
               INTO :EMPRESA, :NUMERO, :DESCRICAO, :EMISSAO, :CLIENTE, :NOME_CLIENTE,
                    :CIDADE_CLIENTE, :FONE_01_CLIENTE, :CELULAR_CLIENTE,
                    :EQUIPAMENTO, :DESCRICAO_EQUIPAMENTO, :NUMERO_SERIE_EQUIPAMENTO, :MARCA_EQUIPAMENTO,
                    :MODELO_EQUIPAMENTO, :TECNICO, :NOME_TECNICO, :PREVISAO_ENTREGA, :STATUS,
                    :NUMERO_ORDEM_SERVICO_ORIGINAL, :VERSAO_ORDEM_SERVICO, :NUMERO_COO_IMPRESSO_DAV, :DAV_IMPRESSO,
                    :NUMERO_SERIE_IMPRESSO_DAV, :SERIE_NOTA_DEVOLUCAO, :NUMERO_NOTA_DEVOLUCAO, :DAV_IMPRESSO_DATA

               DO BEGIN
                   SUSPEND;
               END
           END
       END
       ELSE BEGIN
           IF (:E_FILTRO = 'Gerenciar') THEN
           BEGIN
               IF ((:E_EQUIPAMENTO > 0) AND (:E_CLIENTE > 0)) THEN
               BEGIN
                   IF (:E_STATUS = 'Todos') THEN
                   BEGIN
                       FOR SELECT O.EMPRESA, O.NUMERO, O.DESCRICAO, O.EMISSAO, O.CLIENTE, CL.NOME NOME_CLIENTE,
                                  CI.NOME || ' - ' || CI.ESTADO CIDADE_CLIENTE, CL.FONE_01 FONE_01_CLIENTE, CL.CELULAR CELULAR_CLIENTE,
                                  O.EQUIPAMENTO, E.DESCRICAO DESCRICAO_EQUIPAMENTO, E.NUMERO_SERIE NUMERO_SERIE_EQUIPAMENTO,
                                  E.MARCA MARCA_EQUIPAMENTO, E.MODELO MODELO_EQUIPAMENTO, O.TECNICO, TE.NOME NOME_TECNICO, O.PREVISAO_ENTREGA,
                                  O.STATUS, O.TOTAL_ORDEM_SERVICO, O.NUMERO_ORDEM_SERVICO_ORIGINAL, O.VERSAO_ORDEM_SERVICO, O.VALOR_ORCAMENTO,
                                  O.STATUS_ORCAMENTO, O.NUMERO_COO_IMPRESSO_DAV, O.DAV_IMPRESSO, O.NUMERO_SERIE_IMPRESSO_DAV,
                                  O.SERIE_NOTA_DEVOLUCAO, O.NUMERO_NOTA_DEVOLUCAO, O.DAV_IMPRESSO_DATA
                       FROM MOV_ORDEM_SERVICO O
                       LEFT OUTER JOIN CAD_PESSOA CL ON (CL.CADASTRO = O.CLIENTE)
                       LEFT OUTER JOIN CAD_CIDADE CI ON (CI.CADASTRO = CL.CIDADE)
                       LEFT OUTER JOIN CAD_EQUIPAMENTO E ON (E.EMPRESA = O.EMPRESA
                                                         AND E.CADASTRO = O.EQUIPAMENTO)
                       LEFT OUTER JOIN CAD_PESSOA TE ON (TE.CADASTRO = O.TECNICO)
                       WHERE O.EMPRESA = :E_EMPRESA
                         AND O.CLIENTE = :E_CLIENTE
                         AND O.EQUIPAMENTO = :E_EQUIPAMENTO
                         AND O.STATUS <> 'Alterada'
                       INTO :EMPRESA, :NUMERO, :DESCRICAO, :EMISSAO, :CLIENTE, :NOME_CLIENTE,
                            :CIDADE_CLIENTE, :FONE_01_CLIENTE, :CELULAR_CLIENTE,
                            :EQUIPAMENTO, :DESCRICAO_EQUIPAMENTO, :NUMERO_SERIE_EQUIPAMENTO,
                            :MARCA_EQUIPAMENTO, :MODELO_EQUIPAMENTO, :TECNICO, :NOME_TECNICO, :PREVISAO_ENTREGA,
                            :STATUS, :TOTAL_ORDEM_SERVICO, :NUMERO_ORDEM_SERVICO_ORIGINAL, :VERSAO_ORDEM_SERVICO, :VALOR_ORCAMENTO,
                            :STATUS_ORCAMENTO, :NUMERO_COO_IMPRESSO_DAV, :DAV_IMPRESSO, :NUMERO_SERIE_IMPRESSO_DAV,
                            :SERIE_NOTA_DEVOLUCAO, :NUMERO_NOTA_DEVOLUCAO, :DAV_IMPRESSO_DATA

                       DO BEGIN
                           SUSPEND;
                       END
                   END
                   ELSE BEGIN
                       FOR SELECT O.EMPRESA, O.NUMERO, O.DESCRICAO, O.EMISSAO, O.CLIENTE, CL.NOME NOME_CLIENTE,
                                  CI.NOME || ' - ' || CI.ESTADO CIDADE_CLIENTE, CL.FONE_01 FONE_01_CLIENTE, CL.CELULAR CELULAR_CLIENTE,
                                  O.EQUIPAMENTO, E.DESCRICAO DESCRICAO_EQUIPAMENTO, E.NUMERO_SERIE NUMERO_SERIE_EQUIPAMENTO,
                                  E.MARCA MARCA_EQUIPAMENTO, E.MODELO MODELO_EQUIPAMENTO, O.TECNICO, TE.NOME NOME_TECNICO, O.PREVISAO_ENTREGA,
                                  O.STATUS, O.TOTAL_ORDEM_SERVICO, O.NUMERO_ORDEM_SERVICO_ORIGINAL, O.VERSAO_ORDEM_SERVICO, O.VALOR_ORCAMENTO,
                                  O.STATUS_ORCAMENTO, O.NUMERO_COO_IMPRESSO_DAV, O.DAV_IMPRESSO, O.NUMERO_SERIE_IMPRESSO_DAV,
                                  O.SERIE_NOTA_DEVOLUCAO, O.NUMERO_NOTA_DEVOLUCAO, O.DAV_IMPRESSO_DATA
                       FROM MOV_ORDEM_SERVICO O
                       LEFT OUTER JOIN CAD_PESSOA CL ON (CL.CADASTRO = O.CLIENTE)
                       LEFT OUTER JOIN CAD_CIDADE CI ON (CI.CADASTRO = CL.CIDADE)
                       LEFT OUTER JOIN CAD_EQUIPAMENTO E ON (E.EMPRESA = O.EMPRESA
                                                         AND E.CADASTRO = O.EQUIPAMENTO)
                       LEFT OUTER JOIN CAD_PESSOA TE ON (TE.CADASTRO = O.TECNICO)
                       WHERE O.EMPRESA = :E_EMPRESA
                         AND O.CLIENTE = :E_CLIENTE
                         AND O.EQUIPAMENTO = :E_EQUIPAMENTO
                         AND O.STATUS = :E_STATUS
                       INTO :EMPRESA, :NUMERO, :DESCRICAO, :EMISSAO, :CLIENTE, :NOME_CLIENTE,
                            :CIDADE_CLIENTE, :FONE_01_CLIENTE, :CELULAR_CLIENTE,
                            :EQUIPAMENTO, :DESCRICAO_EQUIPAMENTO, :NUMERO_SERIE_EQUIPAMENTO,
                            :MARCA_EQUIPAMENTO, :MODELO_EQUIPAMENTO, :TECNICO, :NOME_TECNICO, :PREVISAO_ENTREGA,
                            :STATUS, :TOTAL_ORDEM_SERVICO, :NUMERO_ORDEM_SERVICO_ORIGINAL, :VERSAO_ORDEM_SERVICO, :VALOR_ORCAMENTO,
                            :STATUS_ORCAMENTO, :NUMERO_COO_IMPRESSO_DAV, :DAV_IMPRESSO, :NUMERO_SERIE_IMPRESSO_DAV,
                            :SERIE_NOTA_DEVOLUCAO, :NUMERO_NOTA_DEVOLUCAO, :DAV_IMPRESSO_DATA

                       DO BEGIN
                           SUSPEND;
                       END
                   END
               END
               ELSE BEGIN
                   IF (:E_EQUIPAMENTO > 0) THEN
                   BEGIN
                       IF (:E_STATUS = 'Todos') THEN
                       BEGIN
                           FOR SELECT O.EMPRESA, O.NUMERO, O.DESCRICAO, O.EMISSAO, O.CLIENTE, CL.NOME NOME_CLIENTE,
                                      CI.NOME || ' - ' || CI.ESTADO CIDADE_CLIENTE, CL.FONE_01 FONE_01_CLIENTE, CL.CELULAR CELULAR_CLIENTE,
                                      O.EQUIPAMENTO, E.DESCRICAO DESCRICAO_EQUIPAMENTO, E.NUMERO_SERIE NUMERO_SERIE_EQUIPAMENTO,
                                      E.MARCA MARCA_EQUIPAMENTO, E.MODELO MODELO_EQUIPAMENTO, O.TECNICO, TE.NOME NOME_TECNICO,
                                      O.PREVISAO_ENTREGA, O.STATUS, O.TOTAL_ORDEM_SERVICO, O.NUMERO_ORDEM_SERVICO_ORIGINAL,
                                      O.VERSAO_ORDEM_SERVICO, O.VALOR_ORCAMENTO, O.STATUS_ORCAMENTO, O.NUMERO_COO_IMPRESSO_DAV, O.DAV_IMPRESSO,
                                      O.NUMERO_SERIE_IMPRESSO_DAV, O.SERIE_NOTA_DEVOLUCAO, O.NUMERO_NOTA_DEVOLUCAO, O.DAV_IMPRESSO_DATA
                           FROM MOV_ORDEM_SERVICO O
                           LEFT OUTER JOIN CAD_PESSOA CL ON (CL.CADASTRO = O.CLIENTE)
                           LEFT OUTER JOIN CAD_CIDADE CI ON (CI.CADASTRO = CL.CIDADE)
                           LEFT OUTER JOIN CAD_EQUIPAMENTO E ON (E.EMPRESA = O.EMPRESA
                                                             AND E.CADASTRO = O.EQUIPAMENTO)
                           LEFT OUTER JOIN CAD_PESSOA TE ON (TE.CADASTRO = O.TECNICO)
                           WHERE O.EMPRESA = :E_EMPRESA
                             AND O.EQUIPAMENTO = :E_EQUIPAMENTO
                             AND O.STATUS <> 'Alterada'
                           INTO :EMPRESA, :NUMERO, :DESCRICAO, :EMISSAO, :CLIENTE, :NOME_CLIENTE,
                                :CIDADE_CLIENTE, :FONE_01_CLIENTE, :CELULAR_CLIENTE,
                                :EQUIPAMENTO, :DESCRICAO_EQUIPAMENTO, :NUMERO_SERIE_EQUIPAMENTO,
                                :MARCA_EQUIPAMENTO, :MODELO_EQUIPAMENTO, :TECNICO, :NOME_TECNICO,
                                :PREVISAO_ENTREGA, :STATUS, :TOTAL_ORDEM_SERVICO, :NUMERO_ORDEM_SERVICO_ORIGINAL,
                                :VERSAO_ORDEM_SERVICO, :VALOR_ORCAMENTO, :STATUS_ORCAMENTO, :NUMERO_COO_IMPRESSO_DAV, :DAV_IMPRESSO,
                                :NUMERO_SERIE_IMPRESSO_DAV, :SERIE_NOTA_DEVOLUCAO, :NUMERO_NOTA_DEVOLUCAO, :DAV_IMPRESSO_DATA

                           DO BEGIN
                               SUSPEND;
                           END
                       END
                       ELSE BEGIN
                           FOR SELECT O.EMPRESA, O.NUMERO, O.DESCRICAO, O.EMISSAO, O.CLIENTE, CL.NOME NOME_CLIENTE,
                                      CI.NOME || ' - ' || CI.ESTADO CIDADE_CLIENTE, CL.FONE_01 FONE_01_CLIENTE, CL.CELULAR CELULAR_CLIENTE,
                                      O.EQUIPAMENTO, E.DESCRICAO DESCRICAO_EQUIPAMENTO, E.NUMERO_SERIE NUMERO_SERIE_EQUIPAMENTO,
                                      E.MARCA MARCA_EQUIPAMENTO, E.MODELO MODELO_EQUIPAMENTO, O.TECNICO, TE.NOME NOME_TECNICO,
                                      O.PREVISAO_ENTREGA, O.STATUS, O.TOTAL_ORDEM_SERVICO, O.NUMERO_ORDEM_SERVICO_ORIGINAL,
                                      O.VERSAO_ORDEM_SERVICO, O.VALOR_ORCAMENTO, O.STATUS_ORCAMENTO, O.NUMERO_COO_IMPRESSO_DAV, O.DAV_IMPRESSO,
                                      O.NUMERO_SERIE_IMPRESSO_DAV, O.SERIE_NOTA_DEVOLUCAO, O.NUMERO_NOTA_DEVOLUCAO, O.DAV_IMPRESSO_DATA
                           FROM MOV_ORDEM_SERVICO O
                           LEFT OUTER JOIN CAD_PESSOA CL ON (CL.CADASTRO = O.CLIENTE)
                           LEFT OUTER JOIN CAD_CIDADE CI ON (CI.CADASTRO = CL.CIDADE)
                           LEFT OUTER JOIN CAD_EQUIPAMENTO E ON(E.EMPRESA = O.EMPRESA
                                                            AND E.CADASTRO = O.EQUIPAMENTO)
                           LEFT OUTER JOIN CAD_PESSOA TE ON (TE.CADASTRO = O.TECNICO)
                           WHERE O.EMPRESA = :E_EMPRESA
                             AND O.EQUIPAMENTO = :E_EQUIPAMENTO
                             AND O.STATUS = :E_STATUS
                           INTO :EMPRESA, :NUMERO, :DESCRICAO, :EMISSAO, :CLIENTE, :NOME_CLIENTE,
                                :CIDADE_CLIENTE, :FONE_01_CLIENTE, :CELULAR_CLIENTE,
                                :EQUIPAMENTO, :DESCRICAO_EQUIPAMENTO, :NUMERO_SERIE_EQUIPAMENTO,
                                :MARCA_EQUIPAMENTO, :MODELO_EQUIPAMENTO, :TECNICO, :NOME_TECNICO,
                                :PREVISAO_ENTREGA, :STATUS, :TOTAL_ORDEM_SERVICO, :NUMERO_ORDEM_SERVICO_ORIGINAL,
                                :VERSAO_ORDEM_SERVICO, :VALOR_ORCAMENTO, :STATUS_ORCAMENTO, :NUMERO_COO_IMPRESSO_DAV, :DAV_IMPRESSO,
                                :NUMERO_SERIE_IMPRESSO_DAV, :SERIE_NOTA_DEVOLUCAO, :NUMERO_NOTA_DEVOLUCAO, :DAV_IMPRESSO_DATA

                           DO BEGIN
                               SUSPEND;
                           END
                       END
                   END
                   ELSE BEGIN
                       IF (:E_CLIENTE > 0) THEN
                       BEGIN
                           IF (:E_STATUS = 'Todos') THEN
                           BEGIN
                               FOR SELECT O.EMPRESA, O.NUMERO, O.DESCRICAO, O.EMISSAO, O.CLIENTE, CL.NOME NOME_CLIENTE,
                                          CI.NOME || ' - ' || CI.ESTADO CIDADE_CLIENTE, CL.FONE_01 FONE_01_CLIENTE,
                                          CL.CELULAR CELULAR_CLIENTE, O.EQUIPAMENTO, E.DESCRICAO DESCRICAO_EQUIPAMENTO,
                                          E.NUMERO_SERIE NUMERO_SERIE_EQUIPAMENTO, E.MARCA MARCA_EQUIPAMENTO, E.MODELO MODELO_EQUIPAMENTO,
                                          O.TECNICO, TE.NOME NOME_TECNICO, O.PREVISAO_ENTREGA, O.STATUS, O.TOTAL_ORDEM_SERVICO,
                                          O.NUMERO_ORDEM_SERVICO_ORIGINAL, O.VERSAO_ORDEM_SERVICO, O.VALOR_ORCAMENTO, O.STATUS_ORCAMENTO,
                                          O.NUMERO_COO_IMPRESSO_DAV, O.DAV_IMPRESSO, O.NUMERO_SERIE_IMPRESSO_DAV, O.SERIE_NOTA_DEVOLUCAO,
                                          O.NUMERO_NOTA_DEVOLUCAO, O.DAV_IMPRESSO_DATA
                               FROM MOV_ORDEM_SERVICO O
                               LEFT OUTER JOIN CAD_PESSOA CL ON (CL.CADASTRO = O.CLIENTE)
                               LEFT OUTER JOIN CAD_CIDADE CI ON (CI.CADASTRO = CL.CIDADE)
                               LEFT OUTER JOIN CAD_EQUIPAMENTO E ON (E.EMPRESA = O.EMPRESA
                                                                 AND E.CADASTRO = O.EQUIPAMENTO)
                               LEFT OUTER JOIN CAD_PESSOA TE ON (TE.CADASTRO = O.TECNICO)
                               WHERE O.EMPRESA = :E_EMPRESA
                                 AND O.CLIENTE = :E_CLIENTE
                                 AND O.STATUS <> 'Alterada'
                               INTO :EMPRESA, :NUMERO, :DESCRICAO, :EMISSAO, :CLIENTE, :NOME_CLIENTE,
                                    :CIDADE_CLIENTE, :FONE_01_CLIENTE, :CELULAR_CLIENTE, :EQUIPAMENTO, :DESCRICAO_EQUIPAMENTO,
                                    :NUMERO_SERIE_EQUIPAMENTO, :MARCA_EQUIPAMENTO, :MODELO_EQUIPAMENTO,
                                    :TECNICO, :NOME_TECNICO, :PREVISAO_ENTREGA, :STATUS, :TOTAL_ORDEM_SERVICO,
                                    :NUMERO_ORDEM_SERVICO_ORIGINAL, :VERSAO_ORDEM_SERVICO, :VALOR_ORCAMENTO, :STATUS_ORCAMENTO,
                                    :NUMERO_COO_IMPRESSO_DAV, :DAV_IMPRESSO, :NUMERO_SERIE_IMPRESSO_DAV, :SERIE_NOTA_DEVOLUCAO,
                                    :NUMERO_NOTA_DEVOLUCAO, :DAV_IMPRESSO_DATA

                               DO BEGIN
                                   SUSPEND;
                               END
                           END
                           ELSE BEGIN
                               FOR SELECT O.EMPRESA, O.NUMERO, O.DESCRICAO, O.EMISSAO, O.CLIENTE, CL.NOME NOME_CLIENTE,
                                          CI.NOME || ' - ' || CI.ESTADO CIDADE_CLIENTE, CL.FONE_01 FONE_01_CLIENTE,
                                          CL.CELULAR CELULAR_CLIENTE, O.EQUIPAMENTO, E.DESCRICAO DESCRICAO_EQUIPAMENTO,
                                          E.NUMERO_SERIE NUMERO_SERIE_EQUIPAMENTO, E.MARCA MARCA_EQUIPAMENTO, E.MODELO MODELO_EQUIPAMENTO,
                                          O.TECNICO, TE.NOME NOME_TECNICO, O.PREVISAO_ENTREGA, O.STATUS, O.TOTAL_ORDEM_SERVICO,
                                          O.NUMERO_ORDEM_SERVICO_ORIGINAL, O.VERSAO_ORDEM_SERVICO, O.VALOR_ORCAMENTO, O.STATUS_ORCAMENTO,
                                          O.NUMERO_COO_IMPRESSO_DAV, O.DAV_IMPRESSO, O.NUMERO_SERIE_IMPRESSO_DAV, O.SERIE_NOTA_DEVOLUCAO,
                                          O.NUMERO_NOTA_DEVOLUCAO, O.DAV_IMPRESSO_DATA
                               FROM MOV_ORDEM_SERVICO O
                               LEFT OUTER JOIN CAD_PESSOA CL ON (CL.CADASTRO = O.CLIENTE)
                               LEFT OUTER JOIN CAD_CIDADE CI ON (CI.CADASTRO = CL.CIDADE)
                               LEFT OUTER JOIN CAD_EQUIPAMENTO E ON (E.EMPRESA = O.EMPRESA
                                                                 AND E.CADASTRO = O.EQUIPAMENTO)
                               LEFT OUTER JOIN CAD_PESSOA TE ON (TE.CADASTRO = O.TECNICO)
                               WHERE O.EMPRESA = :E_EMPRESA
                                 AND O.CLIENTE = :E_CLIENTE
                                 AND O.STATUS = :E_STATUS
                               INTO :EMPRESA, :NUMERO, :DESCRICAO, :EMISSAO, :CLIENTE, :NOME_CLIENTE,
                                    :CIDADE_CLIENTE, :FONE_01_CLIENTE,
                                    :CELULAR_CLIENTE, :EQUIPAMENTO, :DESCRICAO_EQUIPAMENTO,
                                    :NUMERO_SERIE_EQUIPAMENTO, :MARCA_EQUIPAMENTO, :MODELO_EQUIPAMENTO,
                                    :TECNICO, :NOME_TECNICO, :PREVISAO_ENTREGA, :STATUS, :TOTAL_ORDEM_SERVICO,
                                    :NUMERO_ORDEM_SERVICO_ORIGINAL, :VERSAO_ORDEM_SERVICO, :VALOR_ORCAMENTO, :STATUS_ORCAMENTO,
                                    :NUMERO_COO_IMPRESSO_DAV, :DAV_IMPRESSO, :NUMERO_SERIE_IMPRESSO_DAV, :SERIE_NOTA_DEVOLUCAO,
                                    :NUMERO_NOTA_DEVOLUCAO, :DAV_IMPRESSO_DATA

                               DO BEGIN
                                   SUSPEND;
                               END
                           END
                       END
                       ELSE BEGIN
                           IF (:E_STATUS = 'Todos') THEN
                           BEGIN
                               FOR SELECT O.EMPRESA, O.NUMERO, O.DESCRICAO, O.EMISSAO, O.CLIENTE, CL.NOME NOME_CLIENTE,
                                          CI.NOME || ' - ' || CI.ESTADO CIDADE_CLIENTE, CL.FONE_01 FONE_01_CLIENTE,
                                          CL.CELULAR CELULAR_CLIENTE, O.EQUIPAMENTO, E.DESCRICAO DESCRICAO_EQUIPAMENTO,
                                          E.NUMERO_SERIE NUMERO_SERIE_EQUIPAMENTO, E.MARCA MARCA_EQUIPAMENTO, E.MODELO MODELO_EQUIPAMENTO,
                                          O.TECNICO, TE.NOME NOME_TECNICO, O.PREVISAO_ENTREGA, O.STATUS, O.TOTAL_ORDEM_SERVICO,
                                          O.NUMERO_ORDEM_SERVICO_ORIGINAL, O.VERSAO_ORDEM_SERVICO, O.VALOR_ORCAMENTO, O.STATUS_ORCAMENTO,
                                          O.NUMERO_COO_IMPRESSO_DAV, O.DAV_IMPRESSO, O.NUMERO_SERIE_IMPRESSO_DAV, O.SERIE_NOTA_DEVOLUCAO,
                                          O.NUMERO_NOTA_DEVOLUCAO, O.DAV_IMPRESSO_DATA
                               FROM MOV_ORDEM_SERVICO O
                               LEFT OUTER JOIN CAD_PESSOA CL ON (CL.CADASTRO = O.CLIENTE)
                               LEFT OUTER JOIN CAD_CIDADE CI ON (CI.CADASTRO = CL.CIDADE)
                               LEFT OUTER JOIN CAD_EQUIPAMENTO E ON (E.EMPRESA = O.EMPRESA
                                                                 AND E.CADASTRO = O.EQUIPAMENTO)
                               LEFT OUTER JOIN CAD_PESSOA TE ON (TE.CADASTRO = O.TECNICO)
                               WHERE O.EMPRESA = :E_EMPRESA
                                 AND O.STATUS <> 'Alterada'
                               INTO :EMPRESA, :NUMERO, :DESCRICAO, :EMISSAO, :CLIENTE, :NOME_CLIENTE,
                                    :CIDADE_CLIENTE, :FONE_01_CLIENTE,
                                    :CELULAR_CLIENTE, :EQUIPAMENTO, :DESCRICAO_EQUIPAMENTO,
                                    :NUMERO_SERIE_EQUIPAMENTO, :MARCA_EQUIPAMENTO, :MODELO_EQUIPAMENTO,
                                    :TECNICO, :NOME_TECNICO, :PREVISAO_ENTREGA, :STATUS, :TOTAL_ORDEM_SERVICO,
                                    :NUMERO_ORDEM_SERVICO_ORIGINAL, :VERSAO_ORDEM_SERVICO, :VALOR_ORCAMENTO, :STATUS_ORCAMENTO,
                                    :NUMERO_COO_IMPRESSO_DAV, :DAV_IMPRESSO, :NUMERO_SERIE_IMPRESSO_DAV, :SERIE_NOTA_DEVOLUCAO,
                                    :NUMERO_NOTA_DEVOLUCAO, :DAV_IMPRESSO_DATA

                               DO BEGIN
                                   SUSPEND;
                               END
                           END
                           ELSE BEGIN
                               FOR SELECT O.EMPRESA, O.NUMERO, O.DESCRICAO, O.EMISSAO, O.CLIENTE, CL.NOME NOME_CLIENTE,
                                          CI.NOME || ' - ' || CI.ESTADO CIDADE_CLIENTE, CL.FONE_01 FONE_01_CLIENTE,
                                          CL.CELULAR CELULAR_CLIENTE, O.EQUIPAMENTO, E.DESCRICAO DESCRICAO_EQUIPAMENTO,
                                          E.NUMERO_SERIE NUMERO_SERIE_EQUIPAMENTO, E.MARCA MARCA_EQUIPAMENTO, E.MODELO MODELO_EQUIPAMENTO,
                                          O.TECNICO, TE.NOME NOME_TECNICO, O.PREVISAO_ENTREGA, O.STATUS, O.TOTAL_ORDEM_SERVICO,
                                          O.NUMERO_ORDEM_SERVICO_ORIGINAL, O.VERSAO_ORDEM_SERVICO, O.VALOR_ORCAMENTO, O.STATUS_ORCAMENTO,
                                          O.NUMERO_COO_IMPRESSO_DAV, O.DAV_IMPRESSO, O.NUMERO_SERIE_IMPRESSO_DAV, O.SERIE_NOTA_DEVOLUCAO,
                                          O.NUMERO_NOTA_DEVOLUCAO, O.DAV_IMPRESSO_DATA
                               FROM MOV_ORDEM_SERVICO O
                               LEFT OUTER JOIN CAD_PESSOA CL ON (CL.CADASTRO = O.CLIENTE)
                               LEFT OUTER JOIN CAD_CIDADE CI ON (CI.CADASTRO = CL.CIDADE)
                               LEFT OUTER JOIN CAD_EQUIPAMENTO E ON (E.EMPRESA = O.EMPRESA
                                                                 AND E.CADASTRO = O.EQUIPAMENTO)
                               LEFT OUTER JOIN CAD_PESSOA TE ON (TE.CADASTRO = O.TECNICO)
                               WHERE O.EMPRESA = :E_EMPRESA
                                 AND O.STATUS = :E_STATUS
                               INTO :EMPRESA, :NUMERO, :DESCRICAO, :EMISSAO, :CLIENTE, :NOME_CLIENTE,
                                    :CIDADE_CLIENTE, :FONE_01_CLIENTE,
                                    :CELULAR_CLIENTE, :EQUIPAMENTO, :DESCRICAO_EQUIPAMENTO,
                                    :NUMERO_SERIE_EQUIPAMENTO, :MARCA_EQUIPAMENTO, :MODELO_EQUIPAMENTO,
                                    :TECNICO, :NOME_TECNICO, :PREVISAO_ENTREGA, :STATUS, :TOTAL_ORDEM_SERVICO,
                                    :NUMERO_ORDEM_SERVICO_ORIGINAL, :VERSAO_ORDEM_SERVICO, :VALOR_ORCAMENTO, :STATUS_ORCAMENTO,
                                    :NUMERO_COO_IMPRESSO_DAV, :DAV_IMPRESSO, :NUMERO_SERIE_IMPRESSO_DAV, :SERIE_NOTA_DEVOLUCAO,
                                    :NUMERO_NOTA_DEVOLUCAO, :DAV_IMPRESSO_DATA

                               DO BEGIN
                                   SUSPEND;
                               END
                           END
                       END
                   END
               END
           END
           ELSE BEGIN
               IF (:E_FILTRO = 'Select') THEN
               BEGIN
                   SELECT O.EMPRESA, O.NUMERO, O.DESCRICAO, O.CLIENTE, CL.NOME NOME_CLIENTE, CL.ENDERECO ENDERECO_CLIENTE,
                          CL.BAIRRO BAIRRO_CLIENTE, CI.NOME || ' - ' || CI.ESTADO CIDADE_CLIENTE, CI.ESTADO ESTADO_CLIENTE, CL.FONE_01
                          FONE_01_CLIENTE, CL.CELULAR CELULAR_CLIENTE, CL.CLI_PERCENTUAL_DESCONTO_VENDA, O.NOME_SOLICITANTE, O.ATENDENTE,
                          A.NOME NOME_ATENDENTE, O.EMISSAO, O.EQUIPAMENTO, E.DESCRICAO DESCRICAO_EQUIPAMENTO, E.MARCA MARCA_EQUIPAMENTO,
                          O.TECNICO, TE.NOME NOME_TECNICO, O.PRIORIDADE, O.PREVISAO_ENTREGA, O.HORA_ENTREGA, O.DETALHAMENTO_PROBLEMA,
                          O.STATUS, O.DATA_FECHAMENTO_TECNICO, O.HORA_FECHAMENTO_TECNICO, O.OBSERVACAO_TECNICO, O.FORMA_COBRANCA,
                          O.TOTAL_HORAS, O.UTILIZAR_PRECO_PROMOCAO, O.VALOR_FRETE, O.VALOR_DESPESA, O.VALOR_DESCONTO, O.TOTAL_PRODUTO,
                          O.TOTAL_SERVICO, O.TOTAL_ORDEM_SERVICO, O.DATA_FECHAMENTO, O.OBSERVACAO, O.CAIXA_ECF, O.ANO_ECF, O.NUMERO_ECF,
                          O.NUMERO_ORDEM_SERVICO_ORIGINAL, O.NUMERO_ORDEM_SERVICO_ANTERIOR, O.VERSAO_ORDEM_SERVICO,
                          O.DATA_ORCAMENTO, O.HORA_ORCAMENTO, O.NOME_CONTATO_ORCAMENTO, O.VALOR_ORCAMENTO, O.STATUS_ORCAMENTO,
                          O.OBSERVACAO_ORCAMENTO, O.USUARIO_SISTEMA_ORCAMENTO, US.NOME NOME_USUARIO_ORCAMENTO, RM.NUMERO NUMERO_RECEITA,
                          RM.DATA_CONSULTA DATA_CONSULTA_RECEITA, RM.MEDICO MEDICO_RECEITA, M.NOME NOME_MEDICO_RECEITA,
                          RM.ESFERICO_DIREITO ESFERICO_DIREITO_RECEITA, RM.CILINDRO_DIREITO CILINDRO_DIREITO_RECEITA, RM.EIXO_DIREITO
                          EIXO_DIREITO_RECEITA, RM.ADICAO_DIREITO ADICAO_DIREITO_RECEITA, RM.DNP_DIREITO DNP_DIREITO_RECEITA, RM.ALTURA_DIREITO
                          ALTURA_DIREITO_RECEITA, RM.ESFERICO_ESQUERDO ESFERICO_ESQUERDO_RECEITA, RM.CILINDRO_ESQUERDO
                          CILINDRO_ESQUERDO_RECEITA, RM.EIXO_ESQUERDO EIXO_ESQUERDO_RECEITA, RM.ADICAO_ESQUERDO ADICAO_ESQUERDO_RECEITA,
                          RM.DNP_ESQUERDO DNP_ESQUERDO_RECEITA, RM.ALTURA_ESQUERDO ALTURA_ESQUERDO_RECEITA, RM.ARMACAO ARMACAO_RECEITA,
                          RM.TIPO_LENTE TIPO_LENTE_RECEITA, O.NUMERO_CUPOM_FISCAL, O.NUMERO_COO_IMPRESSO_DAV,
                          O.EMISSAO_CRIPTOGRAFADO, O.DAV_IMPRESSO, O.NUMERO_SERIE_IMPRESSO_DAV, O.SERIE_NOTA_DEVOLUCAO,
                          O.NUMERO_NOTA_DEVOLUCAO, O.DAV_IMPRESSO_DATA
                   FROM MOV_ORDEM_SERVICO O
                   LEFT OUTER JOIN CAD_PESSOA CL ON (CL.CADASTRO = O.CLIENTE)
                   LEFT OUTER JOIN CAD_CIDADE CI ON (CI.CADASTRO = CL.CIDADE)
                   LEFT OUTER JOIN CAD_EQUIPAMENTO E ON (E.EMPRESA = O.EMPRESA
                                                     AND E.CADASTRO = O.EQUIPAMENTO)
                   LEFT OUTER JOIN CAD_PESSOA A ON (A.CADASTRO = O.ATENDENTE)
                   LEFT OUTER JOIN CAD_PESSOA TE ON (TE.CADASTRO = O.TECNICO)
                   LEFT OUTER JOIN CAD_USUARIO_SISTEMA US ON (US.EMPRESA = O.EMPRESA
                                                          AND US.CADASTRO = O.USUARIO_SISTEMA_ORCAMENTO)
                   LEFT OUTER JOIN MOV_RECEITA_MEDICA RM ON (RM.EMPRESA = E.EMPRESA
                                                         AND RM.NUMERO = E.RECEITA_MEDICA)
                   LEFT OUTER JOIN CAD_MEDICO M ON (M.CADASTRO = RM.MEDICO)
                   WHERE O.EMPRESA = :E_EMPRESA
                     AND O.NUMERO = :E_NUMERO
                   INTO :EMPRESA, :NUMERO, :DESCRICAO, :CLIENTE, :NOME_CLIENTE, :ENDERECO_CLIENTE,
                          :BAIRRO_CLIENTE, :CIDADE_CLIENTE, :ESTADO_CLIENTE, :FONE_01_CLIENTE,
                          :CELULAR_CLIENTE, :PERCENTUAL_DESCONTO_CLIENTE, :NOME_SOLICITANTE, :ATENDENTE, :NOME_ATENDENTE,
                          :EMISSAO, :EQUIPAMENTO, :DESCRICAO_EQUIPAMENTO, :MARCA_EQUIPAMENTO,
                          :TECNICO, :NOME_TECNICO, :PRIORIDADE, :PREVISAO_ENTREGA, :HORA_ENTREGA, :DETALHAMENTO_PROBLEMA,
                          :STATUS, :DATA_FECHAMENTO_TECNICO, :HORA_FECHAMENTO_TECNICO, :OBSERVACAO_TECNICO, :FORMA_COBRANCA,
                          :TOTAL_HORAS, :UTILIZAR_PRECO_PROMOCAO, :VALOR_FRETE, :VALOR_DESPESA, :VALOR_DESCONTO, :TOTAL_PRODUTO,
                          :TOTAL_SERVICO, :TOTAL_ORDEM_SERVICO, :DATA_FECHAMENTO, :OBSERVACAO, :CAIXA_ECF, :ANO_ECF, :NUMERO_ECF,
                          :NUMERO_ORDEM_SERVICO_ORIGINAL, :NUMERO_ORDEM_SERVICO_ANTERIOR, :VERSAO_ORDEM_SERVICO,
                          :DATA_ORCAMENTO, :HORA_ORCAMENTO, :NOME_CONTATO_ORCAMENTO, :VALOR_ORCAMENTO, :STATUS_ORCAMENTO,
                          :OBSERVACAO_ORCAMENTO, :USUARIO_SISTEMA_ORCAMENTO, :NOME_USUARIO_ORCAMENTO, :NUMERO_RECEITA,
                          :DATA_CONSULTA_RECEITA, :MEDICO_RECEITA, :NOME_MEDICO_RECEITA,
                          :ESFERICO_DIREITO_RECEITA, :CILINDRO_DIREITO_RECEITA,
                          :EIXO_DIREITO_RECEITA, :ADICAO_DIREITO_RECEITA, :DNP_DIREITO_RECEITA,
                          :ALTURA_DIREITO_RECEITA, :ESFERICO_ESQUERDO_RECEITA,
                          :CILINDRO_ESQUERDO_RECEITA, :EIXO_ESQUERDO_RECEITA, :ADICAO_ESQUERDO_RECEITA,
                          :DNP_ESQUERDO_RECEITA, :ALTURA_ESQUERDO_RECEITA, :ARMACAO_RECEITA,
                          :TIPO_LENTE_RECEITA, :NUMERO_CUPOM_FISCAL, :NUMERO_COO_IMPRESSO_DAV,
                          :EMISSAO_CRIPTOGRAFADO, :DAV_IMPRESSO, :NUMERO_SERIE_IMPRESSO_DAV, :SERIE_NOTA_DEVOLUCAO, :NUMERO_NOTA_DEVOLUCAO,
                          :DAV_IMPRESSO_DATA;
                   SUSPEND;
               END
           END
       END
  END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER PROCEDURE PRO_MOV_IT_ORDEM_SERVICO (
    e_evento varchar(20),
    e_empresa integer,
    e_numero integer)
returns (
    empresa integer,
    numero integer,
    seq integer,
    produto integer,
    codigo_barra varchar(25),
    descricao_produto varchar(80),
    referencia_produto varchar(50),
    unidade_produto varchar(3),
    quantidade double precision,
    valor_original double precision,
    valor double precision,
    percentual_desconto double precision,
    total double precision,
    preco_custo double precision,
    custo_medio double precision,
    total_produto double precision,
    total_servico double precision,
    data_inclusao date,
    item_cancelado varchar(3),
    tributo_icms varchar(3),
    aliquota_icms double precision,
    aliquota_ipi double precision,
    tipo varchar(20),
    peso_bruto double precision,
    peso_liquido double precision,
    volume double precision,
    cubagem double precision,
    reducao_aliquota_icms_07 double precision,
    reducao_aliquota_icms_12 double precision,
    reducao_aliquota_icms_17 double precision,
    tipo_indicador_calculo varchar(1),
    tipo_mercadoria_manufaturada varchar(1),
    pis_cofins varchar(1),
    totalizador_parcial varchar(10),
    hora_inclusao varchar(8),
    data_cancelamento date,
    hora_cancelamento varchar(8),
    horas varchar(25),
    last_horas varchar(25),
    novo_registro varchar(3),
    registro_excluido varchar(3))
as
BEGIN
    IF (E_EVENTO = 'Select') THEN
    BEGIN
        FOR SELECT I.EMPRESA, I.NUMERO, I.SEQ, I.PRODUTO, I.CODIGO_BARRA, I.DESCRICAO_PRODUTO, I.UNIDADE_PRODUTO,
                   I.QUANTIDADE, I.VALOR_ORIGINAL, I.VALOR, I.PERCENTUAL_DESCONTO, I.TOTAL, I.PRECO_CUSTO, I.CUSTO_MEDIO,
                   I.TOTAL_PRODUTO, I.TOTAL_SERVICO, I.DATA_INCLUSAO, I.ITEM_CANCELADO, I.TOTALIZADOR_PARCIAL,
                   PR.TRIBUTO_ICMS, PR.ALIQUOTA_ICMS, PR.ALIQUOTA_IPI, PR.TIPO, PR.PESO_BRUTO,
                   PR.PESO_LIQUIDO, PR.VOLUME, PR.CUBAGEM, PR.REDUCAO_ALIQUOTA_ICMS_07, PR.REDUCAO_ALIQUOTA_ICMS_12,
                   REDUCAO_ALIQUOTA_ICMS_17, PR.TIPO_INDICADOR_CALCULO, PR.TIPO_MERCADORIA_MANUFATURADA, PR.PIS_COFINS,
                   I.REFERENCIA_PRODUTO, I.HORA_INCLUSAO, I.DATA_CANCELAMENTO, I.HORA_CANCELAMENTO, I.HORAS,
                   I.LAST_HORAS, I.NOVO_REGISTRO, I.REGISTRO_EXCLUIDO
        FROM MOV_IT_ORDEM_SERVICO I
        LEFT OUTER JOIN CAD_PRODUTO PR ON(PR.EMPRESA = I.EMPRESA
                                      AND PR.CADASTRO = I.PRODUTO)
        WHERE I.EMPRESA = :E_EMPRESA
          AND I.NUMERO = :E_NUMERO
          AND I.ITEM_CANCELADO <> 'Sim'
        ORDER BY I.SEQ
        INTO :EMPRESA, :NUMERO, :SEQ, :PRODUTO, :CODIGO_BARRA, :DESCRICAO_PRODUTO, :UNIDADE_PRODUTO,
        :QUANTIDADE, :VALOR_ORIGINAL, :VALOR, :PERCENTUAL_DESCONTO, :TOTAL, :PRECO_CUSTO, :CUSTO_MEDIO,
        :TOTAL_PRODUTO, :TOTAL_SERVICO, :DATA_INCLUSAO, :ITEM_CANCELADO, :TOTALIZADOR_PARCIAL,
        :TRIBUTO_ICMS, :ALIQUOTA_ICMS, :ALIQUOTA_IPI, :TIPO, :PESO_BRUTO,
        :PESO_LIQUIDO, :VOLUME, :CUBAGEM, :REDUCAO_ALIQUOTA_ICMS_07, :REDUCAO_ALIQUOTA_ICMS_12,
        :REDUCAO_ALIQUOTA_ICMS_17, :TIPO_INDICADOR_CALCULO, :TIPO_MERCADORIA_MANUFATURADA, :PIS_COFINS,
        :REFERENCIA_PRODUTO, :HORA_INCLUSAO, :DATA_CANCELAMENTO, :HORA_CANCELAMENTO, :HORAS, :LAST_HORAS, :NOVO_REGISTRO,
        :REGISTRO_EXCLUIDO, :NOVO_REGISTRO, :REGISTRO_EXCLUIDO
        DO BEGIN
            SUSPEND;
        END
    END
END

Erro..:  count of column list and variable list do not match

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER PROCEDURE PRO_MOV_ORDEM_SERVICO_MECANICA (
    e_filtro varchar(20),
    e_empresa integer,
    e_cliente integer,
    e_veiculo integer,
    e_status varchar(20),
    e_numero integer)
returns (
    empresa integer,
    numero integer,
    descricao varchar(100),
    cliente integer,
    nome_cliente varchar(80),
    cidade_cliente varchar(55),
    estado_cliente varchar(2),
    fone_01_cliente varchar(15),
    celular_cliente varchar(15),
    percentual_desconto_cliente double precision,
    nome_solicitante varchar(50),
    atendente integer,
    nome_atendente varchar(80),
    emissao date,
    veiculo integer,
    descricao_veiculo varchar(50),
    placa_veiculo varchar(8),
    ano_fabricacao_veiculo integer,
    ano_modelo_veiculo integer,
    cor_veiculo varchar(30),
    km_veiculo integer,
    numero_chassis_veiculo varchar(30),
    frota_veiculo varchar(20),
    prisma integer,
    km_atual_veiculo integer,
    prioridade varchar(10),
    previsao_entrega date,
    hora_entrega varchar(5),
    detalhamento_problema blob sub_type 0 segment size 80,
    status varchar(15),
    total_horas varchar(5),
    forma_cobranca varchar(20),
    utilizar_preco_promocao varchar(1),
    valor_frete double precision,
    valor_despesa double precision,
    valor_desconto double precision,
    total_produto double precision,
    total_servico double precision,
    total_ordem_servico double precision,
    data_fechamento date,
    observacao blob sub_type 0 segment size 80,
    caixa_ecf varchar(3),
    ano_ecf integer,
    numero_ecf integer,
    numero_ordem_servico_original integer,
    numero_ordem_servico_anterior integer,
    versao_ordem_servico integer,
    tipo_ordem_servico_mecanica varchar(20),
    seguradora integer,
    nome_seguradora varchar(80),
    estado_seguradora varchar(2),
    valor_franquia double precision,
    numero_cupom_fiscal integer,
    numero_coo_impresso_dav integer,
    emissao_criptografado varchar(10),
    dav_impresso varchar(1),
    numero_serie_impresso_dav varchar(20),
    dav_impresso_data date)
as
BEGIN
    IF (:E_FILTRO = 'Gerenciar') THEN
    BEGIN
        IF ((:E_VEICULO > 0) AND (:E_CLIENTE > 0)) THEN
        BEGIN
            IF (:E_STATUS = 'Todos') THEN
            BEGIN
                FOR SELECT O.EMPRESA, O.NUMERO, O.DESCRICAO, O.EMISSAO, O.CLIENTE, CL.NOME NOME_CLIENTE, CI.NOME NOME_CIDADE,
                CL.FONE_01 FONE_01_CLIENTE, CL.CELULAR CELULAR_CLIENTE, O.VEICULO, VE.DESCRICAO DESCRICAO_VEICULO, VE.PLACA
                PLACA_VEICULO, VE.ANO_FABRICACAO ANO_FABRICACAO_VEICULO, VE.ANO_MODELO ANO_MODELO_VEICULO, VE.COR COR_VEICULO,
                O.PREVISAO_ENTREGA, O.STATUS, O.TOTAL_ORDEM_SERVICO, O.NUMERO_ORDEM_SERVICO_ORIGINAL, O.VERSAO_ORDEM_SERVICO,
                O.NUMERO_COO_IMPRESSO_DAV, O.DAV_IMPRESSO, O.NUMERO_SERIE_IMPRESSO_DAV, O.DAV_IMPRESSO_DATA
                FROM MOV_ORDEM_SERVICO O
                LEFT OUTER JOIN CAD_PESSOA CL ON(CL.CADASTRO = O.CLIENTE)
                LEFT OUTER JOIN CAD_CIDADE CI ON(CI.CADASTRO = CL.CIDADE)
                LEFT OUTER JOIN CAD_VEICULO VE ON(VE.EMPRESA = O.EMPRESA
                                              AND VE.CADASTRO = O.VEICULO)
                WHERE O.EMPRESA = :E_EMPRESA
                  AND O.VEICULO = :E_VEICULO
                  AND O.CLIENTE = :E_CLIENTE
                  AND O.STATUS <> 'Alterada'
                INTO :EMPRESA, :NUMERO, :DESCRICAO, :EMISSAO, :CLIENTE, :NOME_CLIENTE, :CIDADE_CLIENTE,
                :FONE_01_CLIENTE, :CELULAR_CLIENTE, :VEICULO, :DESCRICAO_VEICULO, :PLACA_VEICULO,
                :ANO_FABRICACAO_VEICULO, :ANO_MODELO_VEICULO, :COR_VEICULO,
                :PREVISAO_ENTREGA, :STATUS, :TOTAL_ORDEM_SERVICO, :NUMERO_ORDEM_SERVICO_ORIGINAL, :VERSAO_ORDEM_SERVICO,
                :NUMERO_COO_IMPRESSO_DAV, :DAV_IMPRESSO, :NUMERO_SERIE_IMPRESSO_DAV, :DAV_IMPRESSO_DATA
                DO BEGIN
                    SUSPEND;
                END
            END
            ELSE BEGIN
                FOR SELECT O.EMPRESA, O.NUMERO, O.DESCRICAO, O.EMISSAO, O.CLIENTE, CL.NOME NOME_CLIENTE, CI.NOME NOME_CIDADE,
                CL.FONE_01 FONE_01_CLIENTE, CL.CELULAR CELULAR_CLIENTE, O.VEICULO, VE.DESCRICAO DESCRICAO_VEICULO, VE.PLACA
                PLACA_VEICULO, VE.ANO_FABRICACAO ANO_FABRICACAO_VEICULO, VE.ANO_MODELO ANO_MODELO_VEICULO, VE.COR COR_VEICULO,
                O.PREVISAO_ENTREGA, O.STATUS, O.TOTAL_ORDEM_SERVICO, O.NUMERO_ORDEM_SERVICO_ORIGINAL, O.VERSAO_ORDEM_SERVICO,
                O.NUMERO_COO_IMPRESSO_DAV, O.DAV_IMPRESSO, O.NUMERO_SERIE_IMPRESSO_DAV, O.DAV_IMPRESSO_DATA
                FROM MOV_ORDEM_SERVICO O
                LEFT OUTER JOIN CAD_PESSOA CL ON(CL.CADASTRO = O.CLIENTE)
                LEFT OUTER JOIN CAD_CIDADE CI ON(CI.CADASTRO = CL.CIDADE)
                LEFT OUTER JOIN CAD_VEICULO VE ON(VE.EMPRESA = O.EMPRESA
                                              AND VE.CADASTRO = O.VEICULO)
                WHERE O.EMPRESA = :E_EMPRESA
                  AND O.VEICULO = :E_VEICULO
                  AND O.CLIENTE = :E_CLIENTE
                  AND O.STATUS = :E_STATUS
                INTO :EMPRESA, :NUMERO, :DESCRICAO, :EMISSAO, :CLIENTE, :NOME_CLIENTE, :CIDADE_CLIENTE,
                :FONE_01_CLIENTE, :CELULAR_CLIENTE, :VEICULO, :DESCRICAO_VEICULO, :PLACA_VEICULO,
                :ANO_FABRICACAO_VEICULO, :ANO_MODELO_VEICULO, :COR_VEICULO,
                :PREVISAO_ENTREGA, :STATUS, :TOTAL_ORDEM_SERVICO, :NUMERO_ORDEM_SERVICO_ORIGINAL, :VERSAO_ORDEM_SERVICO,
                :NUMERO_COO_IMPRESSO_DAV, :DAV_IMPRESSO, :NUMERO_SERIE_IMPRESSO_DAV, :DAV_IMPRESSO_DATA
                DO BEGIN
                    SUSPEND;
                END
            END
        END
        ELSE BEGIN
            IF (:E_VEICULO > 0) THEN
            BEGIN
                IF (:E_STATUS = 'Todos') THEN
                BEGIN
                    FOR SELECT O.EMPRESA, O.NUMERO, O.DESCRICAO, O.EMISSAO, O.CLIENTE, CL.NOME NOME_CLIENTE, CI.NOME NOME_CIDADE,
                    CL.FONE_01 FONE_01_CLIENTE, CL.CELULAR CELULAR_CLIENTE, O.VEICULO, VE.DESCRICAO DESCRICAO_VEICULO, VE.PLACA
                    PLACA_VEICULO, VE.ANO_FABRICACAO ANO_FABRICACAO_VEICULO, VE.ANO_MODELO ANO_MODELO_VEICULO, VE.COR COR_VEICULO,
                    O.PREVISAO_ENTREGA, O.STATUS, O.TOTAL_ORDEM_SERVICO, O.NUMERO_ORDEM_SERVICO_ORIGINAL, O.VERSAO_ORDEM_SERVICO,
                    O.NUMERO_COO_IMPRESSO_DAV, O.DAV_IMPRESSO, O.NUMERO_SERIE_IMPRESSO_DAV, O.DAV_IMPRESSO_DATA
                    FROM MOV_ORDEM_SERVICO O
                    LEFT OUTER JOIN CAD_PESSOA CL ON(CL.CADASTRO = O.CLIENTE)
                    LEFT OUTER JOIN CAD_CIDADE CI ON(CI.CADASTRO = CL.CIDADE)
                    LEFT OUTER JOIN CAD_VEICULO VE ON(VE.EMPRESA = O.EMPRESA
                                                  AND VE.CADASTRO = O.VEICULO)
                    WHERE O.EMPRESA = :E_EMPRESA
                      AND O.VEICULO = :E_VEICULO
                      AND O.STATUS <> 'Alterada'
                    INTO :EMPRESA, :NUMERO, :DESCRICAO, :EMISSAO, :CLIENTE, :NOME_CLIENTE, :CIDADE_CLIENTE,
                    :FONE_01_CLIENTE, :CELULAR_CLIENTE, :VEICULO, :DESCRICAO_VEICULO, :PLACA_VEICULO,
                    :ANO_FABRICACAO_VEICULO, :ANO_MODELO_VEICULO, :COR_VEICULO,
                    :PREVISAO_ENTREGA, :STATUS, :TOTAL_ORDEM_SERVICO, :NUMERO_ORDEM_SERVICO_ORIGINAL, :VERSAO_ORDEM_SERVICO,
                    :NUMERO_COO_IMPRESSO_DAV, :DAV_IMPRESSO, :NUMERO_SERIE_IMPRESSO_DAV, :DAV_IMPRESSO_DATA
                    DO BEGIN
                        SUSPEND;
                    END
                END
                ELSE BEGIN
                    FOR SELECT O.EMPRESA, O.NUMERO, O.DESCRICAO, O.EMISSAO, O.CLIENTE, CL.NOME NOME_CLIENTE, CI.NOME NOME_CIDADE,
                    CL.FONE_01 FONE_01_CLIENTE, CL.CELULAR CELULAR_CLIENTE, O.VEICULO, VE.DESCRICAO DESCRICAO_VEICULO, VE.PLACA
                    PLACA_VEICULO, VE.ANO_FABRICACAO ANO_FABRICACAO_VEICULO, VE.ANO_MODELO ANO_MODELO_VEICULO, VE.COR COR_VEICULO,
                    O.PREVISAO_ENTREGA, O.STATUS, O.TOTAL_ORDEM_SERVICO, O.NUMERO_ORDEM_SERVICO_ORIGINAL, O.VERSAO_ORDEM_SERVICO,
                    O.NUMERO_COO_IMPRESSO_DAV, O.DAV_IMPRESSO, O.NUMERO_SERIE_IMPRESSO_DAV, O.DAV_IMPRESSO_DATA
                    FROM MOV_ORDEM_SERVICO O
                    LEFT OUTER JOIN CAD_PESSOA CL ON(CL.CADASTRO = O.CLIENTE)
                    LEFT OUTER JOIN CAD_CIDADE CI ON(CI.CADASTRO = CL.CIDADE)
                    LEFT OUTER JOIN CAD_VEICULO VE ON(VE.EMPRESA = O.EMPRESA
                                                  AND VE.CADASTRO = O.VEICULO)
                    WHERE O.EMPRESA = :E_EMPRESA
                      AND O.VEICULO = :E_VEICULO
                      AND O.STATUS = :E_STATUS
                    INTO :EMPRESA, :NUMERO, :DESCRICAO, :EMISSAO, :CLIENTE, :NOME_CLIENTE, :CIDADE_CLIENTE,
                    :FONE_01_CLIENTE, :CELULAR_CLIENTE, :VEICULO, :DESCRICAO_VEICULO, :PLACA_VEICULO,
                    :ANO_FABRICACAO_VEICULO, :ANO_MODELO_VEICULO, :COR_VEICULO,
                    :PREVISAO_ENTREGA, :STATUS, :TOTAL_ORDEM_SERVICO, :NUMERO_ORDEM_SERVICO_ORIGINAL, :VERSAO_ORDEM_SERVICO,
                    :NUMERO_COO_IMPRESSO_DAV, :DAV_IMPRESSO, :NUMERO_SERIE_IMPRESSO_DAV, :DAV_IMPRESSO_DATA
                    DO BEGIN
                        SUSPEND;
                    END
                END
            END
            ELSE BEGIN
                IF (:E_CLIENTE > 0) THEN
                BEGIN
                    IF (:E_STATUS = 'Todos') THEN
                    BEGIN
                        FOR SELECT O.EMPRESA, O.NUMERO, O.DESCRICAO, O.EMISSAO, O.CLIENTE, CL.NOME NOME_CLIENTE, CI.NOME NOME_CIDADE,
                        CL.FONE_01 FONE_01_CLIENTE, CL.CELULAR CELULAR_CLIENTE, O.VEICULO, VE.DESCRICAO DESCRICAO_VEICULO, VE.PLACA
                        PLACA_VEICULO, VE.ANO_FABRICACAO ANO_FABRICACAO_VEICULO, VE.ANO_MODELO ANO_MODELO_VEICULO, VE.COR COR_VEICULO,
                        O.PREVISAO_ENTREGA, O.STATUS, O.TOTAL_ORDEM_SERVICO, O.NUMERO_ORDEM_SERVICO_ORIGINAL, O.VERSAO_ORDEM_SERVICO,
                        O.NUMERO_COO_IMPRESSO_DAV, O.DAV_IMPRESSO, O.NUMERO_SERIE_IMPRESSO_DAV, O.DAV_IMPRESSO_DATA
                        FROM MOV_ORDEM_SERVICO O
                        LEFT OUTER JOIN CAD_PESSOA CL ON(CL.CADASTRO = O.CLIENTE)
                        LEFT OUTER JOIN CAD_CIDADE CI ON(CI.CADASTRO = CL.CIDADE)
                        LEFT OUTER JOIN CAD_VEICULO VE ON(VE.EMPRESA = O.EMPRESA
                                                      AND VE.CADASTRO = O.VEICULO)
                        WHERE O.EMPRESA = :E_EMPRESA
                          AND O.CLIENTE = :E_CLIENTE
                          AND O.STATUS <> 'Alterada'
                        INTO :EMPRESA, :NUMERO, :DESCRICAO, :EMISSAO, :CLIENTE, :NOME_CLIENTE, :CIDADE_CLIENTE,
                        :FONE_01_CLIENTE, :CELULAR_CLIENTE, :VEICULO, :DESCRICAO_VEICULO, :PLACA_VEICULO,
                        :ANO_FABRICACAO_VEICULO, :ANO_MODELO_VEICULO, :COR_VEICULO,
                        :PREVISAO_ENTREGA, :STATUS, :TOTAL_ORDEM_SERVICO, :NUMERO_ORDEM_SERVICO_ORIGINAL, :VERSAO_ORDEM_SERVICO,
                        :NUMERO_COO_IMPRESSO_DAV, :DAV_IMPRESSO, :NUMERO_SERIE_IMPRESSO_DAV, :DAV_IMPRESSO_DATA
                        DO BEGIN
                            SUSPEND;
                        END
                    END
                    ELSE BEGIN
                        FOR SELECT O.EMPRESA, O.NUMERO, O.DESCRICAO, O.EMISSAO, O.CLIENTE, CL.NOME NOME_CLIENTE, CI.NOME NOME_CIDADE,
                        CL.FONE_01 FONE_01_CLIENTE, CL.CELULAR CELULAR_CLIENTE, O.VEICULO, VE.DESCRICAO DESCRICAO_VEICULO, VE.PLACA
                        PLACA_VEICULO, VE.ANO_FABRICACAO ANO_FABRICACAO_VEICULO, VE.ANO_MODELO ANO_MODELO_VEICULO, VE.COR COR_VEICULO,
                        O.PREVISAO_ENTREGA, O.STATUS, O.TOTAL_ORDEM_SERVICO, O.NUMERO_ORDEM_SERVICO_ORIGINAL, O.VERSAO_ORDEM_SERVICO,
                        O.NUMERO_COO_IMPRESSO_DAV, O.DAV_IMPRESSO, O.NUMERO_SERIE_IMPRESSO_DAV, O.DAV_IMPRESSO_DATA
                        FROM MOV_ORDEM_SERVICO O
                        LEFT OUTER JOIN CAD_PESSOA CL ON(CL.CADASTRO = O.CLIENTE)
                        LEFT OUTER JOIN CAD_CIDADE CI ON(CI.CADASTRO = CL.CIDADE)
                        LEFT OUTER JOIN CAD_VEICULO VE ON(VE.EMPRESA = O.EMPRESA
                                                      AND VE.CADASTRO = O.VEICULO)
                        WHERE O.EMPRESA = :E_EMPRESA
                          AND O.CLIENTE = :E_CLIENTE
                          AND O.STATUS = :E_STATUS
                        INTO :EMPRESA, :NUMERO, :DESCRICAO, :EMISSAO, :CLIENTE, :NOME_CLIENTE, :CIDADE_CLIENTE,
                        :FONE_01_CLIENTE, :CELULAR_CLIENTE, :VEICULO, :DESCRICAO_VEICULO, :PLACA_VEICULO,
                        :ANO_FABRICACAO_VEICULO, :ANO_MODELO_VEICULO, :COR_VEICULO,
                        :PREVISAO_ENTREGA, :STATUS, :TOTAL_ORDEM_SERVICO, :NUMERO_ORDEM_SERVICO_ORIGINAL, :VERSAO_ORDEM_SERVICO,
                        :NUMERO_COO_IMPRESSO_DAV, :DAV_IMPRESSO, :NUMERO_SERIE_IMPRESSO_DAV, :DAV_IMPRESSO_DATA
                        DO BEGIN
                            SUSPEND;
                        END
                    END
                END
                ELSE BEGIN
                    IF (:E_STATUS = 'Todos') THEN
                    BEGIN
                        FOR SELECT O.EMPRESA, O.NUMERO, O.DESCRICAO, O.EMISSAO, O.CLIENTE, CL.NOME NOME_CLIENTE, CI.NOME NOME_CIDADE,
                        CL.FONE_01 FONE_01_CLIENTE, CL.CELULAR CELULAR_CLIENTE, O.VEICULO, VE.DESCRICAO DESCRICAO_VEICULO, VE.PLACA
                        PLACA_VEICULO, VE.ANO_FABRICACAO ANO_FABRICACAO_VEICULO, VE.ANO_MODELO ANO_MODELO_VEICULO, VE.COR COR_VEICULO,
                        O.PREVISAO_ENTREGA, O.STATUS, O.TOTAL_ORDEM_SERVICO, O.NUMERO_ORDEM_SERVICO_ORIGINAL, O.VERSAO_ORDEM_SERVICO,
                        O.NUMERO_COO_IMPRESSO_DAV, O.DAV_IMPRESSO, O.NUMERO_SERIE_IMPRESSO_DAV, O.DAV_IMPRESSO_DATA
                        FROM MOV_ORDEM_SERVICO O
                        LEFT OUTER JOIN CAD_PESSOA CL ON(CL.CADASTRO = O.CLIENTE)
                        LEFT OUTER JOIN CAD_CIDADE CI ON(CI.CADASTRO = CL.CIDADE)
                        LEFT OUTER JOIN CAD_VEICULO VE ON(VE.EMPRESA = O.EMPRESA
                                                      AND VE.CADASTRO = O.VEICULO)
                        WHERE O.EMPRESA = :E_EMPRESA
                          AND O.STATUS <> 'Alterada'
                        INTO :EMPRESA, :NUMERO, :DESCRICAO, :EMISSAO, :CLIENTE, :NOME_CLIENTE, :CIDADE_CLIENTE,
                        :FONE_01_CLIENTE, :CELULAR_CLIENTE, :VEICULO, :DESCRICAO_VEICULO, :PLACA_VEICULO,
                        :ANO_FABRICACAO_VEICULO, :ANO_MODELO_VEICULO, :COR_VEICULO,
                        :PREVISAO_ENTREGA, :STATUS, :TOTAL_ORDEM_SERVICO, :NUMERO_ORDEM_SERVICO_ORIGINAL, :VERSAO_ORDEM_SERVICO,
                        :NUMERO_COO_IMPRESSO_DAV, :DAV_IMPRESSO, :NUMERO_SERIE_IMPRESSO_DAV, :DAV_IMPRESSO_DATA
                        DO BEGIN
                            SUSPEND;
                        END
                    END
                    ELSE BEGIN
                        FOR SELECT O.EMPRESA, O.NUMERO, O.DESCRICAO, O.EMISSAO, O.CLIENTE, CL.NOME NOME_CLIENTE, CI.NOME NOME_CIDADE,
                        CL.FONE_01 FONE_01_CLIENTE, CL.CELULAR CELULAR_CLIENTE, O.VEICULO, VE.DESCRICAO DESCRICAO_VEICULO, VE.PLACA
                        PLACA_VEICULO, VE.ANO_FABRICACAO ANO_FABRICACAO_VEICULO, VE.ANO_MODELO ANO_MODELO_VEICULO, VE.COR COR_VEICULO,
                        O.PREVISAO_ENTREGA, O.STATUS, O.TOTAL_ORDEM_SERVICO, O.NUMERO_ORDEM_SERVICO_ORIGINAL, O.VERSAO_ORDEM_SERVICO,
                        O.NUMERO_COO_IMPRESSO_DAV, O.DAV_IMPRESSO, O.NUMERO_SERIE_IMPRESSO_DAV, O.DAV_IMPRESSO_DATA
                        FROM MOV_ORDEM_SERVICO O
                        LEFT OUTER JOIN CAD_PESSOA CL ON(CL.CADASTRO = O.CLIENTE)
                        LEFT OUTER JOIN CAD_CIDADE CI ON(CI.CADASTRO = CL.CIDADE)
                        LEFT OUTER JOIN CAD_VEICULO VE ON(VE.EMPRESA = O.EMPRESA
                                                      AND VE.CADASTRO = O.VEICULO)
                        WHERE O.EMPRESA = :E_EMPRESA
                          AND O.STATUS = :E_STATUS
                        INTO :EMPRESA, :NUMERO, :DESCRICAO, :EMISSAO, :CLIENTE, :NOME_CLIENTE, :CIDADE_CLIENTE,
                        :FONE_01_CLIENTE, :CELULAR_CLIENTE, :VEICULO, :DESCRICAO_VEICULO, :PLACA_VEICULO,
                        :ANO_FABRICACAO_VEICULO, :ANO_MODELO_VEICULO, :COR_VEICULO,
                        :PREVISAO_ENTREGA, :STATUS, :TOTAL_ORDEM_SERVICO, :NUMERO_ORDEM_SERVICO_ORIGINAL, :VERSAO_ORDEM_SERVICO,
                        :NUMERO_COO_IMPRESSO_DAV, :DAV_IMPRESSO, :NUMERO_SERIE_IMPRESSO_DAV, :DAV_IMPRESSO_DATA
                        DO BEGIN
                            SUSPEND;
                        END
                    END
                END
            END
        END
    END
    ELSE BEGIN
        IF (:E_FILTRO = 'Select') THEN
        BEGIN
            SELECT O.EMPRESA, O.NUMERO, O.DESCRICAO, O.CLIENTE, CL.NOME NOME_CLIENTE, CI.NOME || ' - ' || CI.ESTADO CIDADE_CLIENTE,
            CI.ESTADO ESTADO_CLIENTE, CL.FONE_01 FONE_01_CLIENTE, CL.CELULAR CELULAR_CLIENTE, CL.CLI_PERCENTUAL_DESCONTO_VENDA, O.NOME_SOLICITANTE,
            O.ATENDENTE, A.NOME NOME_ATENDENTE, O.EMISSAO, O.VEICULO, VE.DESCRICAO DESCRICAO_VEICULO, VE.PLACA PLACA_VEICULO,
            VE.ANO_FABRICACAO ANO_FABRICACAO_VEICULO, VE.ANO_MODELO ANO_MODELO_VEICULO, VE.COR COR_VEICULO, O.PRISMA,
            O.KM_ATUAL_VEICULO, O.PRIORIDADE, O.PREVISAO_ENTREGA, O.HORA_ENTREGA, O.DETALHAMENTO_PROBLEMA, O.STATUS, O.TOTAL_HORAS,
            O.FORMA_COBRANCA, O.UTILIZAR_PRECO_PROMOCAO, O.VALOR_FRETE, O.VALOR_DESPESA, O.VALOR_DESCONTO, O.TOTAL_PRODUTO,
            O.TOTAL_SERVICO, O.TOTAL_ORDEM_SERVICO, O.DATA_FECHAMENTO, O.OBSERVACAO, O.CAIXA_ECF, O.ANO_ECF, O.NUMERO_ECF,
            O.NUMERO_ORDEM_SERVICO_ORIGINAL, O.NUMERO_ORDEM_SERVICO_ANTERIOR, O.VERSAO_ORDEM_SERVICO, O.TIPO_ORDEM_SERVICO_MECANICA,
            O.SEGURADORA, SE.NOME NOME_SEGURADORA, CIS.ESTADO ESTADO_SEGURADORA, O.VALOR_FRANQUIA, VE.KM KM_VEICULO, VE.NUMERO_CHASSIS
            NUMERO_CHASSIS_VEICULO, VE.FROTA_VEICULO FROTA_VEICULO, O.NUMERO_CUPOM_FISCAL, O.NUMERO_COO_IMPRESSO_DAV,
            O.EMISSAO_CRIPTOGRAFADO, O.DAV_IMPRESSO, O.NUMERO_SERIE_IMPRESSO_DAV, O.DAV_IMPRESSO_DATA
            FROM MOV_ORDEM_SERVICO O
            LEFT OUTER JOIN CAD_PESSOA CL ON(CL.CADASTRO = O.CLIENTE)
            LEFT OUTER JOIN CAD_CIDADE CI ON(CI.CADASTRO = CL.CIDADE)
            LEFT OUTER JOIN CAD_VEICULO VE ON(VE.EMPRESA = O.EMPRESA
                                          AND VE.CADASTRO = O.VEICULO)
            LEFT OUTER JOIN CAD_PESSOA A ON(A.CADASTRO = O.ATENDENTE)
            LEFT OUTER JOIN CAD_PESSOA SE ON(SE.CADASTRO = O.SEGURADORA)
            LEFT OUTER JOIN CAD_CIDADE CIS ON(CIS.CADASTRO = SE.CIDADE)
            WHERE O.EMPRESA = :E_EMPRESA
              AND O.NUMERO = :E_NUMERO
            INTO :EMPRESA, :NUMERO, :DESCRICAO, :CLIENTE, :NOME_CLIENTE, :CIDADE_CLIENTE,
                 :ESTADO_CLIENTE, :FONE_01_CLIENTE, :CELULAR_CLIENTE, :PERCENTUAL_DESCONTO_CLIENTE, :NOME_SOLICITANTE,
                 :ATENDENTE, :NOME_ATENDENTE, :EMISSAO, :VEICULO, :DESCRICAO_VEICULO, :PLACA_VEICULO,
                 :ANO_FABRICACAO_VEICULO, :ANO_MODELO_VEICULO, :COR_VEICULO, :PRISMA,
                 :KM_ATUAL_VEICULO, :PRIORIDADE, :PREVISAO_ENTREGA, :HORA_ENTREGA, :DETALHAMENTO_PROBLEMA, :STATUS, :TOTAL_HORAS,
                 :FORMA_COBRANCA, :UTILIZAR_PRECO_PROMOCAO, :VALOR_FRETE, :VALOR_DESPESA, :VALOR_DESCONTO, :TOTAL_PRODUTO,
                 :TOTAL_SERVICO, :TOTAL_ORDEM_SERVICO, :DATA_FECHAMENTO, :OBSERVACAO, :CAIXA_ECF, :ANO_ECF, :NUMERO_ECF,
                 :NUMERO_ORDEM_SERVICO_ORIGINAL, :NUMERO_ORDEM_SERVICO_ANTERIOR, :VERSAO_ORDEM_SERVICO, :TIPO_ORDEM_SERVICO_MECANICA,
                 :SEGURADORA, :NOME_SEGURADORA, :ESTADO_SEGURADORA, :VALOR_FRANQUIA, :KM_VEICULO, :NUMERO_CHASSIS_VEICULO,
                 :FROTA_VEICULO, :NUMERO_CUPOM_FISCAL, :NUMERO_COO_IMPRESSO_DAV,
                 :EMISSAO_CRIPTOGRAFADO, :DAV_IMPRESSO, :NUMERO_SERIE_IMPRESSO_DAV, :DAV_IMPRESSO_DATA;
            SUSPEND;
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER PROCEDURE PRO_MOV_IT_ORDEM_MECANICA (
    e_evento varchar(20),
    e_empresa integer,
    e_numero integer)
returns (
    empresa integer,
    numero integer,
    seq integer,
    produto integer,
    codigo_barra varchar(25),
    descricao_produto varchar(80),
    referencia_produto varchar(50),
    unidade_produto varchar(3),
    quantidade double precision,
    valor_original double precision,
    valor double precision,
    percentual_desconto double precision,
    total double precision,
    preco_custo double precision,
    custo_medio double precision,
    total_produto double precision,
    total_servico double precision,
    funcionario integer,
    nome_funcionario varchar(80),
    percentual_comissao double precision,
    data_inclusao date,
    item_cancelado varchar(3),
    tributo_icms varchar(3),
    aliquota_icms double precision,
    aliquota_ipi double precision,
    tipo varchar(20),
    peso_bruto double precision,
    peso_liquido double precision,
    volume double precision,
    cubagem double precision,
    reducao_aliquota_icms_07 double precision,
    reducao_aliquota_icms_12 double precision,
    reducao_aliquota_icms_17 double precision,
    tipo_indicador_calculo varchar(1),
    tipo_mercadoria_manufaturada varchar(1),
    pis_cofins varchar(1),
    totalizador_parcial varchar(10),
    hora_inclusao varchar(8),
    data_cancelamento date,
    hora_cancelamento varchar(8),
    horas varchar(25),
    last_horas varchar(25),
    novo_registro varchar(3),
    registro_excluido varchar(3))
as
BEGIN
    IF (E_EVENTO = 'Select') THEN
    BEGIN
        FOR SELECT I.EMPRESA, I.NUMERO, I.SEQ, I.PRODUTO, I.CODIGO_BARRA, I.DESCRICAO_PRODUTO, I.UNIDADE_PRODUTO,
                   I.QUANTIDADE, I.VALOR_ORIGINAL, I.VALOR, I.PERCENTUAL_DESCONTO, I.TOTAL, I.PRECO_CUSTO, I.CUSTO_MEDIO,
                   I.TOTAL_PRODUTO, I.TOTAL_SERVICO, I.FUNCIONARIO, FU.NOME NOME_FUNCIONARIO, I.PERCENTUAL_COMISSAO,
                   I.DATA_INCLUSAO, I.ITEM_CANCELADO, I.TOTALIZADOR_PARCIAL, PR.TRIBUTO_ICMS, PR.ALIQUOTA_ICMS,
                   PR.ALIQUOTA_IPI, PR.TIPO, PR.PESO_BRUTO, PR.PESO_LIQUIDO, PR.VOLUME, PR.CUBAGEM, PR.REDUCAO_ALIQUOTA_ICMS_07,
                   PR.REDUCAO_ALIQUOTA_ICMS_12, REDUCAO_ALIQUOTA_ICMS_17, PR.TIPO_INDICADOR_CALCULO, PR.TIPO_MERCADORIA_MANUFATURADA,
                   PR.PIS_COFINS, I.REFERENCIA_PRODUTO, I.HORA_INCLUSAO, I.DATA_CANCELAMENTO, I.HORA_CANCELAMENTO, I.HORAS,
                   I.LAST_HORAS, I.NOVO_REGISTRO, I.REGISTRO_EXCLUIDO
        FROM MOV_IT_ORDEM_SERVICO I
        LEFT OUTER JOIN CAD_PRODUTO PR ON(PR.EMPRESA = I.EMPRESA
                                      AND PR.CADASTRO = I.PRODUTO)
        LEFT OUTER JOIN CAD_PESSOA FU ON(FU.CADASTRO = I.FUNCIONARIO)
        WHERE I.EMPRESA = :E_EMPRESA
          AND I.NUMERO = :E_NUMERO
          AND I.ITEM_CANCELADO <> 'Sim'
        ORDER BY I.SEQ
        INTO :EMPRESA, :NUMERO, :SEQ, :PRODUTO, :CODIGO_BARRA, :DESCRICAO_PRODUTO, :UNIDADE_PRODUTO,
        :QUANTIDADE, :VALOR_ORIGINAL, :VALOR, :PERCENTUAL_DESCONTO, :TOTAL, :PRECO_CUSTO, :CUSTO_MEDIO,
        :TOTAL_PRODUTO, :TOTAL_SERVICO, :FUNCIONARIO, :NOME_FUNCIONARIO, :PERCENTUAL_COMISSAO,
        :DATA_INCLUSAO, :ITEM_CANCELADO, :TOTALIZADOR_PARCIAL, :TRIBUTO_ICMS, :ALIQUOTA_ICMS,
        :ALIQUOTA_IPI, :TIPO, :PESO_BRUTO, :PESO_LIQUIDO, :VOLUME, :CUBAGEM, :REDUCAO_ALIQUOTA_ICMS_07,
        :REDUCAO_ALIQUOTA_ICMS_12, :REDUCAO_ALIQUOTA_ICMS_17, :TIPO_INDICADOR_CALCULO, :TIPO_MERCADORIA_MANUFATURADA,
        :PIS_COFINS, :REFERENCIA_PRODUTO, :HORA_INCLUSAO, :DATA_CANCELAMENTO, :HORA_CANCELAMENTO, :HORAS, :LAST_HORAS, :NOVO_REGISTRO,
        :REGISTRO_EXCLUIDO
        DO BEGIN
            SUSPEND;
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE GENERATOR CAD_LAYOUT_GERACAO_ARQUIVO_001

Erro..:  unsuccessful metadata update
Generator CAD_LAYOUT_GERACAO_ARQUIVO_001 already exists
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmcad_layout_geracao_arquivo'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER CAD_PESSOA_03 FOR CAD_PESSOA
ACTIVE BEFORE INSERT OR UPDATE POSITION 0
AS
BEGIN
    IF (CHAR_LENGTH(NEW.CNPJ_CPF) = 18) THEN
    BEGIN
        NEW.TIPO_PESSOA = 'Juridica';
    END
    ELSE BEGIN
        IF (CHAR_LENGTH(NEW.CNPJ_CPF) = 14) THEN
        BEGIN
            NEW.TIPO_PESSOA = 'Fisica';
        END
        ELSE BEGIN
            NEW.TIPO_PESSOA = '';
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER TRIGGER MOV_NOTA_FISCAL_VENDA_03 FOR MOV_NOTA_FISCAL_VENDA
 ACTIVE AFTER UPDATE POSITION 0
 AS
 DECLARE VARIABLE VQTD_CASAS_DECIMAIS INTEGER;
 DECLARE VARIABLE VANO INTEGER;
 DECLARE VARIABLE VMES INTEGER;
 DECLARE VARIABLE VPRODUTO INTEGER;
 DECLARE VARIABLE VREGISTRO INTEGER;
 DECLARE VARIABLE VCODIGO_BARRA VARCHAR(25);
 DECLARE VARIABLE VQUANTIDADE REAL;
 DECLARE VARIABLE VTOTAL REAL;
 DECLARE VARIABLE VPRECO_CUSTO REAL;
 DECLARE VARIABLE VCUSTO_MEDIO REAL;
 DECLARE VARIABLE VVALOR_DESCONTO_RATEADO REAL;
 DECLARE VARIABLE VCONTROLA_ESTOQUE VARCHAR(1);
 DECLARE VARIABLE VTIPO_CODIGO_BARRAS VARCHAR(10);
 DECLARE VARIABLE VTIPO VARCHAR(10);
 DECLARE VARIABLE VTIPO_CONTROLE_ESTOQUE VARCHAR(10);
 DECLARE VARIABLE VGERA_FATURAMENTO_OPERACIONAL VARCHAR(1);
 DECLARE VARIABLE VNUMERO_PEDIDO_IMPORTADO INTEGER;
 DECLARE VARIABLE VSEQ_PEDIDO_IMPORTADO INTEGER;
 DECLARE VARIABLE VQUANTIDADE_FATURADA DOUBLE PRECISION;
 DECLARE VARIABLE VSTATUS VARCHAR(15);
 DECLARE VARIABLE VBAIXA_ESTOQUE_COMPOSICAO VARCHAR(1);
 DECLARE VARIABLE VPRODUTO_COMPOSICAO INTEGER;
 DECLARE VARIABLE VPERCENTUAL_COMPOSICAO REAL;
 BEGIN
     SELECT TIPO_CODIGO_BARRAS, QTDE_CASA_DECIMAL_PRECO_VENDA
     FROM CAD_EMPRESA
     WHERE CADASTRO = NEW.EMPRESA
     INTO :VTIPO_CODIGO_BARRAS, :VQTD_CASAS_DECIMAIS;

     IF (((OLD.STATUS = 'NFE Gerada') OR (OLD.STATUS = 'NFSE Gerada') OR (OLD.STATUS = 'Pendente'))
     AND ((NEW.STATUS = 'NFE Autorizada') OR (NEW.STATUS = 'NFSE Autorizada') OR (NEW.STATUS = 'Faturada'))) THEN
     BEGIN
         FOR SELECT I.PRODUTO, I.CODIGO_BARRA, I.QUANTIDADE, I.TOTAL, I.PRECO_CUSTO, I.CUSTO_MEDIO,
                    I.VALOR_DESCONTO_RATEADO, NA.TIPO_CONTROLE_ESTOQUE, PR.CONTROLA_ESTOQUE,
                    NA.TIPO, NA.GERA_FATURAMENTO_OPERACIONAL, I.NUMERO_PEDIDO_IMPORTADO, I.SEQ_PEDIDO_IMPORTADO,
                    PR.BAIXA_ESTOQUE_COMPOSICAO
         FROM MOV_IT_NOTA_VENDA_PRODUTO I
         LEFT OUTER JOIN CAD_PRODUTO PR ON (PR.EMPRESA = I.EMPRESA
                                        AND PR.CADASTRO = I.PRODUTO)
         LEFT OUTER JOIN CAD_NATUREZA_OPERACAO NA ON (NA.EMPRESA = I.EMPRESA
                                                  AND NA.CADASTRO = I.NATUREZA_OPERACAO)
         WHERE I.EMPRESA = NEW.EMPRESA
           AND I.SERIE = NEW.SERIE
           AND I.NUMERO = NEW.NUMERO
           AND I.PRODUTO IS NOT NULL
           AND I.PRODUTO > 0
         ORDER BY I.SEQ
         INTO :VPRODUTO, :VCODIGO_BARRA, :VQUANTIDADE, :VTOTAL, :VPRECO_CUSTO, :VCUSTO_MEDIO,
         :VVALOR_DESCONTO_RATEADO, :VTIPO_CONTROLE_ESTOQUE, :VCONTROLA_ESTOQUE,
         :VTIPO, :VGERA_FATURAMENTO_OPERACIONAL, :VNUMERO_PEDIDO_IMPORTADO, :VSEQ_PEDIDO_IMPORTADO,
         :VBAIXA_ESTOQUE_COMPOSICAO

         DO BEGIN
             /*-----------------------------------------*/
             /***** Baixando o Estoque dos Produtos *****/
             /*-----------------------------------------*/
             IF (VBAIXA_ESTOQUE_COMPOSICAO = '2') THEN
             BEGIN
                 FOR SELECT I.PRODUTO_COMPOSICAO, I.PERCENTUAL
                 FROM CAD_IT_PRODUTO_COMPOSICAO I
                 LEFT OUTER JOIN CAD_PRODUTO PR ON (PR.EMPRESA = I.EMPRESA
                                                AND PR.CADASTRO = I.PRODUTO_COMPOSICAO)
                 WHERE I.EMPRESA = NEW.EMPRESA
                   AND I.PRODUTO = :VPRODUTO
                   AND PR.CONTROLA_ESTOQUE = '2'
                 INTO :VPRODUTO_COMPOSICAO, :VPERCENTUAL_COMPOSICAO

                 DO BEGIN
                     IF (VTIPO_CONTROLE_ESTOQUE = 'Sada') THEN
                     BEGIN
                         UPDATE CAD_PRODUTO P SET
                         P.ESTOQUE = UDF_FORMAT_FLOAT(P.ESTOQUE, :VQTD_CASAS_DECIMAIS) -
                                     UDF_FORMAT_FLOAT((:VQUANTIDADE * :VPERCENTUAL_COMPOSICAO), :VQTD_CASAS_DECIMAIS)
                         WHERE P.EMPRESA = NEW.EMPRESA
                           AND P.CADASTRO = :VPRODUTO_COMPOSICAO;
                     END
                     ELSE BEGIN
                         IF (VTIPO_CONTROLE_ESTOQUE = 'Entrada') THEN
                         BEGIN
                             UPDATE CAD_PRODUTO P SET
                             P.ESTOQUE = UDF_FORMAT_FLOAT(P.ESTOQUE, :VQTD_CASAS_DECIMAIS) +
                                         UDF_FORMAT_FLOAT((:VQUANTIDADE * :VPERCENTUAL_COMPOSICAO), :VQTD_CASAS_DECIMAIS)
                             WHERE P.EMPRESA = NEW.EMPRESA
                               AND P.CADASTRO = :VPRODUTO_COMPOSICAO;
                         END
                     END
                 END
             END

             IF (VCONTROLA_ESTOQUE = '2') THEN
             BEGIN
                 IF (VTIPO_CONTROLE_ESTOQUE = 'Sada') THEN
                 BEGIN
                     IF (VTIPO_CODIGO_BARRAS = 'Grade') THEN
                     BEGIN
                         UPDATE CAD_IT_PRODUTO_CODIGO_BARRA I SET
                         I.ESTOQUE = UDF_FORMAT_FLOAT(I.ESTOQUE, :VQTD_CASAS_DECIMAIS) -
                                     UDF_FORMAT_FLOAT(:VQUANTIDADE, :VQTD_CASAS_DECIMAIS)
                         WHERE I.EMPRESA = NEW.EMPRESA
                           AND I.PRODUTO = :VPRODUTO
                           AND I.CODIGO_BARRA = :VCODIGO_BARRA;
                     END

                     UPDATE CAD_PRODUTO P SET
                     P.ESTOQUE = UDF_FORMAT_FLOAT(P.ESTOQUE, :VQTD_CASAS_DECIMAIS) -
                                 UDF_FORMAT_FLOAT(:VQUANTIDADE, :VQTD_CASAS_DECIMAIS)
                     WHERE P.EMPRESA = NEW.EMPRESA
                       AND P.CADASTRO = :VPRODUTO;
                 END
                 ELSE BEGIN
                     IF (VTIPO_CONTROLE_ESTOQUE = 'Entrada') THEN
                     BEGIN
                         IF (VTIPO_CODIGO_BARRAS = 'Grade') THEN
                         BEGIN
                             UPDATE CAD_IT_PRODUTO_CODIGO_BARRA I SET
                             I.ESTOQUE = UDF_FORMAT_FLOAT(I.ESTOQUE, :VQTD_CASAS_DECIMAIS) +
                                         UDF_FORMAT_FLOAT(:VQUANTIDADE, :VQTD_CASAS_DECIMAIS)
                             WHERE I.EMPRESA = NEW.EMPRESA
                               AND I.PRODUTO = :VPRODUTO
                               AND I.CODIGO_BARRA = :VCODIGO_BARRA;
                         END

                         UPDATE CAD_PRODUTO P SET
                         P.ESTOQUE = UDF_FORMAT_FLOAT(P.ESTOQUE, :VQTD_CASAS_DECIMAIS) +
                                     UDF_FORMAT_FLOAT(:VQUANTIDADE, :VQTD_CASAS_DECIMAIS)
                         WHERE P.EMPRESA = NEW.EMPRESA
                           AND P.CADASTRO = :VPRODUTO;
                     END
                 END
             END

             /*--------------------------------------------*/
             /********* Gravando a Venda do Produto ********/
             /***** na tabela MOV_VENDA_MENSAL_PRODUTO *****/
             /*--------------------------------------------*/
             IF ((VTIPO = 'Sada') AND (VGERA_FATURAMENTO_OPERACIONAL = '2')) THEN
             BEGIN
                 VANO = EXTRACT(YEAR FROM NEW.EMISSAO);
                 VMES = EXTRACT(MONTH FROM NEW.EMISSAO);

                 VREGISTRO = 0;

                 SELECT PRODUTO
                 FROM MOV_VENDA_MENSAL_PRODUTO
                 WHERE EMPRESA = NEW.EMPRESA
                   AND ANO = :VANO
                   AND MES = :VMES
                   AND PRODUTO = :VPRODUTO
                 INTO :VREGISTRO;

                 IF ((VREGISTRO > 0) AND (VREGISTRO IS NOT NULL)) THEN
                 BEGIN
                     UPDATE MOV_VENDA_MENSAL_PRODUTO SET
                     QUANTIDADE = UDF_FORMAT_FLOAT(QUANTIDADE + :VQUANTIDADE, 3),
                     TOTAL = UDF_FORMAT_FLOAT(TOTAL + :VTOTAL, 3),
                     TOTAL_PRECO_CUSTO = UDF_FORMAT_FLOAT(TOTAL_PRECO_CUSTO + (:VQUANTIDADE * :VPRECO_CUSTO), 3),
                     TOTAL_CUSTO_MEDIO = UDF_FORMAT_FLOAT(TOTAL_CUSTO_MEDIO + (:VQUANTIDADE * :VCUSTO_MEDIO), 3),
                     TOTAL_DESCONTO_RATEADO = UDF_FORMAT_FLOAT(TOTAL_DESCONTO_RATEADO + :VVALOR_DESCONTO_RATEADO, 3)
                     WHERE EMPRESA = NEW.EMPRESA
                       AND ANO = :VANO
                       AND MES = :VMES
                       AND PRODUTO = :VPRODUTO;
                 END
                 ELSE BEGIN
                     INSERT INTO MOV_VENDA_MENSAL_PRODUTO
                     (EMPRESA, ANO, MES, PRODUTO, QUANTIDADE, TOTAL, TOTAL_PRECO_CUSTO, TOTAL_CUSTO_MEDIO, TOTAL_DESCONTO_RATEADO)
                     VALUES
                     (NEW.EMPRESA, :VANO, :VMES, :VPRODUTO, UDF_FORMAT_FLOAT(:VQUANTIDADE, 3), UDF_FORMAT_FLOAT(:VTOTAL, 3),
                      UDF_FORMAT_FLOAT((:VQUANTIDADE * :VPRECO_CUSTO), 3), UDF_FORMAT_FLOAT((:VQUANTIDADE * :VCUSTO_MEDIO), 3),
                      UDF_FORMAT_FLOAT(:VVALOR_DESCONTO_RATEADO, 3));
                 END
             END

             /*-----------------------------------------------*/
             /***** Faturando os Itens do Pedido de Venda *****/
             /*-----------------------------------------------*/
             IF ((VNUMERO_PEDIDO_IMPORTADO > 0) AND (VNUMERO_PEDIDO_IMPORTADO IS NOT NULL)) THEN
             BEGIN
                 UPDATE MOV_IT_PEDIDO_VENDA I SET
                 I.QUANTIDADE_FATURADA = I.QUANTIDADE_FATURADA + UDF_FORMAT_FLOAT(:VQUANTIDADE, 3)
                 WHERE I.EMPRESA = NEW.EMPRESA
                   AND I.NUMERO = :VNUMERO_PEDIDO_IMPORTADO
                   AND I.SEQ = :VSEQ_PEDIDO_IMPORTADO
                   AND I.PRODUTO = :VPRODUTO;

                 /*----------------------------------------------------*/
                 /***** Retirando o Estoque Empenhado dos Produtos *****/
                 /*----------------------------------------------------*/
                 SELECT P.STATUS
                 FROM MOV_PEDIDO_VENDA P
                 WHERE P.EMPRESA = NEW.EMPRESA
                   AND P.NUMERO = :VNUMERO_PEDIDO_IMPORTADO
                 INTO :VSTATUS;

                 IF (VSTATUS = 'Aprovado') THEN
                 BEGIN
                     UPDATE CAD_PRODUTO PR SET
                     PR.ESTOQUE_EMPENHADO = UDF_FORMAT_FLOAT(PR.ESTOQUE_EMPENHADO, :VQTD_CASAS_DECIMAIS) -
                                            UDF_FORMAT_FLOAT(:VQUANTIDADE, :VQTD_CASAS_DECIMAIS)
                     WHERE PR.EMPRESA = OLD.EMPRESA
                       AND PR.CADASTRO = :VPRODUTO
                       AND PR.CONTROLA_ESTOQUE = '2';
                 END
             END
         END

         /*-------------------------------------------------------------*/
         /***** Alterando o Status do Pedido de Venda p/ "Faturado" *****/
         /*-------------------------------------------------------------*/
         FOR SELECT DISTINCT I.NUMERO_PEDIDO_IMPORTADO
         FROM MOV_IT_NOTA_VENDA_PRODUTO I
         WHERE I.EMPRESA = NEW.EMPRESA
           AND I.NUMERO = NEW.NUMERO
           AND ((I.NUMERO_PEDIDO_IMPORTADO IS NOT NULL) AND (I.NUMERO_PEDIDO_IMPORTADO > 0))
         INTO :VNUMERO_PEDIDO_IMPORTADO

         DO BEGIN
             SELECT SUM(I.QUANTIDADE) I_QUANTIDADE, SUM(I.QUANTIDADE_FATURADA) I_QUANTIDADE_FATURADA
             FROM MOV_IT_PEDIDO_VENDA I
             WHERE I.EMPRESA = NEW.EMPRESA
               AND I.NUMERO = :VNUMERO_PEDIDO_IMPORTADO
               AND I.ITEM_CANCELADO = 'No'
             INTO :VQUANTIDADE, :VQUANTIDADE_FATURADA;

             IF (UDF_FORMAT_FLOAT(VQUANTIDADE_FATURADA, 3) >= UDF_FORMAT_FLOAT(VQUANTIDADE, 3)) THEN
             BEGIN
                 UPDATE MOV_PEDIDO_VENDA P SET
                 P.STATUS = 'Faturado'
                 WHERE P.EMPRESA = NEW.EMPRESA
                   AND P.NUMERO = :VNUMERO_PEDIDO_IMPORTADO;
             END
         END
     END
     ELSE BEGIN
         IF (((OLD.STATUS = 'NFE Autorizada') OR (OLD.STATUS = 'NFSE Autorizada') OR (OLD.STATUS = 'Faturada'))
         AND ((NEW.STATUS = 'NFE Cancelada') OR (NEW.STATUS = 'NFSE Cancelada') OR (NEW.STATUS = 'Cancelada')
           OR (NEW.STATUS = 'NFE Denegada'))) THEN
         BEGIN
             FOR SELECT I.PRODUTO, I.CODIGO_BARRA, I.QUANTIDADE, I.TOTAL, I.PRECO_CUSTO, I.CUSTO_MEDIO,
                        I.VALOR_DESCONTO_RATEADO, NA.TIPO_CONTROLE_ESTOQUE, PR.CONTROLA_ESTOQUE,
                        NA.TIPO, NA.GERA_FATURAMENTO_OPERACIONAL, I.NUMERO_PEDIDO_IMPORTADO, I.SEQ_PEDIDO_IMPORTADO,
                        PR.BAIXA_ESTOQUE_COMPOSICAO
             FROM MOV_IT_NOTA_VENDA_PRODUTO I
             LEFT OUTER JOIN CAD_PRODUTO PR ON (PR.EMPRESA = I.EMPRESA
                                            AND PR.CADASTRO = I.PRODUTO)
             LEFT OUTER JOIN CAD_NATUREZA_OPERACAO NA ON (NA.EMPRESA = I.EMPRESA
                                                      AND NA.CADASTRO = I.NATUREZA_OPERACAO)
             WHERE I.EMPRESA = OLD.EMPRESA
               AND I.SERIE = OLD.SERIE
               AND I.NUMERO = OLD.NUMERO
               AND I.PRODUTO IS NOT NULL
               AND I.PRODUTO > 0
             ORDER BY I.SEQ
             INTO :VPRODUTO, :VCODIGO_BARRA, :VQUANTIDADE, :VTOTAL, :VPRECO_CUSTO, :VCUSTO_MEDIO,
             :VVALOR_DESCONTO_RATEADO, :VTIPO_CONTROLE_ESTOQUE, :VCONTROLA_ESTOQUE,
             :VTIPO, :VGERA_FATURAMENTO_OPERACIONAL, :VNUMERO_PEDIDO_IMPORTADO, :VSEQ_PEDIDO_IMPORTADO,
             :VBAIXA_ESTOQUE_COMPOSICAO

             DO BEGIN
                 /*-------------------------------------------*/
                 /***** Estornando o Estoque dos Produtos *****/
                 /*-------------------------------------------*/
                 IF (VBAIXA_ESTOQUE_COMPOSICAO = '2') THEN
                 BEGIN
                     FOR SELECT I.PRODUTO_COMPOSICAO, I.PERCENTUAL
                     FROM CAD_IT_PRODUTO_COMPOSICAO I
                     LEFT OUTER JOIN CAD_PRODUTO PR ON (PR.EMPRESA = I.EMPRESA
                                                    AND PR.CADASTRO = I.PRODUTO_COMPOSICAO)
                     WHERE I.EMPRESA = NEW.EMPRESA
                       AND I.PRODUTO = :VPRODUTO
                       AND PR.CONTROLA_ESTOQUE = '2'
                     INTO :VPRODUTO_COMPOSICAO, :VPERCENTUAL_COMPOSICAO

                     DO BEGIN
                         IF (VTIPO_CONTROLE_ESTOQUE = 'Sada') THEN
                         BEGIN
                             UPDATE CAD_PRODUTO P SET
                             P.ESTOQUE = UDF_FORMAT_FLOAT(P.ESTOQUE, :VQTD_CASAS_DECIMAIS) +
                                         UDF_FORMAT_FLOAT((:VQUANTIDADE * :VPERCENTUAL_COMPOSICAO), :VQTD_CASAS_DECIMAIS)
                             WHERE P.EMPRESA = NEW.EMPRESA
                               AND P.CADASTRO = :VPRODUTO_COMPOSICAO;
                         END
                         ELSE BEGIN
                             IF (VTIPO_CONTROLE_ESTOQUE = 'Entrada') THEN
                             BEGIN
                                 UPDATE CAD_PRODUTO P SET
                                 P.ESTOQUE = UDF_FORMAT_FLOAT(P.ESTOQUE, :VQTD_CASAS_DECIMAIS) -
                                             UDF_FORMAT_FLOAT((:VQUANTIDADE * :VPERCENTUAL_COMPOSICAO), :VQTD_CASAS_DECIMAIS)
                                 WHERE P.EMPRESA = NEW.EMPRESA
                                   AND P.CADASTRO = :VPRODUTO_COMPOSICAO;
                             END
                         END
                     END
                 END

                 IF (VCONTROLA_ESTOQUE = '2') THEN
                 BEGIN
                     IF (VTIPO_CONTROLE_ESTOQUE = 'Sada') THEN
                     BEGIN
                         IF (VTIPO_CODIGO_BARRAS = 'Grade') THEN
                         BEGIN
                             UPDATE CAD_IT_PRODUTO_CODIGO_BARRA I SET
                             I.ESTOQUE = UDF_FORMAT_FLOAT(I.ESTOQUE, :VQTD_CASAS_DECIMAIS) +
                                         UDF_FORMAT_FLOAT(:VQUANTIDADE, :VQTD_CASAS_DECIMAIS)
                             WHERE I.EMPRESA = OLD.EMPRESA
                               AND I.PRODUTO = :VPRODUTO
                               AND I.CODIGO_BARRA = :VCODIGO_BARRA;
                         END

                         UPDATE CAD_PRODUTO P SET
                         P.ESTOQUE = UDF_FORMAT_FLOAT(P.ESTOQUE, :VQTD_CASAS_DECIMAIS) +
                                     UDF_FORMAT_FLOAT(:VQUANTIDADE, :VQTD_CASAS_DECIMAIS)
                         WHERE P.EMPRESA = OLD.EMPRESA
                           AND P.CADASTRO = :VPRODUTO;
                     END
                     ELSE BEGIN
                         IF (VTIPO_CONTROLE_ESTOQUE = 'Entrada') THEN
                         BEGIN
                             IF (VTIPO_CODIGO_BARRAS = 'Grade') THEN
                             BEGIN
                                 UPDATE CAD_IT_PRODUTO_CODIGO_BARRA I SET
                                 I.ESTOQUE = UDF_FORMAT_FLOAT(I.ESTOQUE, :VQTD_CASAS_DECIMAIS) -
                                             UDF_FORMAT_FLOAT(:VQUANTIDADE, :VQTD_CASAS_DECIMAIS)
                                 WHERE I.EMPRESA = OLD.EMPRESA
                                   AND I.PRODUTO = :VPRODUTO
                                   AND I.CODIGO_BARRA = :VCODIGO_BARRA;
                             END

                             UPDATE CAD_PRODUTO P SET
                             P.ESTOQUE = UDF_FORMAT_FLOAT(P.ESTOQUE, :VQTD_CASAS_DECIMAIS) -
                                         UDF_FORMAT_FLOAT(:VQUANTIDADE, :VQTD_CASAS_DECIMAIS)
                             WHERE P.EMPRESA = OLD.EMPRESA
                               AND P.CADASTRO = :VPRODUTO;
                         END
                     END
                 END

                 /*--------------------------------------------*/
                 /******** Estornando a Venda do Produto *******/
                 /***** na tabela MOV_VENDA_MENSAL_PRODUTO *****/
                 /*--------------------------------------------*/
                 IF ((VTIPO = 'Sada') AND (VGERA_FATURAMENTO_OPERACIONAL = '2')) THEN
                 BEGIN
                     VANO = EXTRACT(YEAR FROM OLD.EMISSAO);
                     VMES = EXTRACT(MONTH FROM OLD.EMISSAO);

                     VREGISTRO = 0;

                     SELECT PRODUTO
                     FROM MOV_VENDA_MENSAL_PRODUTO
                     WHERE EMPRESA = OLD.EMPRESA
                       AND ANO = :VANO
                       AND MES = :VMES
                       AND PRODUTO = :VPRODUTO
                     INTO :VREGISTRO;

                     IF ((VREGISTRO > 0) AND (VREGISTRO IS NOT NULL)) THEN
                     BEGIN
                         UPDATE MOV_VENDA_MENSAL_PRODUTO SET
                         QUANTIDADE = UDF_FORMAT_FLOAT(QUANTIDADE - :VQUANTIDADE, 3),
                         TOTAL = UDF_FORMAT_FLOAT(TOTAL - :VTOTAL, 3),
                         TOTAL_PRECO_CUSTO = UDF_FORMAT_FLOAT(TOTAL_PRECO_CUSTO - (:VQUANTIDADE * :VPRECO_CUSTO), 3),
                         TOTAL_CUSTO_MEDIO = UDF_FORMAT_FLOAT(TOTAL_CUSTO_MEDIO - (:VQUANTIDADE * :VCUSTO_MEDIO), 3),
                         TOTAL_DESCONTO_RATEADO = UDF_FORMAT_FLOAT(TOTAL_DESCONTO_RATEADO - :VVALOR_DESCONTO_RATEADO, 3)
                         WHERE EMPRESA = OLD.EMPRESA
                           AND ANO = :VANO
                           AND MES = :VMES
                           AND PRODUTO = :VPRODUTO;
                     END
                 END

                 /*----------------------------------------------------------*/
                 /***** Estornando os Itens Faturados do Pedido de Venda *****/
                 /*----------------------------------------------------------*/
                 IF ((VNUMERO_PEDIDO_IMPORTADO > 0) AND (VNUMERO_PEDIDO_IMPORTADO IS NOT NULL)) THEN
                 BEGIN
                     UPDATE MOV_IT_PEDIDO_VENDA I SET
                     I.QUANTIDADE_FATURADA = I.QUANTIDADE_FATURADA - UDF_FORMAT_FLOAT(:VQUANTIDADE, 3)
                     WHERE I.EMPRESA = NEW.EMPRESA
                       AND I.NUMERO = :VNUMERO_PEDIDO_IMPORTADO
                       AND I.SEQ = :VSEQ_PEDIDO_IMPORTADO
                       AND I.PRODUTO = :VPRODUTO;

                     /*-----------------------------------------------------*/
                     /***** Empenhando o Estoque Empenhado dos Produtos *****/
                     /*-----------------------------------------------------*/
                     SELECT P.STATUS
                     FROM MOV_PEDIDO_VENDA P
                     WHERE P.EMPRESA = NEW.EMPRESA
                       AND P.NUMERO = :VNUMERO_PEDIDO_IMPORTADO
                     INTO :VSTATUS;

                     IF (VSTATUS = 'Aprovado') THEN
                     BEGIN
                         UPDATE CAD_PRODUTO PR SET
                         PR.ESTOQUE_EMPENHADO = UDF_FORMAT_FLOAT(PR.ESTOQUE_EMPENHADO, :VQTD_CASAS_DECIMAIS) +
                                                UDF_FORMAT_FLOAT(:VQUANTIDADE, :VQTD_CASAS_DECIMAIS)
                         WHERE PR.EMPRESA = OLD.EMPRESA
                           AND PR.CADASTRO = :VPRODUTO
                           AND PR.CONTROLA_ESTOQUE = '2';
                     END
                 END
             END

             /*-------------------------------------------------------------*/
             /***** Alterando o Status do Pedido de Venda p/ "Pendente" *****/
             /*-------------------------------------------------------------*/
             FOR SELECT DISTINCT I.NUMERO_PEDIDO_IMPORTADO
             FROM MOV_IT_NOTA_VENDA_PRODUTO I
             WHERE I.EMPRESA = NEW.EMPRESA
               AND I.NUMERO = NEW.NUMERO
               AND ((I.NUMERO_PEDIDO_IMPORTADO IS NOT NULL) AND (I.NUMERO_PEDIDO_IMPORTADO > 0))
             INTO :VNUMERO_PEDIDO_IMPORTADO

             DO BEGIN
                 SELECT SUM(I.QUANTIDADE) I_QUANTIDADE, SUM(I.QUANTIDADE_FATURADA) I_QUANTIDADE_FATURADA
                 FROM MOV_IT_PEDIDO_VENDA I
                 WHERE I.EMPRESA = NEW.EMPRESA
                   AND I.NUMERO = :VNUMERO_PEDIDO_IMPORTADO
                   AND I.ITEM_CANCELADO = 'No'
                 INTO :VQUANTIDADE, :VQUANTIDADE_FATURADA;

                 IF (UDF_FORMAT_FLOAT(VQUANTIDADE, 3) > UDF_FORMAT_FLOAT(VQUANTIDADE_FATURADA, 3)) THEN
                 BEGIN
                     UPDATE MOV_PEDIDO_VENDA P SET
                     P.STATUS = 'Pendente'
                     WHERE P.EMPRESA = NEW.EMPRESA
                       AND P.NUMERO = :VNUMERO_PEDIDO_IMPORTADO
                       AND P.STATUS = 'Faturado';
                 END
             END

             IF (OLD.NOTA_FISCAL_ENTRADA = '2') THEN
             BEGIN
                 /*-------------------------------------------------*/
                 /***** Excluindo as Parcelas do Contas a Pagar *****/
                 /*-------------------------------------------------*/
                 IF (OLD.CONVENIO > 0) THEN
                 BEGIN
                     DELETE FROM MOV_CONTAS_PAGAR
                     WHERE EMPRESA = OLD.EMPRESA
                       AND DOCUMENTO = 'NE'
                       AND FORNECEDOR = OLD.CONVENIO
                       AND NUMERO = OLD.NUMERO
                       AND SERIE = OLD.SERIE;
                 END
                 ELSE BEGIN
                     DELETE FROM MOV_CONTAS_PAGAR
                     WHERE EMPRESA = OLD.EMPRESA
                       AND DOCUMENTO = 'NE'
                       AND FORNECEDOR = OLD.CLIENTE
                       AND NUMERO = OLD.NUMERO
                       AND SERIE = OLD.SERIE;
                 END
             END
             ELSE BEGIN
                 /*---------------------------------------------------*/
                 /***** Excluindo as Parcelas do Contas a Receber *****/
                 /*---------------------------------------------------*/
                 IF (OLD.CONVENIO > 0) THEN
                 BEGIN
                     DELETE FROM MOV_CONTAS_RECEBER
                     WHERE EMPRESA = OLD.EMPRESA
                       AND CAIXA = 'NF'
                       AND DOCUMENTO = 'NF'
                       AND CLIENTE = OLD.CONVENIO
                       AND NUMERO = OLD.NUMERO
                       AND SERIE = OLD.SERIE;
                 END
                 ELSE BEGIN
                     DELETE FROM MOV_CONTAS_RECEBER
                     WHERE EMPRESA = OLD.EMPRESA
                       AND CAIXA = 'NF'
                       AND DOCUMENTO = 'NF'
                       AND CLIENTE = OLD.CLIENTE
                       AND NUMERO = OLD.NUMERO
                       AND SERIE = OLD.SERIE;
                 END
             END
         END
         ELSE BEGIN
             IF (NEW.STATUS = 'NFE Inutilizada') THEN
             BEGIN
                 IF (OLD.NOTA_FISCAL_ENTRADA = '2') THEN
                 BEGIN
                     /*-------------------------------------------------*/
                     /***** Excluindo as Parcelas do Contas a Pagar *****/
                     /*-------------------------------------------------*/
                     IF (OLD.CONVENIO > 0) THEN
                     BEGIN
                         DELETE FROM MOV_CONTAS_PAGAR
                         WHERE EMPRESA = OLD.EMPRESA
                           AND DOCUMENTO = 'NE'
                           AND FORNECEDOR = OLD.CONVENIO
                           AND NUMERO = OLD.NUMERO
                           AND SERIE = OLD.SERIE;
                     END
                     ELSE BEGIN
                         DELETE FROM MOV_CONTAS_PAGAR
                         WHERE EMPRESA = OLD.EMPRESA
                           AND DOCUMENTO = 'NE'
                           AND FORNECEDOR = OLD.CLIENTE
                           AND NUMERO = OLD.NUMERO
                           AND SERIE = OLD.SERIE;
                     END
                 END
                 ELSE BEGIN
                     /*---------------------------------------------------*/
                     /***** Excluindo as Parcelas do Contas a Receber *****/
                     /*---------------------------------------------------*/
                     IF (OLD.CONVENIO > 0) THEN
                     BEGIN
                         DELETE FROM MOV_CONTAS_RECEBER
                         WHERE EMPRESA = OLD.EMPRESA
                           AND CAIXA = 'NF'
                           AND DOCUMENTO = 'NF'
                           AND CLIENTE = OLD.CONVENIO
                           AND NUMERO = OLD.NUMERO
                           AND SERIE = OLD.SERIE;
                     END
                     ELSE BEGIN
                         DELETE FROM MOV_CONTAS_RECEBER
                         WHERE EMPRESA = OLD.EMPRESA
                           AND CAIXA = 'NF'
                           AND DOCUMENTO = 'NF'
                           AND CLIENTE = OLD.CLIENTE
                           AND NUMERO = OLD.NUMERO
                           AND SERIE = OLD.SERIE;
                     END
                 END
             END
             ELSE BEGIN
                 IF (OLD.NOTA_FISCAL_ENTRADA = '2') THEN
                 BEGIN
                     /*------------------------------------------------------*/
                     /***** Atualizando as Informacoes do Contas a Pagar *****/
                     /*------------------------------------------------------*/
                     IF (OLD.CONVENIO > 0) THEN
                     BEGIN
                         UPDATE MOV_CONTAS_PAGAR SET
                         FORNECEDOR = NEW.CLIENTE,
                         PLANO_CONTAS = NEW.PLANO_CONTAS,
                         CENTRO_CUSTO = NEW.CENTRO_CUSTO
                         WHERE EMPRESA = OLD.EMPRESA
                           AND DOCUMENTO = 'NE'
                           AND FORNECEDOR = OLD.CONVENIO
                           AND NUMERO = OLD.NUMERO
                           AND SERIE = OLD.SERIE;
                     END
                     ELSE BEGIN
                         UPDATE MOV_CONTAS_PAGAR SET
                         FORNECEDOR = NEW.CLIENTE,
                         PLANO_CONTAS = NEW.PLANO_CONTAS,
                         CENTRO_CUSTO = NEW.CENTRO_CUSTO
                         WHERE EMPRESA = OLD.EMPRESA
                           AND DOCUMENTO = 'NE'
                           AND FORNECEDOR = OLD.CLIENTE
                           AND NUMERO = OLD.NUMERO
                           AND SERIE = OLD.SERIE;
                     END
                 END
                 ELSE BEGIN
                     /*--------------------------------------------------------*/
                     /***** Atualizando as Informacoes do Contas a Receber *****/
                     /*--------------------------------------------------------*/
                     IF (OLD.CONVENIO > 0) THEN
                     BEGIN
                         UPDATE MOV_CONTAS_RECEBER SET
                         CLIENTE = NEW.CONVENIO,
                         PLANO_CONTAS = NEW.PLANO_CONTAS,
                         CENTRO_CUSTO = NEW.CENTRO_CUSTO,
                         VENDEDOR = NEW.VENDEDOR,
                         INSTRUCAO_COBRANCA = NEW.INSTRUCAO_COBRANCA
                         WHERE EMPRESA = OLD.EMPRESA
                           AND CAIXA = 'NF'
                           AND DOCUMENTO = 'NF'
                           AND CLIENTE = OLD.CONVENIO
                           AND NUMERO = OLD.NUMERO
                           AND SERIE = OLD.SERIE;
                     END
                     ELSE BEGIN
                         UPDATE MOV_CONTAS_RECEBER SET
                         CLIENTE = NEW.CLIENTE,
                         PLANO_CONTAS = NEW.PLANO_CONTAS,
                         CENTRO_CUSTO = NEW.CENTRO_CUSTO,
                         VENDEDOR = NEW.VENDEDOR,
                         INSTRUCAO_COBRANCA = NEW.INSTRUCAO_COBRANCA
                         WHERE EMPRESA = OLD.EMPRESA
                           AND CAIXA = 'NF'
                           AND DOCUMENTO = 'NF'
                           AND CLIENTE = OLD.CLIENTE
                           AND NUMERO = OLD.NUMERO
                           AND SERIE = OLD.SERIE;
                     END
                 END
             END
         END
     END
 END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER MOV_TABELA_PRECO_PROMOCAO_01 FOR MOV_TABELA_PRECO_PROMOCAO
ACTIVE BEFORE DELETE POSITION 0
AS
BEGIN
    DELETE FROM MOV_IT_TABELA_PRECO_PROMOCAO
    WHERE EMPRESA = OLD.EMPRESA
      AND NUMERO = OLD.NUMERO;

    DELETE FROM MOV_IT_TABELA_PRECO_PROMO_PARC
    WHERE EMPRESA = OLD.EMPRESA
      AND NUMERO = OLD.NUMERO;
END

Erro..:  Table unknown
MOV_IT_TABELA_PRECO_PROMO_PARC
At line 10, column 5

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE CAD_IT_PESSOA_TRANSP_FILIAIS
 ALTER FILIAL TYPE VARCHAR(4)

Erro..:  unsuccessful metadata update
New size specified for column FILIAL must be at least 6 characters
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_exportacao_nfe_compra'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmrel_manifesto_documento_fiscal_resumido'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_CONHECIMENTO_TRANSPORTE ALTER RESPONSAVEL_SEGURADORA TYPE Varchar(25)

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 ALTER TABLE MOV_CTE_OS ALTER RESPONSAVEL_SEGURADORA TYPE Varchar(25)

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_conhecimento_transporte_os'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_conhecimento_transporte_gerenciar_cte_os'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE PARAMETRO_SISTEMA SET ENDERECO_FTP = '167.114.62.25' 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 DROP TRIGGER MOV_NOTA_FISCAL_COMPRA_04 

Erro..:  unsuccessful metadata update
Trigger MOV_NOTA_FISCAL_COMPRA_04 not found
C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER MOV_NOTA_FISCAL_COMPRA_06 FOR MOV_NOTA_FISCAL_COMPRA
ACTIVE BEFORE INSERT OR UPDATE POSITION 0
AS
BEGIN
    NEW.CHAVE_ACESSO = REPLACE(NEW.IDENTIFICACAO_ARQUIVO_XML, ' ', '');
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER MOV_REGISTRO_NF_DESTINADA_01 FOR MOV_REGISTRO_NF_DESTINADA ACTIVE
AFTER INSERT POSITION 0
AS
BEGIN
    IF (NEW.TIPO_XML = 'Completo') THEN
    BEGIN
        UPDATE MOV_REGISTRO_NF_DESTINADA D
        SET D.DUPLICADA = 'Sim'
        WHERE (D.CHAVE_ACESSO = NEW.CHAVE_ACESSO)
          AND (COALESCE(D.TIPO_XML, '') IN ('Sem XML', 'Resumido'))
          AND (D.EVENTO IS NULL);
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 UPDATE MOV_REGISTRO_NF_DESTINADA SET NSU = LPAD(NSU, 15, '0') WHERE CHARACTER_LENGTH(NSU) <> 15 

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER TRIGGER MOV_IT_CONTROLE_CARREGAMENTO_01 FOR MOV_IT_CONTROLE_CARREGAMENTO
 ACTIVE AFTER INSERT OR UPDATE POSITION 0
 AS
   DECLARE VARIABLE VSTATUS VARCHAR(25);
   DECLARE VARIABLE VCONVENIO INTEGER;
   DECLARE VARIABLE VINDICADOR_FORMA_PAGAMENTO INTEGER;
   DECLARE VARIABLE VCONDICAO_PAGAMENTO_FIXA VARCHAR(1);
   DECLARE VARIABLE VPARCELA INTEGER;
   DECLARE VARIABLE VDATA_VENCIMENTO DATE;
   DECLARE VARIABLE VNUMERO_PEDIDO_SISTEMA INTEGER;
   DECLARE VARIABLE VITEM_PEDIDO_SISTEMA INTEGER;
   DECLARE VARIABLE VSTATUS_PEDIDO_SISTEMA VARCHAR(25);
 BEGIN
     IF ((NEW.SERIE_NOTA_FISCAL IS NOT NULL) AND (NEW.NUMERO_NOTA_FISCAL IS NOT NULL)) THEN
     BEGIN
         SELECT STATUS
         FROM MOV_CONTROLE_CARREGAMENTO
         WHERE EMPRESA = NEW.EMPRESA
           AND NUMERO = NEW.NUMERO
         INTO :VSTATUS;

         IF (VSTATUS = 'Carregamento') THEN
         BEGIN
             UPDATE MOV_NOTA_FISCAL_VENDA SET
             ENTREGUE_TRANSPORTADORA = '2',
             DATA_ENTREGUE_TRANSPORTADORA = CURRENT_DATE
             WHERE EMPRESA = NEW.EMPRESA
               AND SERIE = NEW.SERIE_NOTA_FISCAL
               AND NUMERO = NEW.NUMERO_NOTA_FISCAL;

             /*------------------------------------------*/
             /***** Alterando os Vencimentos da Nota *****/
             /*------------------------------------------*/
             SELECT N.CONVENIO, N.INDICADOR_FORMA_PAGAMENTO, P.USA_CONDICAO_PAGAMENTO_FIXA
             FROM MOV_NOTA_FISCAL_VENDA N
             LEFT OUTER JOIN CAD_PESSOA P ON (P.CADASTRO = N.CONVENIO)
             WHERE N.EMPRESA = NEW.EMPRESA
               AND N.SERIE = NEW.SERIE_NOTA_FISCAL
               AND N.NUMERO = NEW.NUMERO_NOTA_FISCAL
             INTO :VCONVENIO, :VINDICADOR_FORMA_PAGAMENTO, :VCONDICAO_PAGAMENTO_FIXA;

             IF (VCONDICAO_PAGAMENTO_FIXA <> '2') THEN
             BEGIN
                 VDATA_VENCIMENTO = CURRENT_DATE;

                 FOR SELECT R.PARCELA
                 FROM MOV_CONTAS_RECEBER R
                 WHERE R.EMPRESA = NEW.EMPRESA
                   AND R.CAIXA = 'NF'
                   AND R.DOCUMENTO = 'NF'
                   AND R.CLIENTE = :VCONVENIO
                   AND R.NUMERO = NEW.NUMERO_NOTA_FISCAL
                   AND R.SERIE = NEW.SERIE_NOTA_FISCAL
                 INTO :VPARCELA
                 DO BEGIN
                     IF (VINDICADOR_FORMA_PAGAMENTO = 0) THEN
                     BEGIN
                         VDATA_VENCIMENTO = :VDATA_VENCIMENTO + 15;
                     END
                     ELSE BEGIN
                         VDATA_VENCIMENTO = :VDATA_VENCIMENTO + 30;
                     END

                     UPDATE MOV_CONTAS_RECEBER R SET
                     R.VENCIMENTO = :VDATA_VENCIMENTO
                     WHERE R.EMPRESA = NEW.EMPRESA
                       AND R.CAIXA = 'NF'
                       AND R.DOCUMENTO = 'NF'
                       AND R.CLIENTE = :VCONVENIO
                       AND R.NUMERO = NEW.NUMERO_NOTA_FISCAL
                       AND R.SERIE = NEW.SERIE_NOTA_FISCAL
                       AND R.PARCELA = :VPARCELA;
                 END
             END

             /*------------------------------------------------*/
             /***** Atualizando Pedido na API e no Sistema *****/
             /*------------------------------------------------*/
             INSERT INTO MOV_REQUISICAO_SERVICO
             (EMPRESA, NUMERO, TIPO_REQUISICAO, SERIE_REGISTRO,
              NUMERO_REGISTRO, REQUISICAO, REQUISICAO_2, REQUISICAO_3)
             VALUES
             (NEW.EMPRESA, 1, 'ALTERACAO_PEDIDO_API', NEW.SERIE_NOTA_FISCAL,
              NEW.NUMERO_NOTA_FISCAL, '2 - Em Transporte',
              SUBSTRING(CAST('NOW' AS TIMESTAMP) FROM 1 FOR 19), 'Carregamento');

             FOR SELECT IPV.NUMERO, IPV.SEQ, IPV.STATUS
                 FROM MOV_NOTA_FISCAL_VENDA NV
                 LEFT OUTER JOIN MOV_IT_NOTA_VENDA_PRODUTO INV ON (INV.EMPRESA = NV.EMPRESA
                                                               AND INV.SERIE = NV.SERIE
                                                               AND INV.NUMERO = NV.NUMERO)
                 LEFT OUTER JOIN MOV_IT_PEDIDO_VENDA IPV ON (IPV.EMPRESA = INV.EMPRESA
                                                         AND IPV.NUMERO = INV.NUMERO_PEDIDO_IMPORTADO
                                                         AND IPV.SEQ = INV.SEQ_PEDIDO_IMPORTADO)
                 WHERE NV.EMPRESA = NEW.EMPRESA
                   AND NV.SERIE = NEW.SERIE_NOTA_FISCAL
                   AND NV.NUMERO = NEW.NUMERO_NOTA_FISCAL
                   AND IPV.NUMERO > 0
                 INTO :VNUMERO_PEDIDO_SISTEMA, :VITEM_PEDIDO_SISTEMA, :VSTATUS_PEDIDO_SISTEMA
             DO BEGIN
                 IF ((VNUMERO_PEDIDO_SISTEMA > 0) AND (VSTATUS_PEDIDO_SISTEMA = 'Faturado')) THEN
                 BEGIN
                     UPDATE MOV_IT_PEDIDO_VENDA SET
                     STATUS = 'Em Transporte'
                     WHERE EMPRESA = NEW.EMPRESA
                       AND NUMERO = :VNUMERO_PEDIDO_SISTEMA
                       AND SEQ = :VITEM_PEDIDO_SISTEMA;
                 END
             END
         END
         ELSE BEGIN
             UPDATE MOV_NOTA_FISCAL_VENDA SET
             ENTREGUE_TRANSPORTADORA = '1',
             DATA_ENTREGUE_TRANSPORTADORA = NULL
             WHERE EMPRESA = NEW.EMPRESA
               AND SERIE = NEW.SERIE_NOTA_FISCAL
               AND NUMERO = NEW.NUMERO_NOTA_FISCAL;
         END
     END
 END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER TRIGGER MOV_IT_CONTROLE_CARREGAMENTO_02 FOR MOV_IT_CONTROLE_CARREGAMENTO
 ACTIVE BEFORE DELETE POSITION 0
 AS
   DECLARE VARIABLE VNUMERO_PEDIDO_SISTEMA INTEGER;
   DECLARE VARIABLE VITEM_PEDIDO_SISTEMA INTEGER;
   DECLARE VARIABLE VSTATUS_PEDIDO_SISTEMA VARCHAR(25);
 BEGIN
     UPDATE MOV_NOTA_FISCAL_VENDA SET
     ENTREGUE_TRANSPORTADORA = '1',
     DATA_ENTREGUE_TRANSPORTADORA = NULL
     WHERE EMPRESA = OLD.EMPRESA
       AND SERIE = OLD.SERIE_NOTA_FISCAL
       AND NUMERO = OLD.NUMERO_NOTA_FISCAL;

     /*----------------------------------------------*/
     /***** Atualizando Pedido no Site e Sistema *****/
     /*----------------------------------------------*/
     INSERT INTO MOV_REQUISICAO_SERVICO
     (EMPRESA, NUMERO, TIPO_REQUISICAO, SERIE_REGISTRO,
      NUMERO_REGISTRO, REQUISICAO, REQUISICAO_2, REQUISICAO_3)
     VALUES
     (OLD.EMPRESA, 1, 'ALTERACAO_PEDIDO_API', OLD.SERIE_NOTA_FISCAL,
      OLD.NUMERO_NOTA_FISCAL, '1 - Faturado', '', 'Excluso Carregamento');

     FOR SELECT IPV.NUMERO, IPV.SEQ, IPV.STATUS
         FROM MOV_NOTA_FISCAL_VENDA NV
         LEFT OUTER JOIN MOV_IT_NOTA_VENDA_PRODUTO INV ON (INV.EMPRESA = NV.EMPRESA
                                                       AND INV.SERIE = NV.SERIE
                                                       AND INV.NUMERO = NV.NUMERO)
         LEFT OUTER JOIN MOV_IT_PEDIDO_VENDA IPV ON (IPV.EMPRESA = INV.EMPRESA
                                                 AND IPV.NUMERO = INV.NUMERO_PEDIDO_IMPORTADO
                                                 AND IPV.SEQ = INV.SEQ_PEDIDO_IMPORTADO)
         WHERE NV.EMPRESA = OLD.EMPRESA
           AND NV.SERIE = OLD.SERIE_NOTA_FISCAL
           AND NV.NUMERO = OLD.NUMERO_NOTA_FISCAL
           AND IPV.NUMERO > 0
         INTO :VNUMERO_PEDIDO_SISTEMA, :VITEM_PEDIDO_SISTEMA, :VSTATUS_PEDIDO_SISTEMA
     DO BEGIN
         IF ((VNUMERO_PEDIDO_SISTEMA > 0) AND (VSTATUS_PEDIDO_SISTEMA = 'Faturado')) THEN
         BEGIN
             UPDATE MOV_IT_PEDIDO_VENDA SET
             STATUS = 'Faturado'
             WHERE EMPRESA = OLD.EMPRESA
               AND NUMERO = :VNUMERO_PEDIDO_SISTEMA
               AND SEQ = :VITEM_PEDIDO_SISTEMA;
         END
     END
 END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER TRIGGER MOV_CONTROLE_CARREGAMENTO_01 FOR MOV_CONTROLE_CARREGAMENTO
 ACTIVE AFTER UPDATE POSITION 0
 AS
 BEGIN
     UPDATE MOV_IT_CONTROLE_CARREGAMENTO SET
     STATUS = NEW.STATUS
     WHERE EMPRESA = OLD.EMPRESA
       AND NUMERO = OLD.NUMERO;
 END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER MOV_IT_CONTAS_RECEBER_02 FOR MOV_IT_CONTAS_RECEBER ACTIVE
AFTER INSERT POSITION 0
AS
DECLARE VARIABLE VTIPO_BAIXA VARCHAR(10);
DECLARE VARIABLE VCONTROLA_FLUXO_CAIXA VARCHAR(1);
DECLARE VARIABLE VUTILIZA_FINANCEIRO_CONTABIL VARCHAR(1);
DECLARE VARIABLE VHISTORICO VARCHAR(100);
DECLARE VARIABLE VHISTORICO_TARIFA VARCHAR(100);
DECLARE VARIABLE VREFERENCIA VARCHAR(100);
DECLARE VARIABLE VVALOR_CREDITO REAL;
DECLARE VARIABLE VVALOR_DEBITO REAL;
DECLARE VARIABLE VDATA_LANCAMENTO DATE;
DECLARE VARIABLE VRETROATIVO VARCHAR(1);
BEGIN
    IF ((NEW.CHEQUE_RECEBIDO IS NULL) OR (NEW.CHEQUE_RECEBIDO = 0)) THEN
    BEGIN
        /*---------------------------------------------------------------------------------*/
        /****** verifica se est configurado para lanar no caixa com data retroativa ******/
        /*---------------------------------------------------------------------------------*/
        SELECT E.LANCAMENTO_RETROATIVO_IT_CONTA FROM CAD_EMPRESA E
        WHERE E.CADASTRO = NEW.EMPRESA
        INTO :VRETROATIVO;

        VDATA_LANCAMENTO = CASE :VRETROATIVO WHEN 2 THEN NEW.DATA_PAGAMENTO ELSE CURRENT_DATE END;

        /*------------------------------------------------------------*/
        /****** Verificando se a Empresa Controla Fluxo de Caixa ******/
        /*------------------------------------------------------------*/
        SELECT E.CONTROLA_FLUXO_CAIXA, E.UTILIZA_FINANCEIRO_CONTABIL FROM CAD_EMPRESA E
        WHERE E.CADASTRO = NEW.EMPRESA
        INTO :VCONTROLA_FLUXO_CAIXA, :VUTILIZA_FINANCEIRO_CONTABIL;

        IF (:VCONTROLA_FLUXO_CAIXA = '2') THEN
        BEGIN
            /*-------------------------------------------------------*/
            /****** Verificando se o Tipo de Baixa  Financeiro ******/
            /*-------------------------------------------------------*/
            SELECT F.TIPO_BAIXA FROM CAD_FORMA_PAGAMENTO F
            WHERE F.EMPRESA = NEW.EMPRESA AND F.CADASTRO = NEW.FORMA_PAGAMENTO
            INTO :VTIPO_BAIXA;

            IF (:VTIPO_BAIXA = 'Financeiro') THEN
            BEGIN
                SELECT R.REFERENCIA, CL.NOME
                FROM MOV_CONTAS_RECEBER R
                LEFT OUTER JOIN CAD_PESSOA CL ON(CL.CADASTRO = R.CLIENTE)
                WHERE R.EMPRESA = NEW.EMPRESA
                  AND R.CAIXA = NEW.CAIXA
                  AND R.DOCUMENTO = NEW.DOCUMENTO
                  AND R.CLIENTE = NEW.CLIENTE
                  AND R.NUMERO = NEW.NUMERO
                  AND R.SERIE = NEW.SERIE
                  AND R.PARCELA = NEW.PARCELA
                INTO :VHISTORICO, :VREFERENCIA;

                VHISTORICO = UDF_COPY('Recto ' || VHISTORICO, 1, 100);
                VVALOR_DEBITO  = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN UDF_FORMAT_FLOAT(NEW.VALOR_PAGO, 2) ELSE 0 END;
                VVALOR_CREDITO = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN 0 ELSE UDF_FORMAT_FLOAT(NEW.VALOR_PAGO, 2) END;

                INSERT INTO CAD_IT_CONTA (EMPRESA, CONTA, SEQ, CAIXA, DOCUMENTO, CLIENTE, NUMERO, SERIE, PARCELA, DATA, HISTORICO, REFERENCIA, DEBITO, CREDITO)
                VALUES (NEW.EMPRESA, NEW.CONTA, 1, NEW.CAIXA, NEW.DOCUMENTO, NEW.CLIENTE, NEW.NUMERO, NEW.SERIE, NEW.PARCELA, :VDATA_LANCAMENTO, :VHISTORICO, :VREFERENCIA, :VVALOR_DEBITO, :VVALOR_CREDITO);

                IF (NEW.TARIFA_RECEBER > 0) THEN
                BEGIN
                    VHISTORICO_TARIFA = UDF_COPY('Tarifa Bancaria Ref. ' || VHISTORICO, 1, 100);
                    VVALOR_DEBITO  = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN 0 ELSE UDF_FORMAT_FLOAT(NEW.TARIFA_RECEBER, 2) END;
                    VVALOR_CREDITO = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN UDF_FORMAT_FLOAT(NEW.TARIFA_RECEBER, 2) ELSE 0 END;

                    INSERT INTO CAD_IT_CONTA (EMPRESA, CONTA, SEQ, CAIXA, DOCUMENTO, CLIENTE, NUMERO, SERIE, PARCELA, DATA, HISTORICO, REFERENCIA, DEBITO, CREDITO)
                    VALUES (NEW.EMPRESA, NEW.CONTA, 1, NEW.CAIXA, NEW.DOCUMENTO, NEW.CLIENTE, NEW.NUMERO, NEW.SERIE, NEW.PARCELA, :VDATA_LANCAMENTO, :VHISTORICO_TARIFA, :VREFERENCIA, :VVALOR_DEBITO, :VVALOR_CREDITO);
                END
            END
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER PROCEDURE PRO_CAD_IT_CONTA_RECALC_SALDO (
     VEMPRESA INTEGER,
     VCONTA INTEGER,
     VDATA_INICIAL DATE )
 AS
 DECLARE VARIABLE VSEQ INTEGER;
 DECLARE VARIABLE VVALOR_LANCAMENTO DOUBLE PRECISION;
 DECLARE VARIABLE VSALDO_ATUALIZADO DOUBLE PRECISION;
 BEGIN

     /* busca o saldo final do ltimo lanamento, na data anterior a data passada como parmetro */
     IF (:VDATA_INICIAL IS NOT NULL) THEN
     BEGIN
         SELECT FIRST 1
             I.SALDO
         FROM CAD_IT_CONTA I
         WHERE I.EMPRESA = :VEMPRESA AND I.CONTA = :VCONTA AND I.DATA < :VDATA_INICIAL
         ORDER BY I.DATA DESC, I.SEQ DESC
         INTO VSALDO_ATUALIZADO;
     END

     VSALDO_ATUALIZADO = COALESCE(:VSALDO_ATUALIZADO, 0);

     FOR
         SELECT
             I.SEQ,
             COALESCE(I.CREDITO, 0) - COALESCE(I.DEBITO, 0)
         FROM CAD_IT_CONTA I
         WHERE I.EMPRESA = :VEMPRESA AND I.CONTA = :VCONTA AND I.DATA >= :VDATA_INICIAL
         ORDER BY I.DATA, I.SEQ
         INTO :VSEQ, :VVALOR_LANCAMENTO
     DO BEGIN
         VSALDO_ATUALIZADO = :VSALDO_ATUALIZADO + :VVALOR_LANCAMENTO;

         UPDATE CAD_IT_CONTA I
         SET I.SALDO = :VSALDO_ATUALIZADO
         WHERE I.EMPRESA = :VEMPRESA AND I.CONTA = :VCONTA AND I.SEQ = :VSEQ AND I.SALDO <> :VSALDO_ATUALIZADO;
     END

     UPDATE CAD_CONTA C SET C.SALDO = :VSALDO_ATUALIZADO WHERE C.EMPRESA = :VEMPRESA AND C.CADASTRO = :VCONTA;
 END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER CAD_IT_CONTA_02 FOR CAD_IT_CONTA ACTIVE
AFTER INSERT OR UPDATE OR DELETE POSITION 0
AS
BEGIN
    IF (DELETING) THEN
    BEGIN
        EXECUTE PROCEDURE PRO_CAD_IT_CONTA_RECALC_SALDO (OLD.EMPRESA, OLD.CONTA, OLD.DATA);
    END
    ELSE BEGIN
        EXECUTE PROCEDURE PRO_CAD_IT_CONTA_RECALC_SALDO (NEW.EMPRESA, NEW.CONTA, NEW.DATA);
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmmov_nota_fiscal_compra_gerenciar_mde'

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_IT_CONTAS_PAGAR_04 ACTIVE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
 CREATE OR ALTER PROCEDURE PRO_CAD_IT_CONTA_RECALC_SALDO (
     VEMPRESA INTEGER,
     VCONTA INTEGER,
     VDATA_INICIAL DATE )
 AS
 DECLARE VARIABLE VSEQ INTEGER;
 DECLARE VARIABLE VVALOR_LANCAMENTO DOUBLE PRECISION;
 DECLARE VARIABLE VSALDO_ATUALIZADO DOUBLE PRECISION;
 BEGIN

     /* busca o saldo final do ltimo lanamento, na data anterior a data passada como parmetro */
     IF (:VDATA_INICIAL IS NOT NULL) THEN
     BEGIN
         SELECT FIRST 1
             I.SALDO
         FROM CAD_IT_CONTA I
         WHERE I.EMPRESA = :VEMPRESA AND I.CONTA = :VCONTA AND I.DATA < :VDATA_INICIAL
         ORDER BY I.DATA DESC, I.SEQ DESC
         INTO VSALDO_ATUALIZADO;
     END

     VSALDO_ATUALIZADO = COALESCE(:VSALDO_ATUALIZADO, 0);

     FOR
         SELECT
             I.SEQ,
             COALESCE(I.CREDITO, 0) - COALESCE(I.DEBITO, 0)
         FROM CAD_IT_CONTA I
         WHERE I.EMPRESA = :VEMPRESA AND I.CONTA = :VCONTA AND I.DATA >= :VDATA_INICIAL
         ORDER BY I.DATA, I.SEQ
         INTO :VSEQ, :VVALOR_LANCAMENTO
     DO BEGIN
         VSALDO_ATUALIZADO = :VSALDO_ATUALIZADO + :VVALOR_LANCAMENTO;

         UPDATE CAD_IT_CONTA I
         SET I.SALDO = :VSALDO_ATUALIZADO
         WHERE I.EMPRESA = :VEMPRESA AND I.CONTA = :VCONTA AND I.SEQ = :VSEQ AND I.SALDO <> :VSALDO_ATUALIZADO;
     END

     UPDATE CAD_CONTA C SET C.SALDO = :VSALDO_ATUALIZADO WHERE C.EMPRESA = :VEMPRESA AND C.CADASTRO = :VCONTA;
 END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER CAD_IT_CONTA_02 FOR CAD_IT_CONTA ACTIVE
AFTER INSERT OR UPDATE OR DELETE POSITION 0
AS
BEGIN
    IF (DELETING) THEN
    BEGIN
        EXECUTE PROCEDURE PRO_CAD_IT_CONTA_RECALC_SALDO (OLD.EMPRESA, OLD.CONTA, OLD.DATA);
    END
    ELSE BEGIN
        EXECUTE PROCEDURE PRO_CAD_IT_CONTA_RECALC_SALDO (NEW.EMPRESA, NEW.CONTA, NEW.DATA);
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER MOV_IT_CONTAS_PAGAR_02 FOR MOV_IT_CONTAS_PAGAR ACTIVE
AFTER INSERT POSITION 0
AS
DECLARE VARIABLE VTIPO_BAIXA VARCHAR(10);
DECLARE VARIABLE VCONTROLA_FLUXO_CAIXA VARCHAR(1);
DECLARE VARIABLE VUTILIZA_FINANCEIRO_CONTABIL VARCHAR(1);
DECLARE VARIABLE VHISTORICO VARCHAR(100);
DECLARE VARIABLE VREFERENCIA VARCHAR(100);
DECLARE VARIABLE VVALOR_CREDITO REAL;
DECLARE VARIABLE VVALOR_DEBITO REAL;
DECLARE VARIABLE VDATA_LANCAMENTO DATE;
DECLARE VARIABLE VRETROATIVO VARCHAR(1);
BEGIN
    IF ((NEW.CHEQUE_EMITIDO IS NULL) OR (NEW.CHEQUE_EMITIDO = 0)) THEN
    BEGIN
        /*---------------------------------------------------------------------------------*/
        /****** verifica se est configurado para lanar no caixa com data retroativa ******/
        /*---------------------------------------------------------------------------------*/
        SELECT E.LANCAMENTO_RETROATIVO_IT_CONTA FROM CAD_EMPRESA E
        WHERE E.CADASTRO = NEW.EMPRESA
        INTO :VRETROATIVO;

        VDATA_LANCAMENTO = CASE :VRETROATIVO WHEN 2 THEN NEW.DATA_PAGAMENTO ELSE CURRENT_DATE END;

        /*--------------------------------------------------------------------*/
        /******** Verificando se a Empresa Controla Fluxo de Caixa ************/
        /*--------------------------------------------------------------------*/
        SELECT E.CONTROLA_FLUXO_CAIXA, E.UTILIZA_FINANCEIRO_CONTABIL FROM CAD_EMPRESA E
        WHERE E.CADASTRO = NEW.EMPRESA
        INTO :VCONTROLA_FLUXO_CAIXA, :VUTILIZA_FINANCEIRO_CONTABIL;

        IF (:VCONTROLA_FLUXO_CAIXA = '2') THEN
        BEGIN
            /*----------------------------------------------------------------*/
            /********* Verificando se o Tipo de Baixa  Financeiro ************/
            /*----------------------------------------------------------------*/
            SELECT F.TIPO_BAIXA FROM CAD_FORMA_PAGAMENTO F
            WHERE F.EMPRESA = NEW.EMPRESA AND F.CADASTRO = NEW.FORMA_PAGAMENTO
            INTO VTIPO_BAIXA;

            IF (:VTIPO_BAIXA = 'Financeiro') THEN
            BEGIN
                SELECT P.REFERENCIA, F.NOME
                FROM MOV_CONTAS_PAGAR P
                LEFT OUTER JOIN CAD_PESSOA F ON(F.CADASTRO = P.FORNECEDOR)
                WHERE P.EMPRESA = NEW.EMPRESA
                  AND P.DOCUMENTO = NEW.DOCUMENTO
                  AND P.FORNECEDOR = NEW.FORNECEDOR
                  AND P.NUMERO = NEW.NUMERO
                  AND P.SERIE = NEW.SERIE
                  AND P.PARCELA = NEW.PARCELA
                INTO :VHISTORICO, :VREFERENCIA;

                VHISTORICO = UDF_COPY('Pagto ' || VHISTORICO, 1, 100);
                VVALOR_DEBITO  = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN 0 ELSE UDF_FORMAT_FLOAT(NEW.VALOR_PAGO, 2) END;
                VVALOR_CREDITO = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN UDF_FORMAT_FLOAT(NEW.VALOR_PAGO, 2) ELSE 0 END;

                INSERT INTO CAD_IT_CONTA (EMPRESA, CONTA, SEQ, DOCUMENTO, FORNECEDOR, NUMERO, SERIE, PARCELA, DATA, HISTORICO, REFERENCIA, DEBITO, CREDITO)
                VALUES (NEW.EMPRESA, NEW.CONTA, 1, NEW.DOCUMENTO, NEW.FORNECEDOR, NEW.NUMERO, NEW.SERIE, NEW.PARCELA, :VDATA_LANCAMENTO, :VHISTORICO, :VREFERENCIA, :VVALOR_DEBITO, :VVALOR_CREDITO);
            END
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER MOV_IT_CONTAS_PAGAR_03 FOR MOV_IT_CONTAS_PAGAR ACTIVE
AFTER UPDATE POSITION 0
AS
DECLARE VARIABLE VNEW_TIPO_BAIXA VARCHAR(10);
DECLARE VARIABLE VOLD_TIPO_BAIXA VARCHAR(10);
DECLARE VARIABLE VHISTORICO VARCHAR(100);
DECLARE VARIABLE VREFERENCIA VARCHAR(100);
DECLARE VARIABLE VCONTROLA_FLUXO_CAIXA VARCHAR(1);
DECLARE VARIABLE VUTILIZA_FINANCEIRO_CONTABIL VARCHAR(1);
DECLARE VARIABLE VVALOR_CREDITO REAL;
DECLARE VARIABLE VVALOR_DEBITO REAL;
DECLARE VARIABLE VDATA_LANCAMENTO DATE;
DECLARE VARIABLE VRETROATIVO VARCHAR(1);
BEGIN
    IF (((NEW.CHEQUE_EMITIDO IS NULL) OR (NEW.CHEQUE_EMITIDO = 0))
    AND ((NEW.CHEQUE_RECEBIDO IS NULL) OR (NEW.CHEQUE_RECEBIDO = 0))) THEN
    BEGIN
        /*---------------------------------------------------------------------------------*/
        /****** VERIFICA SE EST CONFIGURADO PARA LANAR NO CAIXA COM DATA RETROATIVA ******/
        /*---------------------------------------------------------------------------------*/
        SELECT E.LANCAMENTO_RETROATIVO_IT_CONTA FROM CAD_EMPRESA E
        WHERE E.CADASTRO = NEW.EMPRESA
        INTO :VRETROATIVO;

        VDATA_LANCAMENTO = CASE :VRETROATIVO WHEN 2 THEN NEW.DATA_PAGAMENTO ELSE CURRENT_DATE END;

        /*--------------------------------------------------------------------*/
        /******** Verificando se a Empresa Controla Fluxo de Caixa ************/
        /*--------------------------------------------------------------------*/
        SELECT E.CONTROLA_FLUXO_CAIXA, E.UTILIZA_FINANCEIRO_CONTABIL
        FROM CAD_EMPRESA E
        WHERE E.CADASTRO = NEW.EMPRESA
        INTO VCONTROLA_FLUXO_CAIXA, VUTILIZA_FINANCEIRO_CONTABIL;

        IF (VCONTROLA_FLUXO_CAIXA = '2') THEN
        BEGIN
            /*----------------------------------------------------------------*/
            /********* Verificando se o Tipo de Baixa  Financeiro ************/
            /*----------------------------------------------------------------*/
            SELECT F.TIPO_BAIXA FROM CAD_FORMA_PAGAMENTO F
            WHERE F.EMPRESA = OLD.EMPRESA AND F.CADASTRO = OLD.FORMA_PAGAMENTO
            INTO VOLD_TIPO_BAIXA;

            SELECT F.TIPO_BAIXA FROM CAD_FORMA_PAGAMENTO F
            WHERE F.EMPRESA = NEW.EMPRESA AND F.CADASTRO = NEW.FORMA_PAGAMENTO
            INTO VNEW_TIPO_BAIXA;

            IF ((NEW.CONTA <> OLD.CONTA) OR (NEW.VALOR_PAGO <> OLD.VALOR_PAGO) OR (VNEW_TIPO_BAIXA <> VOLD_TIPO_BAIXA)) THEN
            BEGIN
                IF (VOLD_TIPO_BAIXA = 'Financeiro') THEN
                BEGIN
                    /*--------------------------------------------------------*/
                    /************** Estorna o Valor Pago Antigo ***************/
                    /*--------------------------------------------------------*/
                    SELECT P.REFERENCIA, F.NOME FROM MOV_CONTAS_PAGAR P
                    LEFT OUTER JOIN CAD_PESSOA F ON (F.CADASTRO = P.FORNECEDOR)
                    WHERE P.EMPRESA = OLD.EMPRESA
                      AND P.DOCUMENTO = OLD.DOCUMENTO
                      AND P.FORNECEDOR = OLD.FORNECEDOR
                      AND P.NUMERO = OLD.NUMERO
                      AND P.SERIE = OLD.SERIE
                      AND P.PARCELA = OLD.PARCELA
                    INTO :VHISTORICO, :VREFERENCIA;

                    VHISTORICO = UDF_COPY('Estorno ' || VHISTORICO, 1, 100);
                    VVALOR_DEBITO  = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN UDF_FORMAT_FLOAT(OLD.VALOR_PAGO, 2) ELSE 0 END;
                    VVALOR_CREDITO = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN 0 ELSE UDF_FORMAT_FLOAT(OLD.VALOR_PAGO, 2) END;

                    INSERT INTO CAD_IT_CONTA (EMPRESA, CONTA, SEQ, DOCUMENTO, FORNECEDOR, NUMERO, SERIE, PARCELA, DATA, HISTORICO, REFERENCIA, DEBITO, CREDITO)
                    VALUES (OLD.EMPRESA, OLD.CONTA, 1, OLD.DOCUMENTO, OLD.FORNECEDOR, OLD.NUMERO, OLD.SERIE, OLD.PARCELA, :VDATA_LANCAMENTO, :VHISTORICO, :VREFERENCIA, :VVALOR_DEBITO, :VVALOR_CREDITO);
                END

                IF (VNEW_TIPO_BAIXA = 'Financeiro') THEN
                BEGIN
                    /*--------------------------------------------------------*/
                    /*************** Debita o Valor Pago Novo *****************/
                    /*--------------------------------------------------------*/
                    SELECT P.REFERENCIA, F.NOME FROM MOV_CONTAS_PAGAR P
                    LEFT OUTER JOIN CAD_PESSOA F ON (F.CADASTRO = P.FORNECEDOR)
                    WHERE P.EMPRESA = NEW.EMPRESA
                      AND P.DOCUMENTO = NEW.DOCUMENTO
                      AND P.FORNECEDOR = NEW.FORNECEDOR
                      AND P.NUMERO = NEW.NUMERO
                      AND P.SERIE = NEW.SERIE
                      AND P.PARCELA = NEW.PARCELA
                    INTO :VHISTORICO, :VREFERENCIA;

                    VHISTORICO = UDF_COPY('Pagto ' || VHISTORICO, 1, 100);
                    VVALOR_DEBITO  = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN 0 ELSE UDF_FORMAT_FLOAT(NEW.VALOR_PAGO, 2) END;
                    VVALOR_CREDITO = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN UDF_FORMAT_FLOAT(NEW.VALOR_PAGO, 2) ELSE 0 END;

                    INSERT INTO CAD_IT_CONTA (EMPRESA, CONTA, SEQ, DOCUMENTO, FORNECEDOR, NUMERO, SERIE, PARCELA, DATA, HISTORICO, REFERENCIA, DEBITO, CREDITO)
                    VALUES (NEW.EMPRESA, NEW.CONTA, 1, NEW.DOCUMENTO, NEW.FORNECEDOR, NEW.NUMERO, NEW.SERIE, NEW.PARCELA, :VDATA_LANCAMENTO, :VHISTORICO, :VREFERENCIA, :VVALOR_DEBITO, :VVALOR_CREDITO);
                END
            END
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER MOV_IT_CONTAS_PAGAR_04 FOR MOV_IT_CONTAS_PAGAR ACTIVE
AFTER DELETE POSITION 0
AS
DECLARE VARIABLE VTIPO_BAIXA VARCHAR(10);
DECLARE VARIABLE VCONTROLA_FLUXO_CAIXA VARCHAR(1);
DECLARE VARIABLE VUTILIZA_FINANCEIRO_CONTABIL VARCHAR(1);
DECLARE VARIABLE VHISTORICO VARCHAR(100);
DECLARE VARIABLE VREFERENCIA VARCHAR(100);
DECLARE VARIABLE VVALOR_CREDITO REAL;
DECLARE VARIABLE VVALOR_DEBITO REAL;
BEGIN
    IF (((OLD.CHEQUE_EMITIDO IS NULL) OR (OLD.CHEQUE_EMITIDO = 0))
    AND ((OLD.CHEQUE_RECEBIDO IS NULL) OR (OLD.CHEQUE_RECEBIDO = 0))) THEN
    BEGIN
        /*--------------------------------------------------------------------*/
        /********* Verificando se a Empresa Controla Fluxo de Caixa ***********/
        /*--------------------------------------------------------------------*/
        SELECT E.CONTROLA_FLUXO_CAIXA, E.UTILIZA_FINANCEIRO_CONTABIL FROM CAD_EMPRESA E
        WHERE E.CADASTRO = OLD.EMPRESA
        INTO VCONTROLA_FLUXO_CAIXA, VUTILIZA_FINANCEIRO_CONTABIL;

        IF (VCONTROLA_FLUXO_CAIXA = '2') THEN
        BEGIN
            /*----------------------------------------------------------------*/
            /********** Verificando se o Tipo de Baixa  Financeiro ***********/
            /*----------------------------------------------------------------*/
            SELECT F.TIPO_BAIXA FROM CAD_FORMA_PAGAMENTO F
            WHERE F.EMPRESA = OLD.EMPRESA AND F.CADASTRO = OLD.FORMA_PAGAMENTO
            INTO VTIPO_BAIXA;

            IF (VTIPO_BAIXA = 'Financeiro') THEN
            BEGIN
                SELECT P.REFERENCIA, F.NOME FROM MOV_CONTAS_PAGAR P
                LEFT OUTER JOIN CAD_PESSOA F ON (F.CADASTRO = P.FORNECEDOR)
                WHERE P.EMPRESA = OLD.EMPRESA
                  AND P.DOCUMENTO = OLD.DOCUMENTO
                  AND P.FORNECEDOR = OLD.FORNECEDOR
                  AND P.NUMERO = OLD.NUMERO
                  AND P.SERIE = OLD.SERIE
                  AND P.PARCELA = OLD.PARCELA
                INTO :VHISTORICO, :VREFERENCIA;

                VHISTORICO = UDF_COPY('Estorno ' || VHISTORICO, 1, 100);
                VVALOR_DEBITO  = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN UDF_FORMAT_FLOAT(OLD.VALOR_PAGO, 2) ELSE 0 END;
                VVALOR_CREDITO = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN 0 ELSE UDF_FORMAT_FLOAT(OLD.VALOR_PAGO, 2) END;

                INSERT INTO CAD_IT_CONTA (EMPRESA, CONTA, SEQ, DOCUMENTO, FORNECEDOR, NUMERO, SERIE, PARCELA, DATA, HISTORICO, REFERENCIA, DEBITO, CREDITO)
                VALUES (OLD.EMPRESA, OLD.CONTA, 1, OLD.DOCUMENTO, OLD.FORNECEDOR, OLD.NUMERO, OLD.SERIE, OLD.PARCELA, CURRENT_DATE, :VHISTORICO, :VREFERENCIA, :VVALOR_DEBITO, :VVALOR_CREDITO);
            END
        END
    END

    IF ((OLD.CHEQUE_EMITIDO IS NOT NULL) OR (OLD.CHEQUE_EMITIDO > 0)) THEN
    BEGIN
        /*--------------------------------------------------------------------*/
        /********* Reabrindo os Ttulos Vinculados ao Cheque Emitido **********/
        /*--------------------------------------------------------------------*/
        UPDATE MOV_CONTAS_PAGAR P SET
        P.SALDO = UDF_FORMAT_FLOAT(P.SALDO + ((OLD.VALOR_PAGO - OLD.JUROS_PAGO) + OLD.DESCONTO_CONCEDIDO), 2),
        P.SALDO_LIQUIDO = UDF_FORMAT_FLOAT(P.SALDO_LIQUIDO + ((OLD.VALOR_PAGO - OLD.JUROS_PAGO) + OLD.DESCONTO_CONCEDIDO), 2),
        P.ULTIMA_DATA_PAGAMENTO = (SELECT FIRST 1(I.DATA_PAGAMENTO)
                                   FROM MOV_IT_CONTAS_PAGAR I
                                   WHERE I.EMPRESA = OLD.EMPRESA
                                     AND I.DOCUMENTO = OLD.DOCUMENTO
                                     AND I.FORNECEDOR = OLD.FORNECEDOR
                                     AND I.NUMERO = OLD.NUMERO
                                     AND I.SERIE = OLD.SERIE
                                     AND I.PARCELA = OLD.PARCELA
                                   ORDER BY I.DATA_PAGAMENTO DESC)
        WHERE P.EMPRESA = OLD.EMPRESA
          AND P.DOCUMENTO = OLD.DOCUMENTO
          AND P.FORNECEDOR = OLD.FORNECEDOR
          AND P.NUMERO = OLD.NUMERO
          AND P.SERIE = OLD.SERIE
          AND P.PARCELA = OLD.PARCELA;
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER MOV_IT_CONTAS_RECEBER_02 FOR MOV_IT_CONTAS_RECEBER ACTIVE
AFTER INSERT POSITION 0
AS
DECLARE VARIABLE VTIPO_BAIXA VARCHAR(10);
DECLARE VARIABLE VCONTROLA_FLUXO_CAIXA VARCHAR(1);
DECLARE VARIABLE VUTILIZA_FINANCEIRO_CONTABIL VARCHAR(1);
DECLARE VARIABLE VHISTORICO VARCHAR(100);
DECLARE VARIABLE VHISTORICO_TARIFA VARCHAR(100);
DECLARE VARIABLE VREFERENCIA VARCHAR(100);
DECLARE VARIABLE VVALOR_CREDITO REAL;
DECLARE VARIABLE VVALOR_DEBITO REAL;
DECLARE VARIABLE VDATA_LANCAMENTO DATE;
DECLARE VARIABLE VRETROATIVO VARCHAR(1);
BEGIN
    IF ((NEW.CHEQUE_RECEBIDO IS NULL) OR (NEW.CHEQUE_RECEBIDO = 0)) THEN
    BEGIN
        /*---------------------------------------------------------------------------------*/
        /****** verifica se est configurado para lanar no caixa com data retroativa ******/
        /*---------------------------------------------------------------------------------*/
        SELECT E.LANCAMENTO_RETROATIVO_IT_CONTA FROM CAD_EMPRESA E
        WHERE E.CADASTRO = NEW.EMPRESA
        INTO :VRETROATIVO;

        VDATA_LANCAMENTO = CASE :VRETROATIVO WHEN 2 THEN NEW.DATA_PAGAMENTO ELSE CURRENT_DATE END;

        /*------------------------------------------------------------*/
        /****** Verificando se a Empresa Controla Fluxo de Caixa ******/
        /*------------------------------------------------------------*/
        SELECT E.CONTROLA_FLUXO_CAIXA, E.UTILIZA_FINANCEIRO_CONTABIL FROM CAD_EMPRESA E
        WHERE E.CADASTRO = NEW.EMPRESA
        INTO :VCONTROLA_FLUXO_CAIXA, :VUTILIZA_FINANCEIRO_CONTABIL;

        IF (:VCONTROLA_FLUXO_CAIXA = '2') THEN
        BEGIN
            /*-------------------------------------------------------*/
            /****** Verificando se o Tipo de Baixa  Financeiro ******/
            /*-------------------------------------------------------*/
            SELECT F.TIPO_BAIXA FROM CAD_FORMA_PAGAMENTO F
            WHERE F.EMPRESA = NEW.EMPRESA AND F.CADASTRO = NEW.FORMA_PAGAMENTO
            INTO :VTIPO_BAIXA;

            IF (:VTIPO_BAIXA = 'Financeiro') THEN
            BEGIN
                SELECT R.REFERENCIA, CL.NOME
                FROM MOV_CONTAS_RECEBER R
                LEFT OUTER JOIN CAD_PESSOA CL ON(CL.CADASTRO = R.CLIENTE)
                WHERE R.EMPRESA = NEW.EMPRESA
                  AND R.CAIXA = NEW.CAIXA
                  AND R.DOCUMENTO = NEW.DOCUMENTO
                  AND R.CLIENTE = NEW.CLIENTE
                  AND R.NUMERO = NEW.NUMERO
                  AND R.SERIE = NEW.SERIE
                  AND R.PARCELA = NEW.PARCELA
                INTO :VHISTORICO, :VREFERENCIA;

                VHISTORICO = UDF_COPY('Recto ' || VHISTORICO, 1, 100);
                VVALOR_DEBITO  = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN UDF_FORMAT_FLOAT(NEW.VALOR_PAGO, 2) ELSE 0 END;
                VVALOR_CREDITO = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN 0 ELSE UDF_FORMAT_FLOAT(NEW.VALOR_PAGO, 2) END;

                INSERT INTO CAD_IT_CONTA (EMPRESA, CONTA, SEQ, CAIXA, DOCUMENTO, CLIENTE, NUMERO, SERIE, PARCELA, DATA, HISTORICO, REFERENCIA, DEBITO, CREDITO)
                VALUES (NEW.EMPRESA, NEW.CONTA, 1, NEW.CAIXA, NEW.DOCUMENTO, NEW.CLIENTE, NEW.NUMERO, NEW.SERIE, NEW.PARCELA, :VDATA_LANCAMENTO, :VHISTORICO, :VREFERENCIA, :VVALOR_DEBITO, :VVALOR_CREDITO);

                IF (NEW.TARIFA_RECEBER > 0) THEN
                BEGIN
                    VHISTORICO_TARIFA = UDF_COPY('Tarifa Bancaria Ref. ' || VHISTORICO, 1, 100);
                    VVALOR_DEBITO  = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN 0 ELSE UDF_FORMAT_FLOAT(NEW.TARIFA_RECEBER, 2) END;
                    VVALOR_CREDITO = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN UDF_FORMAT_FLOAT(NEW.TARIFA_RECEBER, 2) ELSE 0 END;

                    INSERT INTO CAD_IT_CONTA (EMPRESA, CONTA, SEQ, CAIXA, DOCUMENTO, CLIENTE, NUMERO, SERIE, PARCELA, DATA, HISTORICO, REFERENCIA, DEBITO, CREDITO)
                    VALUES (NEW.EMPRESA, NEW.CONTA, 1, NEW.CAIXA, NEW.DOCUMENTO, NEW.CLIENTE, NEW.NUMERO, NEW.SERIE, NEW.PARCELA, :VDATA_LANCAMENTO, :VHISTORICO_TARIFA, :VREFERENCIA, :VVALOR_DEBITO, :VVALOR_CREDITO);
                END
            END
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER MOV_IT_CONTAS_RECEBER_03 FOR MOV_IT_CONTAS_RECEBER ACTIVE
AFTER UPDATE POSITION 0
AS
DECLARE VARIABLE VNEW_TIPO_BAIXA VARCHAR(10);
DECLARE VARIABLE VOLD_TIPO_BAIXA VARCHAR(10);
DECLARE VARIABLE VHISTORICO VARCHAR(100);
DECLARE VARIABLE VHISTORICO_TARIFA VARCHAR(100);
DECLARE VARIABLE VREFERENCIA VARCHAR(100);
DECLARE VARIABLE VCONTROLA_FLUXO_CAIXA VARCHAR(1);
DECLARE VARIABLE VUTILIZA_FINANCEIRO_CONTABIL VARCHAR(1);
DECLARE VARIABLE VVALOR_CREDITO REAL;
DECLARE VARIABLE VVALOR_DEBITO REAL;
DECLARE VARIABLE VDATA_LANCAMENTO DATE;
DECLARE VARIABLE VRETROATIVO VARCHAR(1);
BEGIN
    IF ((NEW.CHEQUE_RECEBIDO IS NULL) OR (NEW.CHEQUE_RECEBIDO = 0)) THEN
    BEGIN
        /*---------------------------------------------------------------------------------*/
        /****** VERIFICA SE EST CONFIGURADO PARA LANAR NO CAIXA COM DATA RETROATIVA ******/
        /*---------------------------------------------------------------------------------*/
        SELECT E.LANCAMENTO_RETROATIVO_IT_CONTA FROM CAD_EMPRESA E
        WHERE E.CADASTRO = NEW.EMPRESA
        INTO :VRETROATIVO;

        VDATA_LANCAMENTO = CASE :VRETROATIVO WHEN 2 THEN NEW.DATA_PAGAMENTO ELSE CURRENT_DATE END;

        /*------------------------------------------------------------*/
        /****** Verificando se a Empresa Controla Fluxo de Caixa ******/
        /*------------------------------------------------------------*/
        SELECT E.CONTROLA_FLUXO_CAIXA, E.UTILIZA_FINANCEIRO_CONTABIL FROM CAD_EMPRESA E
        WHERE E.CADASTRO = NEW.EMPRESA
        INTO VCONTROLA_FLUXO_CAIXA, VUTILIZA_FINANCEIRO_CONTABIL;

        IF (VCONTROLA_FLUXO_CAIXA = '2') THEN
        BEGIN
            /*-------------------------------------------------------*/
            /****** Verificando se o Tipo de Baixa  Financeiro ******/
            /*-------------------------------------------------------*/
            SELECT F.TIPO_BAIXA FROM CAD_FORMA_PAGAMENTO F
            WHERE F.EMPRESA = OLD.EMPRESA AND F.CADASTRO = OLD.FORMA_PAGAMENTO
            INTO VOLD_TIPO_BAIXA;

            SELECT F.TIPO_BAIXA FROM CAD_FORMA_PAGAMENTO F
            WHERE F.EMPRESA = NEW.EMPRESA AND F.CADASTRO = NEW.FORMA_PAGAMENTO
            INTO VNEW_TIPO_BAIXA;

            IF ((NEW.CONTA <> OLD.CONTA) OR (NEW.VALOR_PAGO <> OLD.VALOR_PAGO) OR (VNEW_TIPO_BAIXA <> VOLD_TIPO_BAIXA)) THEN
            BEGIN
                IF (VOLD_TIPO_BAIXA = 'Financeiro') THEN
                BEGIN
                    /*---------------------------------------*/
                    /****** Estorna o Valor Pago Antigo ******/
                    /*---------------------------------------*/
                    SELECT R.REFERENCIA, CL.NOME FROM MOV_CONTAS_RECEBER R
                    LEFT OUTER JOIN CAD_PESSOA CL ON (CL.CADASTRO = R.CLIENTE)
                    WHERE R.EMPRESA = OLD.EMPRESA
                      AND R.CAIXA = OLD.CAIXA
                      AND R.DOCUMENTO = OLD.DOCUMENTO
                      AND R.CLIENTE = OLD.CLIENTE
                      AND R.NUMERO = OLD.NUMERO
                      AND R.SERIE = OLD.SERIE
                      AND R.PARCELA = OLD.PARCELA
                    INTO :VHISTORICO, :VREFERENCIA;

                    VHISTORICO = UDF_COPY('Estorno ' || VHISTORICO, 1, 100);
                    VVALOR_DEBITO  = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN 0 ELSE UDF_FORMAT_FLOAT(OLD.VALOR_PAGO, 2) END;
                    VVALOR_CREDITO = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN UDF_FORMAT_FLOAT(OLD.VALOR_PAGO, 2) ELSE 0 END;

                    INSERT INTO CAD_IT_CONTA (EMPRESA, CONTA, SEQ, CAIXA, DOCUMENTO, CLIENTE, NUMERO, SERIE, PARCELA, DATA, HISTORICO, REFERENCIA, DEBITO, CREDITO)
                    VALUES (OLD.EMPRESA, OLD.CONTA, 1, OLD.CAIXA, OLD.DOCUMENTO, OLD.CLIENTE, OLD.NUMERO, OLD.SERIE, OLD.PARCELA, :VDATA_LANCAMENTO, :VHISTORICO, :VREFERENCIA, :VVALOR_DEBITO, :VVALOR_CREDITO);

                    IF (OLD.TARIFA_RECEBER > 0) THEN
                    BEGIN
                        VHISTORICO_TARIFA = UDF_COPY('Tarifa Bancaria Ref. ' || VHISTORICO, 1, 100);
                        VVALOR_DEBITO  = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN UDF_FORMAT_FLOAT(OLD.TARIFA_RECEBER, 2) ELSE 0 END;
                        VVALOR_CREDITO = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN 0 ELSE UDF_FORMAT_FLOAT(OLD.TARIFA_RECEBER, 2) END;

                        INSERT INTO CAD_IT_CONTA(EMPRESA, CONTA, SEQ, CAIXA, DOCUMENTO, CLIENTE, NUMERO, SERIE, PARCELA, DATA, HISTORICO, REFERENCIA, DEBITO, CREDITO)
                        VALUES (OLD.EMPRESA, OLD.CONTA, 1, OLD.CAIXA, OLD.DOCUMENTO, OLD.CLIENTE, OLD.NUMERO, OLD.SERIE, OLD.PARCELA, :VDATA_LANCAMENTO, :VHISTORICO_TARIFA, :VREFERENCIA, :VVALOR_DEBITO, :VVALOR_CREDITO);
                    END
                END

                IF (VNEW_TIPO_BAIXA = 'Financeiro') THEN
                BEGIN
                    /*-------------------------------------*/
                    /****** Credita o Valor Pago Novo ******/
                    /*-------------------------------------*/
                    SELECT R.REFERENCIA, CL.NOME FROM MOV_CONTAS_RECEBER R
                    LEFT OUTER JOIN CAD_PESSOA cl ON (CL.CADASTRO = R.CLIENTE)
                    WHERE R.EMPRESA = NEW.EMPRESA
                      AND R.CAIXA = NEW.CAIXA
                      AND R.DOCUMENTO = NEW.DOCUMENTO
                      AND R.CLIENTE = NEW.CLIENTE
                      AND R.NUMERO = NEW.NUMERO
                      AND R.SERIE = NEW.SERIE
                      AND R.PARCELA = NEW.PARCELA
                    INTO :VHISTORICO, :VREFERENCIA;

                    VHISTORICO = UDF_COPY('Recto ' || VHISTORICO, 1, 100);
                    VVALOR_DEBITO  = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN UDF_FORMAT_FLOAT(NEW.VALOR_PAGO, 2) ELSE 0 END;
                    VVALOR_CREDITO = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN 0 ELSE UDF_FORMAT_FLOAT(NEW.VALOR_PAGO, 2) END;

                    INSERT INTO CAD_IT_CONTA (EMPRESA, CONTA, SEQ, CAIXA, DOCUMENTO, CLIENTE, NUMERO, SERIE, PARCELA, DATA, HISTORICO, REFERENCIA, DEBITO, CREDITO)
                    VALUES (NEW.EMPRESA, NEW.CONTA, 1, NEW.CAIXA, NEW.DOCUMENTO, NEW.CLIENTE, NEW.NUMERO, NEW.SERIE, NEW.PARCELA, :VDATA_LANCAMENTO, :VHISTORICO, :VREFERENCIA, :VVALOR_DEBITO, :VVALOR_CREDITO);

                    IF (NEW.TARIFA_RECEBER > 0) THEN
                    BEGIN
                        VHISTORICO_TARIFA = UDF_COPY('Tarifa Bancaria Ref. ' || VHISTORICO, 1, 100);
                        VVALOR_DEBITO  = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN 0 ELSE UDF_FORMAT_FLOAT(NEW.TARIFA_RECEBER, 2) END;
                        VVALOR_CREDITO = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN UDF_FORMAT_FLOAT(NEW.TARIFA_RECEBER, 2) ELSE 0 END;

                        INSERT INTO CAD_IT_CONTA (EMPRESA, CONTA, SEQ, CAIXA, DOCUMENTO, CLIENTE, NUMERO, SERIE, PARCELA, DATA, HISTORICO, REFERENCIA, DEBITO, CREDITO)
                        VALUES (NEW.EMPRESA, NEW.CONTA, 1, NEW.CAIXA, NEW.DOCUMENTO, NEW.CLIENTE, NEW.NUMERO, NEW.SERIE, NEW.PARCELA, :VDATA_LANCAMENTO, :VHISTORICO_TARIFA, :VREFERENCIA,  :VVALOR_DEBITO, :VVALOR_CREDITO);
                    END
                END
            END
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER MOV_IT_CONTAS_RECEBER_04 FOR MOV_IT_CONTAS_RECEBER ACTIVE
AFTER DELETE POSITION 0
AS
DECLARE VARIABLE VTIPO_BAIXA VARCHAR(10);
DECLARE VARIABLE VCONTROLA_FLUXO_CAIXA VARCHAR(1);
DECLARE VARIABLE VUTILIZA_FINANCEIRO_CONTABIL VARCHAR(1);
DECLARE VARIABLE VHISTORICO VARCHAR(100);
DECLARE VARIABLE VHISTORICO_TARIFA VARCHAR(100);
DECLARE VARIABLE VREFERENCIA VARCHAR(100);
DECLARE VARIABLE VCAIXA VARCHAR(3);
DECLARE VARIABLE VDOCUMENTO VARCHAR(2);
DECLARE VARIABLE VCLIENTE INTEGER;
DECLARE VARIABLE VNUMERO INTEGER;
DECLARE VARIABLE VSERIE INTEGER;
DECLARE VARIABLE VPARCELA INTEGER;
DECLARE VARIABLE VSEQ INTEGER;
DECLARE VARIABLE VVALOR_PAGO REAL;
DECLARE VARIABLE VJUROS_PAGO REAL;
DECLARE VARIABLE VDESCONTO_CONCEDIDO REAL;
DECLARE VARIABLE VVALOR_CREDITO REAL;
DECLARE VARIABLE VVALOR_DEBITO REAL;
BEGIN
    IF ((OLD.CHEQUE_RECEBIDO IS NULL) OR (OLD.CHEQUE_RECEBIDO = 0)) THEN
    BEGIN
        /*------------------------------------------------------------*/
        /****** Verificando se a Empresa Controla Fluxo de Caixa ******/
        /*------------------------------------------------------------*/
        SELECT E.CONTROLA_FLUXO_CAIXA, E.UTILIZA_FINANCEIRO_CONTABIL FROM CAD_EMPRESA E
        WHERE E.CADASTRO = OLD.EMPRESA
        INTO VCONTROLA_FLUXO_CAIXA, VUTILIZA_FINANCEIRO_CONTABIL;

        IF (VCONTROLA_FLUXO_CAIXA = '2') THEN
        BEGIN
            /*-------------------------------------------------------*/
            /****** Verificando se o Tipo de Baixa  Financeiro ******/
            /*-------------------------------------------------------*/
            SELECT F.TIPO_BAIXA FROM CAD_FORMA_PAGAMENTO F
            WHERE F.EMPRESA = OLD.EMPRESA AND F.CADASTRO = OLD.FORMA_PAGAMENTO
            INTO VTIPO_BAIXA;

            IF (VTIPO_BAIXA = 'Financeiro') THEN
            BEGIN
                SELECT R.REFERENCIA, CL.NOME FROM MOV_CONTAS_RECEBER R
                LEFT OUTER JOIN CAD_PESSOA CL ON (CL.CADASTRO = R.CLIENTE)
                WHERE R.EMPRESA = OLD.EMPRESA
                  AND R.CAIXA = OLD.CAIXA
                  AND R.DOCUMENTO = OLD.DOCUMENTO
                  AND R.CLIENTE = OLD.CLIENTE
                  AND R.NUMERO = OLD.NUMERO
                  AND R.SERIE = OLD.SERIE
                  AND R.PARCELA = OLD.PARCELA
                INTO :VHISTORICO, :VREFERENCIA;

                VHISTORICO = UDF_COPY('Estorno ' || VHISTORICO, 1, 100);
                VVALOR_DEBITO  = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN 0 ELSE UDF_FORMAT_FLOAT(OLD.VALOR_PAGO, 2) END;
                VVALOR_CREDITO = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN UDF_FORMAT_FLOAT(OLD.VALOR_PAGO, 2) ELSE 0 END;

                INSERT INTO CAD_IT_CONTA (EMPRESA, CONTA, SEQ, CAIXA, DOCUMENTO, CLIENTE, NUMERO, SERIE, PARCELA, DATA, HISTORICO, REFERENCIA, DEBITO, CREDITO)
                VALUES (OLD.EMPRESA, OLD.CONTA, 1, OLD.CAIXA, OLD.DOCUMENTO, OLD.CLIENTE, OLD.NUMERO, OLD.SERIE, OLD.PARCELA, CURRENT_DATE, :VHISTORICO, :VREFERENCIA, :VVALOR_DEBITO, :VVALOR_CREDITO);

                IF (OLD.TARIFA_RECEBER > 0) THEN
                BEGIN
                    VHISTORICO_TARIFA = UDF_COPY('Tarifa Bancaria Ref. ' || VHISTORICO, 1, 100);
                    VVALOR_DEBITO  = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN UDF_FORMAT_FLOAT(OLD.TARIFA_RECEBER, 2) ELSE 0 END;
                    VVALOR_CREDITO = CASE WHEN :VUTILIZA_FINANCEIRO_CONTABIL = '2' THEN 0 ELSE UDF_FORMAT_FLOAT(OLD.TARIFA_RECEBER, 2) END;

                    INSERT INTO CAD_IT_CONTA (EMPRESA, CONTA, SEQ, CAIXA, DOCUMENTO, CLIENTE, NUMERO, SERIE, PARCELA, DATA, HISTORICO, REFERENCIA, DEBITO, CREDITO)
                    VALUES (OLD.EMPRESA, OLD.CONTA, 1, OLD.CAIXA, OLD.DOCUMENTO, OLD.CLIENTE, OLD.NUMERO, OLD.SERIE, OLD.PARCELA, CURRENT_DATE, :VHISTORICO_TARIFA, :VREFERENCIA, :VVALOR_DEBITO, :VVALOR_CREDITO);
                END
            END
        END
    END
    ELSE BEGIN
        /*----------------------------------------------------------------*/
        /****** Reabrindo os Ttulos Vinculados ao Cheque do Cliente ******/
        /*----------------------------------------------------------------*/
        UPDATE MOV_CONTAS_RECEBER R SET
        R.SALDO = UDF_FORMAT_FLOAT(R.SALDO + ((OLD.VALOR_PAGO - OLD.JUROS_PAGO) + OLD.DESCONTO_CONCEDIDO), 2),
        R.SALDO_LIQUIDO = UDF_FORMAT_FLOAT(R.SALDO_LIQUIDO + ((OLD.VALOR_PAGO - OLD.JUROS_PAGO) + OLD.DESCONTO_CONCEDIDO), 2),
        R.ENTRADA = '1',
        R.A_VISTA = '1',
        R.ULTIMA_DATA_PAGAMENTO = (SELECT FIRST 1(I.DATA_PAGAMENTO) FROM MOV_IT_CONTAS_RECEBER I
                                   WHERE I.EMPRESA = OLD.EMPRESA
                                     AND I.CAIXA = OLD.CAIXA
                                     AND I.DOCUMENTO = OLD.DOCUMENTO
                                     AND I.CLIENTE = OLD.CLIENTE
                                     AND I.NUMERO = OLD.NUMERO
                                     AND I.SERIE = OLD.SERIE
                                     AND I.PARCELA = OLD.PARCELA
                                   ORDER BY I.DATA_PAGAMENTO DESC)
        WHERE R.EMPRESA = OLD.EMPRESA
          AND R.CAIXA = OLD.CAIXA
          AND R.DOCUMENTO = OLD.DOCUMENTO
          AND R.CLIENTE = OLD.CLIENTE
          AND R.NUMERO = OLD.NUMERO
          AND R.SERIE = OLD.SERIE
          AND R.PARCELA = OLD.PARCELA;
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_NOTA_FISCAL_VENDA_03 INACTIVE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_NOTA_FISCAL_VENDA_04 INACTIVE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_NOTA_FISCAL_VENDA_05 INACTIVE

Erro..:  unsuccessful metadata update
Trigger MOV_NOTA_FISCAL_VENDA_05 not found

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_NOTA_FISCAL_VENDA_03 ACTIVE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_NOTA_FISCAL_VENDA_04 ACTIVE

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
ALTER TRIGGER MOV_NOTA_FISCAL_VENDA_05 ACTIVE

Erro..:  unsuccessful metadata update
Trigger MOV_NOTA_FISCAL_VENDA_05 not found

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER PROCEDURE PRO_MOV_NOTA_FISCAL_VENDA_NFE (
    e_empresa integer,
    e_status varchar(20))
returns (
    empresa integer,
    serie integer,
    numero integer,
    emissao date,
    cliente integer,
    nome_cliente varchar(80),
    fone_01_cliente varchar(15),
    email_cliente varchar(300),
    numero_lote_nfe integer,
    identificacao_arquivo_xml_nfe varchar(60),
    total_nota double precision,
    status varchar(20),
    nota_fiscal_impressa varchar(1),
    arquivo_xml_nfe blob sub_type 0 segment size 80,
    protocolo_envio_nfe varchar(25),
    numero_recibo_nfe varchar(25),
    protocolo_cancelamento_nfe varchar(25),
    protocolo_inutilizacao_nfe varchar(25),
    motivo_cancelamento varchar(100),
    nota_fiscal_entrada varchar(1),
    situacao_documento_fiscal integer,
    comunicado_envio_nfe_por_email varchar(1),
    nome_transportadora varchar(80),
    email_transportadora varchar(300),
    email_transp_redespacho varchar(300),
    enviar_nfe_transportadora varchar(1),
    enviar_nfe_transp_redespacho varchar(1),
    tipo_nota varchar(3),
    finalidade_emissao_nfe varchar(15),
    gnre_gerada varchar(1),
    estado_cliente varchar(2),
    transportadora integer,
    natureza_operacao varchar(8),
    devolucao_recebida varchar(1),
    data_recto_devolucao date,
    retorno_produto_com_defeito varchar(1),
    retorno_produto_assistencia varchar(1),
    exportar_api_fornecedor varchar(1))
as
BEGIN
    FOR SELECT N.EMPRESA, N.SERIE, N.NUMERO, N.EMISSAO, N.CLIENTE, N.NOME_CLIENTE,
               N.FONE_01_CLIENTE, CL.EMAIL, N.NUMERO_LOTE_NFE, N.IDENTIFICACAO_ARQUIVO_XML_NFE,
               N.TOTAL_NOTA, N.STATUS, N.NOTA_FISCAL_IMPRESSA, N.ARQUIVO_XML_NFE,
               N.PROTOCOLO_ENVIO_NFE, N.NUMERO_RECIBO_NFE, N.PROTOCOLO_CANCELAMENTO_NFE,
               N.PROTOCOLO_INUTILIZACAO_NFE, N.MOTIVO_CANCELAMENTO, N.NOTA_FISCAL_ENTRADA,
               N.SITUACAO_DOCUMENTO_FISCAL, N.COMUNICADO_ENVIO_NFE_POR_EMAIL, N.NOME_TRANSPORTADORA,
               TR.EMAIL, TRR.EMAIL, TR.TRA_ENVIAR_COMUNICADO_NFE, TRR.TRA_ENVIAR_COMUNICADO_NFE,
               N.TIPO_NOTA, N.FINALIDADE_EMISSAO_NFE, N.GNRE_GERADA, N.ESTADO_CLIENTE,
               N.TRANSPORTADORA, N.NATUREZA_OPERACAO_01, N.DEVOLUCAO_RECEBIDA,
               N.DATA_RECTO_DEVOLUCAO, N.RETORNO_PRODUTO_COM_DEFEITO, N.RETORNO_PRODUTO_ASSISTENCIA,
               N.EXPORTAR_API_FORNECEDOR
    FROM MOV_NOTA_FISCAL_VENDA N
    LEFT OUTER JOIN CAD_PESSOA CL ON(CL.CADASTRO = N.CLIENTE)
    LEFT OUTER JOIN CAD_PESSOA TR ON(TR.CADASTRO = N.TRANSPORTADORA)
    LEFT OUTER JOIN CAD_PESSOA TRR ON(TRR.CADASTRO = N.TRANSP_REDESPACHO)
    WHERE N.EMPRESA = :E_EMPRESA
      AND N.STATUS = :E_STATUS
    ORDER BY N.SERIE DESC, N.NUMERO DESC
    INTO :EMPRESA, :SERIE, :NUMERO, :EMISSAO, :CLIENTE, :NOME_CLIENTE,
         :FONE_01_CLIENTE, :EMAIL_CLIENTE, :NUMERO_LOTE_NFE, :IDENTIFICACAO_ARQUIVO_XML_NFE,
         :TOTAL_NOTA, :STATUS, :NOTA_FISCAL_IMPRESSA, :ARQUIVO_XML_NFE,
         :PROTOCOLO_ENVIO_NFE, :NUMERO_RECIBO_NFE, :PROTOCOLO_CANCELAMENTO_NFE,
         :PROTOCOLO_INUTILIZACAO_NFE, :MOTIVO_CANCELAMENTO, :NOTA_FISCAL_ENTRADA,
         :SITUACAO_DOCUMENTO_FISCAL, :COMUNICADO_ENVIO_NFE_POR_EMAIL, :NOME_TRANSPORTADORA,
         :EMAIL_TRANSPORTADORA, :EMAIL_TRANSP_REDESPACHO, :ENVIAR_NFE_TRANSPORTADORA,
         :ENVIAR_NFE_TRANSP_REDESPACHO, :TIPO_NOTA, :FINALIDADE_EMISSAO_NFE, :GNRE_GERADA,
         :ESTADO_CLIENTE, :TRANSPORTADORA, :NATUREZA_OPERACAO, :DEVOLUCAO_RECEBIDA,
         :DATA_RECTO_DEVOLUCAO, :RETORNO_PRODUTO_COM_DEFEITO, :RETORNO_PRODUTO_ASSISTENCIA,
         :EXPORTAR_API_FORNECEDOR
    DO BEGIN
        SUSPEND;
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER PROCEDURE PRO_BUSCA_PRODUTO (
    VEMPRESA Integer,
    VPRODUTO Integer,
    VREFERENCIA Varchar(25),
    VCODIGO_BARRA Varchar(25),
    VFORNECEDOR Integer,
    VCODIGO_PRODUTO_FORNECEDOR Varchar(25),
    VDESCRICAO_PRODUTO_FORNECEDOR Varchar(120) )
RETURNS (
    CADASTRO Integer,
    DESCRICAO Varchar(80),
    CFOP_ENTRADA Varchar(8),
    UNIDADE Varchar(3),
    REFERENCIA Varchar(25),
    CODIGO_BARRA Varchar(25),
    CLASSIFICACAO_FISCAL Varchar(10),
    INATIVO Varchar(1) )
AS
DECLARE VARIABLE VSQL_SELECT VARCHAR(5000);
DECLARE VARIABLE VSQL_WHERE VARCHAR(5000);
BEGIN
    VPRODUTO                      = CASE WHEN :VPRODUTO = 0                    THEN NULL ELSE :VPRODUTO END;
    VREFERENCIA                   = CASE WHEN :VREFERENCIA = ''                THEN NULL ELSE TRIM(:VREFERENCIA) END;
    VCODIGO_BARRA                 = CASE WHEN :VCODIGO_BARRA = ''              THEN NULL ELSE TRIM(:VCODIGO_BARRA) END;
    VFORNECEDOR                   = CASE WHEN :VFORNECEDOR = 0                 THEN NULL ELSE :VFORNECEDOR END;
    VCODIGO_PRODUTO_FORNECEDOR    = CASE WHEN :VCODIGO_PRODUTO_FORNECEDOR = '' THEN NULL ELSE TRIM(:VCODIGO_PRODUTO_FORNECEDOR) END;
    VDESCRICAO_PRODUTO_FORNECEDOR = CASE WHEN :VDESCRICAO_PRODUTO_FORNECEDOR = '' THEN NULL ELSE TRIM(:VDESCRICAO_PRODUTO_FORNECEDOR) END;


    IF ((:VPRODUTO > 0) OR (:VREFERENCIA <> '') OR (:VCODIGO_BARRA <> '') OR (:VCODIGO_PRODUTO_FORNECEDOR <> '')) THEN
    BEGIN
        VSQL_SELECT = 'SELECT DISTINCT P.CADASTRO, P.DESCRICAO, P.CFOP_ENTRADA, P.UNIDADE, P.REFERENCIA, P.CLASSIFICACAO_FISCAL, P.INATIVO, ' ||
                      CASE WHEN :VCODIGO_BARRA IS NOT NULL THEN 'CB.CODIGO_BARRA ' ELSE 'NULL AS CODIGO_BARRA ' END ||
                      'FROM CAD_PRODUTO P ' || ASCII_CHAR(13) || ASCII_CHAR(10) ||

                       CASE
                           WHEN :VCODIGO_BARRA IS NOT NULL THEN
                               'LEFT OUTER JOIN CAD_IT_PRODUTO_CODIGO_BARRA CB ON CB.EMPRESA = P.EMPRESA AND CB.PRODUTO = P.CADASTRO ' || ASCII_CHAR(13) || ASCII_CHAR(10)
                           ELSE
                               ''
                       END ||

                       CASE
                           WHEN :VCODIGO_PRODUTO_FORNECEDOR IS NOT NULL THEN
                               'LEFT OUTER JOIN CAD_IT_PRODUTO_GRADE_FORNECEDOR GF ON GF.EMPRESA = P.EMPRESA AND GF.PRODUTO = P.CADASTRO ' || ASCII_CHAR(13) || ASCII_CHAR(10)
                           ELSE
                               ''
                       END;

        VSQL_WHERE = '';

        IF (:VPRODUTO IS NOT NULL) THEN
        BEGIN
            VSQL_WHERE = CASE WHEN :VSQL_WHERE <> '' THEN :VSQL_WHERE || ' OR ' ELSE '' END || '(P.CADASTRO = ' || :VPRODUTO || ')';
        END

        IF (:VREFERENCIA IS NOT NULL) THEN
        BEGIN
            VSQL_WHERE = CASE WHEN :VSQL_WHERE <> '' THEN :VSQL_WHERE || ' OR ' ELSE '' END || '(TRIM(P.REFERENCIA) = ''' || :VREFERENCIA || ''')';
        END

        IF (:VCODIGO_BARRA IS NOT NULL) THEN
        BEGIN
            VSQL_WHERE = CASE WHEN :VSQL_WHERE <> '' THEN :VSQL_WHERE || ' OR ' ELSE '' END || '(TRIM(CB.CODIGO_BARRA) = ''' || :VCODIGO_BARRA || ''')';
        END

        IF (:VCODIGO_PRODUTO_FORNECEDOR IS NOT NULL) THEN
        BEGIN
            VSQL_WHERE = CASE
                             WHEN :VSQL_WHERE <> '' THEN
                                 :VSQL_WHERE || ' OR '
                             ELSE
                                 ''
                         END ||
                         '((GF.FORNECEDOR = ' || :VFORNECEDOR || ') AND (TRIM(GF.CODIGO_BARRA) = ''' || :VCODIGO_PRODUTO_FORNECEDOR || ''') ' ||
                         CASE
                           WHEN :VDESCRICAO_PRODUTO_FORNECEDOR IS NOT NULL THEN
                              ' AND (GF.DESCRICAO_FORNECEDOR = ''' || :VDESCRICAO_PRODUTO_FORNECEDOR || ''')'
                           ELSE
                               ''
                         END || ')';
        END

        VSQL_WHERE = 'WHERE (P.EMPRESA = ' || :VEMPRESA || ') AND (' || :VSQL_WHERE || ')';
        VSQL_SELECT = :VSQL_SELECT || :VSQL_WHERE;

        --EXCEPTION TESTE :VSQL_SELECT;

        FOR
            EXECUTE STATEMENT :VSQL_SELECT
            INTO :CADASTRO, :DESCRICAO, :CFOP_ENTRADA, :UNIDADE, :REFERENCIA, :CLASSIFICACAO_FISCAL, :INATIVO, :CODIGO_BARRA
        DO BEGIN
            SUSPEND;
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER PROCEDURE PRO_BUSCA_PRODUTO (
    VEMPRESA Integer,
    VPRODUTO Integer,
    VREFERENCIA Varchar(25),
    VCODIGO_BARRA Varchar(25),
    VFORNECEDOR Integer,
    VCODIGO_PRODUTO_FORNECEDOR Varchar(25),
    VDESCRICAO_PRODUTO_FORNECEDOR Varchar(120) )
RETURNS (
    CADASTRO Integer,
    DESCRICAO Varchar(80),
    CFOP_ENTRADA Varchar(8),
    UNIDADE Varchar(3),
    REFERENCIA Varchar(25),
    CODIGO_BARRA Varchar(25),
    CLASSIFICACAO_FISCAL Varchar(10),
    INATIVO Varchar(1) )
AS
DECLARE VARIABLE VSQL_SELECT VARCHAR(5000);
DECLARE VARIABLE VSQL_WHERE VARCHAR(5000);
BEGIN
    VPRODUTO                      = CASE WHEN :VPRODUTO = 0                    THEN NULL ELSE :VPRODUTO END;
    VREFERENCIA                   = CASE WHEN :VREFERENCIA = ''                THEN NULL ELSE TRIM(:VREFERENCIA) END;
    VCODIGO_BARRA                 = CASE WHEN :VCODIGO_BARRA = ''              THEN NULL ELSE TRIM(:VCODIGO_BARRA) END;
    VFORNECEDOR                   = CASE WHEN :VFORNECEDOR = 0                 THEN NULL ELSE :VFORNECEDOR END;
    VCODIGO_PRODUTO_FORNECEDOR    = CASE WHEN :VCODIGO_PRODUTO_FORNECEDOR = '' THEN NULL ELSE TRIM(:VCODIGO_PRODUTO_FORNECEDOR) END;
    VDESCRICAO_PRODUTO_FORNECEDOR = CASE WHEN :VDESCRICAO_PRODUTO_FORNECEDOR = '' THEN NULL ELSE TRIM(:VDESCRICAO_PRODUTO_FORNECEDOR) END;


    IF ((:VPRODUTO > 0) OR (:VREFERENCIA <> '') OR (:VCODIGO_BARRA <> '') OR (:VCODIGO_PRODUTO_FORNECEDOR <> '')) THEN
    BEGIN
        VSQL_SELECT = 'SELECT DISTINCT P.CADASTRO, P.DESCRICAO, P.CFOP_ENTRADA, P.UNIDADE, P.REFERENCIA, P.CLASSIFICACAO_FISCAL, P.INATIVO, ' ||
                      CASE WHEN :VCODIGO_BARRA IS NOT NULL THEN 'CB.CODIGO_BARRA ' ELSE 'NULL AS CODIGO_BARRA ' END ||
                      'FROM CAD_PRODUTO P ' || ASCII_CHAR(13) || ASCII_CHAR(10) ||

                       CASE
                           WHEN :VCODIGO_BARRA IS NOT NULL THEN
                               'LEFT OUTER JOIN CAD_IT_PRODUTO_CODIGO_BARRA CB ON CB.EMPRESA = P.EMPRESA AND CB.PRODUTO = P.CADASTRO ' || ASCII_CHAR(13) || ASCII_CHAR(10)
                           ELSE
                               ''
                       END ||

                       CASE
                           WHEN :VCODIGO_PRODUTO_FORNECEDOR IS NOT NULL THEN
                               'LEFT OUTER JOIN CAD_IT_PRODUTO_GRADE_FORNECEDOR GF ON GF.EMPRESA = P.EMPRESA AND GF.PRODUTO = P.CADASTRO ' || ASCII_CHAR(13) || ASCII_CHAR(10)
                           ELSE
                               ''
                       END;

        VSQL_WHERE = '';

        IF (:VPRODUTO IS NOT NULL) THEN
        BEGIN
            VSQL_WHERE = CASE WHEN :VSQL_WHERE <> '' THEN :VSQL_WHERE || ' OR ' ELSE '' END || '(P.CADASTRO = ' || :VPRODUTO || ')';
        END

        IF (:VREFERENCIA IS NOT NULL) THEN
        BEGIN
            VSQL_WHERE = CASE WHEN :VSQL_WHERE <> '' THEN :VSQL_WHERE || ' OR ' ELSE '' END || '(TRIM(P.REFERENCIA) = ''' || :VREFERENCIA || ''')';
        END

        IF (:VCODIGO_BARRA IS NOT NULL) THEN
        BEGIN
            VSQL_WHERE = CASE WHEN :VSQL_WHERE <> '' THEN :VSQL_WHERE || ' OR ' ELSE '' END || '(TRIM(CB.CODIGO_BARRA) = ''' || :VCODIGO_BARRA || ''')';
        END

        IF (:VCODIGO_PRODUTO_FORNECEDOR IS NOT NULL) THEN
        BEGIN
            VSQL_WHERE = CASE
                             WHEN :VSQL_WHERE <> '' THEN
                                 :VSQL_WHERE || ' OR '
                             ELSE
                                 ''
                         END ||
                         '((GF.FORNECEDOR = ' || :VFORNECEDOR || ') AND (TRIM(GF.CODIGO_BARRA) = ''' || :VCODIGO_PRODUTO_FORNECEDOR || ''') ' ||
                         CASE
                           WHEN :VDESCRICAO_PRODUTO_FORNECEDOR IS NOT NULL THEN
                              ' AND (GF.DESCRICAO_FORNECEDOR = ''' || :VDESCRICAO_PRODUTO_FORNECEDOR || ''')'
                           ELSE
                               ''
                         END || ')';
        END

        VSQL_WHERE = 'WHERE (P.EMPRESA = ' || :VEMPRESA || ') AND (' || :VSQL_WHERE || ')';
        VSQL_SELECT = :VSQL_SELECT || :VSQL_WHERE;

        --EXCEPTION TESTE :VSQL_SELECT;

        FOR
            EXECUTE STATEMENT :VSQL_SELECT
            INTO :CADASTRO, :DESCRICAO, :CFOP_ENTRADA, :UNIDADE, :REFERENCIA, :CLASSIFICACAO_FISCAL, :INATIVO, :CODIGO_BARRA
        DO BEGIN
            SUSPEND;
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER CAD_IT_CONTA_02 FOR CAD_IT_CONTA ACTIVE
AFTER INSERT OR UPDATE OR DELETE POSITION 0
AS
BEGIN
    IF (DELETING) THEN
    BEGIN
        EXECUTE PROCEDURE PRO_CAD_IT_CONTA_RECALC_SALDO (OLD.EMPRESA, OLD.CONTA, OLD.DATA);
    END
    ELSE BEGIN
        EXECUTE PROCEDURE PRO_CAD_IT_CONTA_RECALC_SALDO (NEW.EMPRESA, NEW.CONTA, NEW.DATA);
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER TRIGGER MOV_TRANSF_ENTRE_CONTAS_01 FOR MOV_TRANSF_ENTRE_CONTAS
ACTIVE AFTER DELETE POSITION 0
AS
BEGIN
    DELETE FROM CAD_IT_CONTA C WHERE C.EMPRESA = OLD.EMPRESA AND C.TRANSFERENCIA = OLD.NUMERO;
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
CREATE OR ALTER PROCEDURE PRO_BUSCA_PRODUTO (
    VEMPRESA Integer,
    VPRODUTO Integer,
    VREFERENCIA Varchar(25),
    VCODIGO_BARRA Varchar(25),
    VFORNECEDOR Integer,
    VCODIGO_PRODUTO_FORNECEDOR Varchar(25),
    VDESCRICAO_PRODUTO_FORNECEDOR Varchar(120) )
RETURNS (
    CADASTRO Integer,
    DESCRICAO Varchar(80),
    CFOP_ENTRADA Varchar(8),
    UNIDADE Varchar(3),
    REFERENCIA Varchar(25),
    CODIGO_BARRA Varchar(25),
    CLASSIFICACAO_FISCAL Varchar(10),
    INATIVO Varchar(1) )
AS
DECLARE VARIABLE VSQL_SELECT VARCHAR(5000);
DECLARE VARIABLE VSQL_WHERE VARCHAR(5000);
BEGIN
    VPRODUTO                      = CASE WHEN :VPRODUTO = 0                    THEN NULL ELSE :VPRODUTO END;
    VREFERENCIA                   = CASE WHEN :VREFERENCIA = ''                THEN NULL ELSE TRIM(:VREFERENCIA) END;
    VCODIGO_BARRA                 = CASE WHEN :VCODIGO_BARRA = ''              THEN NULL ELSE TRIM(:VCODIGO_BARRA) END;
    VFORNECEDOR                   = CASE WHEN :VFORNECEDOR = 0                 THEN NULL ELSE :VFORNECEDOR END;
    VCODIGO_PRODUTO_FORNECEDOR    = CASE WHEN :VCODIGO_PRODUTO_FORNECEDOR = '' THEN NULL ELSE TRIM(:VCODIGO_PRODUTO_FORNECEDOR) END;
    VDESCRICAO_PRODUTO_FORNECEDOR = CASE WHEN :VDESCRICAO_PRODUTO_FORNECEDOR = '' THEN NULL ELSE TRIM(:VDESCRICAO_PRODUTO_FORNECEDOR) END;


    IF ((:VPRODUTO > 0) OR (:VREFERENCIA <> '') OR (:VCODIGO_BARRA <> '') OR (:VCODIGO_PRODUTO_FORNECEDOR <> '')) THEN
    BEGIN
        VSQL_SELECT = 'SELECT DISTINCT P.CADASTRO, P.DESCRICAO, P.CFOP_ENTRADA, P.UNIDADE, P.REFERENCIA, P.CLASSIFICACAO_FISCAL, P.INATIVO, ' ||
                      CASE WHEN :VCODIGO_BARRA IS NOT NULL THEN 'CB.CODIGO_BARRA ' ELSE 'NULL AS CODIGO_BARRA ' END ||
                      'FROM CAD_PRODUTO P ' || ASCII_CHAR(13) || ASCII_CHAR(10) ||

                       CASE
                           WHEN :VCODIGO_BARRA IS NOT NULL THEN
                               'LEFT OUTER JOIN CAD_IT_PRODUTO_CODIGO_BARRA CB ON CB.EMPRESA = P.EMPRESA AND CB.PRODUTO = P.CADASTRO ' || ASCII_CHAR(13) || ASCII_CHAR(10)
                           ELSE
                               ''
                       END ||

                       CASE
                           WHEN :VCODIGO_PRODUTO_FORNECEDOR IS NOT NULL THEN
                               'LEFT OUTER JOIN CAD_IT_PRODUTO_GRADE_FORNECEDOR GF ON GF.EMPRESA = P.EMPRESA AND GF.PRODUTO = P.CADASTRO ' || ASCII_CHAR(13) || ASCII_CHAR(10)
                           ELSE
                               ''
                       END;

        VSQL_WHERE = '';

        IF (:VPRODUTO IS NOT NULL) THEN
        BEGIN
            VSQL_WHERE = CASE WHEN :VSQL_WHERE <> '' THEN :VSQL_WHERE || ' OR ' ELSE '' END || '(P.CADASTRO = ' || :VPRODUTO || ')';
        END

        IF (:VREFERENCIA IS NOT NULL) THEN
        BEGIN
            VSQL_WHERE = CASE WHEN :VSQL_WHERE <> '' THEN :VSQL_WHERE || ' OR ' ELSE '' END || '(TRIM(P.REFERENCIA) = ''' || :VREFERENCIA || ''')';
        END

        IF (:VCODIGO_BARRA IS NOT NULL) THEN
        BEGIN
            VSQL_WHERE = CASE WHEN :VSQL_WHERE <> '' THEN :VSQL_WHERE || ' OR ' ELSE '' END || '(TRIM(CB.CODIGO_BARRA) = ''' || :VCODIGO_BARRA || ''')';
        END

        IF (:VCODIGO_PRODUTO_FORNECEDOR IS NOT NULL) THEN
        BEGIN
            VSQL_WHERE = CASE
                             WHEN :VSQL_WHERE <> '' THEN
                                 :VSQL_WHERE || ' OR '
                             ELSE
                                 ''
                         END ||
                         '((GF.FORNECEDOR = ' || :VFORNECEDOR || ') AND (TRIM(GF.CODIGO_BARRA) = ''' || :VCODIGO_PRODUTO_FORNECEDOR || ''') ' ||
                         CASE
                           WHEN :VDESCRICAO_PRODUTO_FORNECEDOR IS NOT NULL THEN
                              ' AND (GF.DESCRICAO_FORNECEDOR = ''' || :VDESCRICAO_PRODUTO_FORNECEDOR || ''')'
                           ELSE
                               ''
                         END || ')';
        END

        VSQL_WHERE = 'WHERE (P.EMPRESA = ' || :VEMPRESA || ') AND (' || :VSQL_WHERE || ')';
        VSQL_SELECT = :VSQL_SELECT || :VSQL_WHERE;

        --EXCEPTION TESTE :VSQL_SELECT;

        FOR
            EXECUTE STATEMENT :VSQL_SELECT
            INTO :CADASTRO, :DESCRICAO, :CFOP_ENTRADA, :UNIDADE, :REFERENCIA, :CLASSIFICACAO_FISCAL, :INATIVO, :CODIGO_BARRA
        DO BEGIN
            SUSPEND;
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB
================================================================================
