SET SQL DIALECT 3;
SET TERM ^ ;

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0032','PRODUTOS','CADASTROS','FLG_TAMANHO','PERMITE REPETIR TAMANHO NA GRADE','SIM','SIM;NAO','N')

^

update configuracao set valor = 'SIM'
where (campo = 'FLG_TAMANHO') and (cod_tela = 'SG_0032')
and exists (select codigo from empresa where ((nivel <> 15) and (nivel <> 23) and (nivel <> 24) and (nivel <> 25) and (nivel <> 27)
and (nivel <> 30) and (nivel <> 33) and (nivel <> 34) and (nivel <> 39) and (nivel <> 43) and (nivel <> 46) and (nivel <> 54)
and (nivel <> 58) and (nivel <> 68) and (nivel <> 67) and (nivel <> 106) and (nivel <> 112) and (nivel <> 114) and (nivel <> 118)))

^

ALTER TABLE PARAMETROS
    ADD IMPRESSORA_PADRAO VARCHAR(200)

^

ALTER TABLE END_CLI
ADD CONSTRAINT FK_END_CLI1
FOREIGN KEY (COD_CLI)
REFERENCES CLIENTE(CODIGO)
ON DELETE CASCADE 

^

ALTER TABLE PROD_LOTE
   ADD VLR_PMC numeric(15,2),
   ADD COD_ANVISA varchar(40)

^

CREATE OR ALTER procedure P_PROD_LOTE (
    OPERACAO integer,
    CODIGO integer,
    COD_PROD integer,
    COD_EMPRESA integer,
    NUM_LOTE varchar(40),
    DT_CADASTRO date,
    DT_VALIDADE date,
    ESTOQUE numeric(15,3),
    VLR_PMC numeric(15,2),
    COD_ANVISA varchar(40))
as
begin 
if (operacao = 1) then 
insert into PROD_LOTE (CODIGO,COD_PROD,COD_EMPRESA,NUM_LOTE,DT_CADASTRO,DT_VALIDADE,ESTOQUE,VLR_PMC,COD_ANVISA)
values (:CODIGO,:COD_PROD,:COD_EMPRESA,:NUM_LOTE,:DT_CADASTRO,:DT_VALIDADE,:ESTOQUE,:VLR_PMC,:COD_ANVISA);
if (operacao = 2) then 
update PROD_LOTE set 
COD_PROD = :COD_PROD, 
COD_EMPRESA = :COD_EMPRESA, 
NUM_LOTE = :NUM_LOTE, 
DT_CADASTRO = :DT_CADASTRO, 
DT_VALIDADE = :DT_VALIDADE, 
ESTOQUE = :ESTOQUE,
VLR_PMC = :VLR_PMC,
COD_ANVISA = : COD_ANVISA
where (CODIGO = :CODIGO); 
if (operacao = 3) then 
delete from PROD_LOTE 
where (CODIGO = :CODIGO);
suspend; 
end

============================================================
     ATUALIZABANCO VAI AT  AQUI - 27 DE ABRIL DE 2022 - (1.0.0.26)
============================================================


ALTER TABLE PRODUTO
    ADD PORC_FCP NUMERIC(15,2)

^

CREATE OR ALTER procedure P_PRODUTO (
    OPERACAO integer,
    CODIGO integer,
    NOME varchar(60),
    COD_GRUPO integer,
    COD_FORNECEDOR integer,
    MARCA varchar(200),
    UNIDADE_ESTOQUE varchar(10),
    UNIDADE_CONVERSAO varchar(10),
    QTD_EMBALAGEM numeric(15,4),
    PORC_LUCRO_V numeric(15,2),
    PORC_LUCRO_P numeric(15,2),
    PORC_ICMS_ISS numeric(15,2),
    PORC_COMISSAO integer,
    COD_CST varchar(10),
    ESTOQUE_INICIAL numeric(15,3),
    ESTOQUE_MINIMO numeric(15,3),
    ESTOQUE_ATUAL numeric(15,3),
    ESTOQUE_FISCAL numeric(15,3),
    COD_TRIB integer,
    COD_TRIB_ENT integer,
    SIT_TRIB varchar(2),
    DT_CADASTRO date,
    FLG_ATIVADO char(1),
    FLG_ESTOQUE char(1),
    FLG_TIPO char(1),
    LOCALIZACAO varchar(60),
    OBSERVACAO varchar(100),
    OBSERVACAO2 varchar(100),
    DT_ALTERACAO date,
    TEMPO_REAL time,
    NCM varchar(20),
    COD_CSOSN integer,
    CONV_PRECO numeric(15,3),
    CST_PIS varchar(3),
    CST_COFINS varchar(3),
    COD_SUBGRUPO integer,
    COD_SUBSUBGRUPO integer,
    ESTOQUE1 numeric(15,3),
    ESTOQUE2 numeric(15,3),
    ESTOQUE3 numeric(15,3),
    ESTOQUE4 numeric(15,3),
    ESTOQUE5 numeric(15,3),
    PORC_PIS numeric(15,2),
    PORC_COFINS numeric(15,2),
    OBS_ADICIONAL varchar(3000),
    DT_VALIDADE date,
    PORC_IPI numeric(15,2),
    PORC_MVA numeric(15,2),
    PESO_BRUTO numeric(15,3),
    PESO_LIQUIDO numeric(15,3),
    FOTO varchar(200),
    ANEXO varchar(100),
    COD_ANP varchar(10),
    LOCALIZACAO2 varchar(60),
    ETIQUETA integer,
    COD_CEST varchar(7),
    COD_EMPRESA integer,
    PORC_DESC numeric(15,2),
    FLG_DESC char(1),
    ESTOQUE_MAXIMO numeric(15,3),
    ESTOQUE_DEMANDA_MEDIA numeric(15,3),
    ESTOQUE_TEMPO_RESUPRI numeric(15,3),
    ESTOQUE_INTERVALO_RESUPRI numeric(15,3),
    COD_DESP integer,
    COD_MARCA integer,
    FLG_SITE char(1),
    FLG_BALANCA char(1),
    SITE_COMPRIMENTO numeric(15,2),
    SITE_LARGURA numeric(15,2),
    SITE_ALTURA numeric(15,2),
    SITE_DESCRICAO varchar(9999),
    SITE_SYNC char(1),
    SITE_COD integer,
    PORC_REDBASE numeric(15,2),
    PONTOS numeric(15,4),
    LOCALIZACAO21 varchar(60),
    LOCALIZACAO22 varchar(60),
    LOCALIZACAO31 varchar(60),
    LOCALIZACAO32 varchar(60),
    LOCALIZACAO41 varchar(60),
    LOCALIZACAO42 varchar(60),
    LOCALIZACAO51 varchar(60),
    LOCALIZACAO52 varchar(60),
    PORC_FCP numeric(15,2))
as
begin
if (OPERACAO = 1) then 
insert into PRODUTO (CODIGO,NOME,COD_GRUPO,COD_FORNECEDOR,MARCA,UNIDADE_ESTOQUE,UNIDADE_CONVERSAO,QTD_EMBALAGEM,PORC_LUCRO_V,PORC_LUCRO_P,PORC_ICMS_ISS,PORC_COMISSAO,
COD_CST,ESTOQUE_INICIAL,ESTOQUE_MINIMO,ESTOQUE_ATUAL,ESTOQUE_FISCAL,COD_TRIB,COD_TRIB_ENT,SIT_TRIB,DT_CADASTRO,FLG_ATIVADO,FLG_ESTOQUE,FLG_TIPO,LOCALIZACAO,OBSERVACAO,
OBSERVACAO2,DT_ALTERACAO,TEMPO_REAL,NCM,COD_CSOSN,CONV_PRECO,CST_PIS,CST_COFINS,COD_SUBGRUPO,COD_SUBSUBGRUPO,ESTOQUE1,ESTOQUE2,ESTOQUE3,ESTOQUE4,ESTOQUE5,PORC_PIS,PORC_COFINS,
OBS_ADICIONAL,DT_VALIDADE,PORC_IPI,PORC_MVA,PESO_BRUTO,PESO_LIQUIDO,FOTO,ANEXO,COD_ANP,LOCALIZACAO2,ETIQUETA,COD_CEST,COD_EMPRESA,PORC_DESC,FLG_DESC,ESTOQUE_MAXIMO,ESTOQUE_DEMANDA_MEDIA,
ESTOQUE_TEMPO_RESUPRI,ESTOQUE_INTERVALO_RESUPRI,COD_DESP,COD_MARCA,FLG_SITE,FLG_BALANCA,SITE_COMPRIMENTO,SITE_LARGURA,SITE_ALTURA,SITE_DESCRICAO,SITE_SYNC,SITE_COD,PORC_REDBASE,PONTOS,
LOCALIZACAO21,LOCALIZACAO22,LOCALIZACAO31,LOCALIZACAO32,LOCALIZACAO41,LOCALIZACAO42,LOCALIZACAO51,LOCALIZACAO52, PORC_FCP)
values (:CODIGO,:NOME,:COD_GRUPO,:COD_FORNECEDOR,:MARCA,:UNIDADE_ESTOQUE,:UNIDADE_CONVERSAO,:QTD_EMBALAGEM,:PORC_LUCRO_V,:PORC_LUCRO_P,:PORC_ICMS_ISS,:PORC_COMISSAO,:COD_CST,:ESTOQUE_INICIAL,:ESTOQUE_MINIMO,
:ESTOQUE_ATUAL,:ESTOQUE_FISCAL,:COD_TRIB,:COD_TRIB_ENT,:SIT_TRIB,:DT_CADASTRO,:FLG_ATIVADO,:FLG_ESTOQUE,:FLG_TIPO,:LOCALIZACAO,:OBSERVACAO,:OBSERVACAO2,:DT_ALTERACAO,:TEMPO_REAL,:NCM,:COD_CSOSN,
:CONV_PRECO,:CST_PIS,:CST_COFINS,:COD_SUBGRUPO,:COD_SUBSUBGRUPO,:ESTOQUE1,:ESTOQUE2,:ESTOQUE3,:ESTOQUE4,:ESTOQUE5,:PORC_PIS,:PORC_COFINS,:OBS_ADICIONAL,:DT_VALIDADE,:PORC_IPI,:PORC_MVA,:PESO_BRUTO,
:PESO_LIQUIDO,:FOTO,:ANEXO,:COD_ANP,:LOCALIZACAO2,:ETIQUETA,:COD_CEST,
:COD_EMPRESA,:PORC_DESC,:FLG_DESC,:ESTOQUE_MAXIMO,:ESTOQUE_DEMANDA_MEDIA,:ESTOQUE_TEMPO_RESUPRI,:ESTOQUE_INTERVALO_RESUPRI,:COD_DESP,:COD_MARCA,:FLG_SITE,:FLG_BALANCA,
:SITE_COMPRIMENTO,:SITE_LARGURA,:SITE_ALTURA,:SITE_DESCRICAO,:SITE_SYNC,:SITE_COD,:PORC_REDBASE,:PONTOS,:LOCALIZACAO21,:LOCALIZACAO22,:LOCALIZACAO31,:LOCALIZACAO32,:LOCALIZACAO41,
:LOCALIZACAO42,:LOCALIZACAO51,:LOCALIZACAO52,:PORC_FCP);
if (OPERACAO = 2) then 
update PRODUTO set 
NOME = :NOME,
COD_GRUPO = :COD_GRUPO,
COD_FORNECEDOR = :COD_FORNECEDOR,
MARCA = :MARCA,
UNIDADE_ESTOQUE = :UNIDADE_ESTOQUE,
UNIDADE_CONVERSAO = :UNIDADE_CONVERSAO,
QTD_EMBALAGEM = :QTD_EMBALAGEM,
PORC_LUCRO_V = :PORC_LUCRO_V,
PORC_LUCRO_P = :PORC_LUCRO_P,
PORC_ICMS_ISS = :PORC_ICMS_ISS,
PORC_COMISSAO = :PORC_COMISSAO,
COD_CST = :COD_CST,
ESTOQUE_INICIAL = :ESTOQUE_INICIAL,
ESTOQUE_MINIMO = :ESTOQUE_MINIMO,
ESTOQUE_ATUAL = :ESTOQUE_ATUAL,
ESTOQUE_FISCAL = :ESTOQUE_FISCAL,
COD_TRIB = :COD_TRIB,
COD_TRIB_ENT = :COD_TRIB_ENT,
SIT_TRIB = :SIT_TRIB,
DT_CADASTRO = :DT_CADASTRO,
FLG_ATIVADO = :FLG_ATIVADO,
FLG_ESTOQUE = :FLG_ESTOQUE,
FLG_TIPO = :FLG_TIPO,
LOCALIZACAO = :LOCALIZACAO,
OBSERVACAO = :OBSERVACAO,
OBSERVACAO2 = :OBSERVACAO2,
DT_ALTERACAO = :DT_ALTERACAO,
TEMPO_REAL = :TEMPO_REAL,
NCM = :NCM,
COD_CSOSN = :COD_CSOSN,
CONV_PRECO = :CONV_PRECO,
CST_PIS = :CST_PIS,
CST_COFINS = :CST_COFINS,
COD_SUBGRUPO = :COD_SUBGRUPO,
COD_SUBSUBGRUPO = :COD_SUBSUBGRUPO,
ESTOQUE1 = :ESTOQUE1,
ESTOQUE2 = :ESTOQUE2,
ESTOQUE3 = :ESTOQUE3,
ESTOQUE4 = :ESTOQUE4,
ESTOQUE5 = :ESTOQUE5,
PORC_PIS = :PORC_PIS,
PORC_COFINS = :PORC_COFINS,
OBS_ADICIONAL = :OBS_ADICIONAL,
DT_VALIDADE = :DT_VALIDADE,
PORC_IPI = :PORC_IPI,
PORC_MVA = :PORC_MVA,
PESO_BRUTO = :PESO_BRUTO,
PESO_LIQUIDO = :PESO_LIQUIDO,
FOTO = :FOTO,
ANEXO = :ANEXO,
COD_ANP = :COD_ANP,
LOCALIZACAO2 = :LOCALIZACAO2,
ETIQUETA = :ETIQUETA,
COD_CEST = :COD_CEST,
COD_EMPRESA = :COD_EMPRESA,
PORC_DESC = :PORC_DESC,
FLG_DESC = :FLG_DESC,
ESTOQUE_MAXIMO = :ESTOQUE_MAXIMO,
ESTOQUE_DEMANDA_MEDIA = :ESTOQUE_DEMANDA_MEDIA,
ESTOQUE_TEMPO_RESUPRI = :ESTOQUE_TEMPO_RESUPRI,
ESTOQUE_INTERVALO_RESUPRI = :ESTOQUE_INTERVALO_RESUPRI,
COD_DESP = :COD_DESP,
COD_MARCA = :COD_MARCA,
FLG_SITE = :FLG_SITE,
FLG_BALANCA = :FLG_BALANCA,
SITE_COMPRIMENTO = :SITE_COMPRIMENTO,
SITE_LARGURA = :SITE_LARGURA,
SITE_ALTURA = :SITE_ALTURA,
SITE_DESCRICAO = :SITE_DESCRICAO,
SITE_SYNC = :SITE_SYNC,
SITE_COD = :SITE_COD,
PORC_REDBASE = :PORC_REDBASE,
PONTOS = :PONTOS ,
LOCALIZACAO21 = :LOCALIZACAO21,
LOCALIZACAO22 = :LOCALIZACAO22,
LOCALIZACAO31 = :LOCALIZACAO31,
LOCALIZACAO32 = :LOCALIZACAO32,
LOCALIZACAO41 = :LOCALIZACAO41,
LOCALIZACAO42 = :LOCALIZACAO42,
LOCALIZACAO51 = :LOCALIZACAO51,
LOCALIZACAO52 = :LOCALIZACAO52,
PORC_FCP = :PORC_FCP
where (CODIGO = :CODIGO);
if (OPERACAO = 3) then
delete from PRODUTO
where (CODIGO = :CODIGO);
suspend;
end

^

CREATE TABLE MARKETPLACE (
    CODIGO INTEGER NOT NULL,
    NOME VARCHAR(40),
    CNPJ VARCHAR(20),
    NOME_PAG VARCHAR(40),
    CNPJ_PAG VARCHAR(20))

^

ALTER TABLE MARKETPLACE
ADD CONSTRAINT PK_MARKETPLACE
PRIMARY KEY (CODIGO)

^

create or alter procedure P_MARKETPLACE (
    OPERACAO integer,
    CODIGO integer,
    NOME varchar(40),
    CNPJ varchar(20),
    NOME_PAG varchar(40),
    CNPJ_PAG varchar(20))
as
begin 
if (operacao = 1) then 
insert into MARKETPLACE (CODIGO,NOME,CNPJ,NOME_PAG,CNPJ_PAG)
values (:CODIGO,:NOME,:CNPJ,:NOME_PAG,:CNPJ_PAG);
if (operacao = 2) then
update MARKETPLACE set
NOME = :NOME,
CNPJ = :CNPJ,
NOME_PAG = :NOME_PAG,
CNPJ_PAG = :CNPJ_PAG
where (CODIGO = :CODIGO);
if (operacao = 3) then
delete from MARKETPLACE
where (CODIGO = :CODIGO);
suspend; 
end

^

CREATE trigger trg_marketplace for marketplace
active before insert position 0
AS 
declare variable cod integer; 
begin   
select max(CODIGO) from MARKETPLACE into :cod;
if (cod is null) then cod = 0; 
new.codigo = cod + 1;
end

^

ALTER TABLE MOVTO
    ADD CODMARKET INTEGER

^	
	
CREATE OR ALTER procedure P_MOVTO (
    OPERACAO integer,
    CODIGO integer,
    FLG_CODMOV integer,
    DATA date,
    NOTA_FISCAL integer,
    SERIE integer,
    CUPOM_FISCAL integer,
    NRO_ECF integer,
    DATA_SAIDA date,
    COD_CLI integer,
    COD_FOR integer,
    COD_FUNC integer,
    COD_TRIB integer,
    COD_END_CLI integer,
    VLR_DESC numeric(15,2),
    VLR_ACRES numeric(15,2),
    VLR_FRETE numeric(15,2),
    PORC_FRETE numeric(15,3),
    VLR_TOTAL numeric(15,2),
    TOTAL_NF numeric(15,2),
    TIPO_RECEB integer,
    OBSERV1 varchar(200),
    OBSERV2 varchar(100),
    OBSERV3 varchar(100),
    TRANS_NOME varchar(60),
    TRANS_END varchar(60),
    TRANS_CIDADE varchar(60),
    TRANS_CIDADEUF varchar(2),
    TRANS_PLACA varchar(10),
    TRANS_PLACAUF varchar(2),
    TRANS_FRETE integer,
    TRANS_CNPJ_CPF varchar(20),
    TRANS_IE_RG varchar(20),
    CODREC_DEVOLUCAO integer,
    COD_CAIXA integer,
    FLG_CANCEL char(1),
    MOTIVO_CANCEL varchar(60),
    NF_DATA date,
    NF_DATA_SAIDA date,
    NF_HORA time,
    NF_CPF varchar(20),
    PLACA varchar(10),
    DATA_ENTREGA date,
    FLG_ABERTO char(1),
    VLR_DINH numeric(15,2),
    VLR_CHVISTA numeric(15,2),
    VLR_CHPRE numeric(15,2),
    VLR_CARTAO numeric(15,2),
    NFE_NRO integer,
    NFE_STATUS varchar(60),
    NFE_CAMINHO varchar(60),
    NFE_CHAVE varchar(60),
    NFE_OBSERV varchar(60),
    VLR_DEBITO numeric(15,2),
    VLR_PRAZO numeric(15,2),
    VLR_OUTROS numeric(15,2),
    COD_EMPRESA integer,
    NOME_VEICULO varchar(200),
    VOL_QUANT varchar(20),
    VOL_ESPECIE varchar(20),
    VOL_MARCA varchar(20),
    VOL_NRO varchar(20),
    VOL_BRUTO varchar(20),
    VOL_LIQUIDO varchar(20),
    NFE_REF1 varchar(60),
    NFE_REF2 varchar(60),
    NFE_REF3 varchar(60),
    COD_MAO_OBRA integer,
    SAT_NRO integer,
    SAT_STATUS varchar(20),
    SAT_CAMINHO varchar(60),
    SAT_CHAVE varchar(60),
    DT_COMISSAO date,
    NF_NOME varchar(60),
    COD_CONVENIO integer,
    COD_MESA integer,
    COD_PARCELA integer,
    FLG_PRECO char(1),
    LOCAL_DESEMB varchar(200),
    UF_DESEMB varchar(2),
    NRO_DI varchar(20),
    DT_DI date,
    COD_EXPORT integer,
    COD_FABRIC integer,
    TP_TRANS integer,
    NFE_REF4 varchar(60),
    VLR_IMPORT numeric(15,2),
    OBS_ADICIONAL varchar(3000),
    FLG_PROCEDE char(1),
    ROMANEIO_NRO integer,
    ROMANEIO_DATA date,
    TOKEN varchar(256),
    CODMARKET integer)
as
begin 
if (operacao = 1) then  
insert into MOVTO (CODIGO,FLG_CODMOV,DATA,NOTA_FISCAL,SERIE,CUPOM_FISCAL,NRO_ECF,DATA_SAIDA,COD_CLI,COD_FOR,COD_FUNC,COD_TRIB,COD_END_CLI,VLR_DESC,VLR_ACRES,VLR_FRETE,PORC_FRETE, 
VLR_TOTAL,TOTAL_NF,TIPO_RECEB,OBSERV1,OBSERV2,OBSERV3,TRANS_NOME,TRANS_END,TRANS_CIDADE,TRANS_CIDADEUF,TRANS_PLACA,TRANS_PLACAUF,TRANS_FRETE,TRANS_CNPJ_CPF,TRANS_IE_RG,CODREC_DEVOLUCAO,
COD_CAIXA,FLG_CANCEL,MOTIVO_CANCEL,NF_DATA,NF_DATA_SAIDA,NF_HORA,NF_CPF,PLACA,DATA_ENTREGA,FLG_ABERTO,VLR_DINH,VLR_CHVISTA,VLR_CHPRE,VLR_CARTAO,NFE_NRO,NFE_STATUS,NFE_CAMINHO, 
NFE_CHAVE,NFE_OBSERV,VLR_DEBITO,VLR_PRAZO,VLR_OUTROS,COD_EMPRESA,NOME_VEICULO,VOL_QUANT,VOL_ESPECIE,VOL_MARCA,VOL_NRO,VOL_BRUTO,VOL_LIQUIDO,NFE_REF1,NFE_REF2,NFE_REF3,COD_MAO_OBRA,SAT_NRO,SAT_STATUS,SAT_CAMINHO,SAT_CHAVE, 
DT_COMISSAO,NF_NOME,COD_CONVENIO,COD_MESA,COD_PARCELA,FLG_PRECO,LOCAL_DESEMB,UF_DESEMB,NRO_DI,DT_DI,COD_EXPORT,COD_FABRIC,TP_TRANS,NFE_REF4,VLR_IMPORT,OBS_ADICIONAL,FLG_PROCEDE,ROMANEIO_NRO,ROMANEIO_DATA,TOKEN, CODMARKET)
values (:CODIGO,:FLG_CODMOV,:DATA,:NOTA_FISCAL,:SERIE,:CUPOM_FISCAL,:NRO_ECF,:DATA_SAIDA,:COD_CLI,:COD_FOR,:COD_FUNC,:COD_TRIB,:COD_END_CLI,:VLR_DESC,:VLR_ACRES,:VLR_FRETE, 
:PORC_FRETE,:VLR_TOTAL,:TOTAL_NF,:TIPO_RECEB,:OBSERV1,:OBSERV2,:OBSERV3,:TRANS_NOME,:TRANS_END,:TRANS_CIDADE,:TRANS_CIDADEUF,:TRANS_PLACA,:TRANS_PLACAUF,:TRANS_FRETE, 
:TRANS_CNPJ_CPF,:TRANS_IE_RG,:CODREC_DEVOLUCAO,:COD_CAIXA,:FLG_CANCEL,:MOTIVO_CANCEL,:NF_DATA,:NF_DATA_SAIDA,:NF_HORA,:NF_CPF,:PLACA,:DATA_ENTREGA,:FLG_ABERTO, 
:VLR_DINH,:VLR_CHVISTA,:VLR_CHPRE,:VLR_CARTAO,:NFE_NRO,:NFE_STATUS,:NFE_CAMINHO,:NFE_CHAVE,:NFE_OBSERV,:VLR_DEBITO,:VLR_PRAZO,:VLR_OUTROS,:COD_EMPRESA,:NOME_VEICULO, 
:VOL_QUANT,:VOL_ESPECIE,:VOL_MARCA,:VOL_NRO,:VOL_BRUTO,:VOL_LIQUIDO,:NFE_REF1,:NFE_REF2,:NFE_REF3,:COD_MAO_OBRA,:SAT_NRO,:SAT_STATUS,:SAT_CAMINHO,:SAT_CHAVE,:DT_COMISSAO,:NF_NOME,:COD_CONVENIO,:COD_MESA,:COD_PARCELA,:FLG_PRECO,  
:LOCAL_DESEMB,:UF_DESEMB,:NRO_DI,:DT_DI,:COD_EXPORT,:COD_FABRIC,:TP_TRANS,:NFE_REF4,:VLR_IMPORT,:OBS_ADICIONAL,:FLG_PROCEDE,:ROMANEIO_NRO,:ROMANEIO_DATA,:TOKEN,:CODMARKET);
if (operacao = 2) then  
update MOVTO set  
FLG_CODMOV = :FLG_CODMOV,  
DATA = :DATA, 
NOTA_FISCAL = :NOTA_FISCAL, 
SERIE = :SERIE,   
CUPOM_FISCAL = :CUPOM_FISCAL, 
NRO_ECF = :NRO_ECF, 
DATA_SAIDA = :DATA_SAIDA, 
COD_CLI = :COD_CLI,
COD_FOR = :COD_FOR, 
COD_FUNC = :COD_FUNC,  
COD_TRIB = :COD_TRIB, 
COD_END_CLI = :COD_END_CLI, 
VLR_DESC = :VLR_DESC,  
VLR_ACRES = :VLR_ACRES, 
VLR_FRETE = :VLR_FRETE, 
PORC_FRETE = :PORC_FRETE, 
VLR_TOTAL = :VLR_TOTAL, 
TOTAL_NF = :TOTAL_NF, 
TIPO_RECEB = :TIPO_RECEB, 
OBSERV1 = :OBSERV1, 
OBSERV2 = :OBSERV2,
OBSERV3 = :OBSERV3, 
TRANS_NOME = :TRANS_NOME, 
TRANS_END = :TRANS_END, 
TRANS_CIDADE = :TRANS_CIDADE, 
TRANS_CIDADEUF = :TRANS_CIDADEUF, 
TRANS_PLACA = :TRANS_PLACA,
TRANS_PLACAUF = :TRANS_PLACAUF,  
TRANS_FRETE = :TRANS_FRETE, 
TRANS_CNPJ_CPF = :TRANS_CNPJ_CPF, 
TRANS_IE_RG = :TRANS_IE_RG,
CODREC_DEVOLUCAO = :CODREC_DEVOLUCAO,
COD_CAIXA = :COD_CAIXA, 
FLG_CANCEL = :FLG_CANCEL,
MOTIVO_CANCEL = :MOTIVO_CANCEL,
NF_DATA = :NF_DATA, 
NF_DATA_SAIDA = :NF_DATA_SAIDA,
NF_HORA = :NF_HORA, 
NF_CPF = :NF_CPF,  
PLACA = :PLACA,
DATA_ENTREGA = :DATA_ENTREGA, 
FLG_ABERTO = :FLG_ABERTO, 
VLR_DINH = :VLR_DINH,
VLR_CHVISTA = :VLR_CHVISTA, 
VLR_CHPRE = :VLR_CHPRE,  
VLR_CARTAO = :VLR_CARTAO, 
NFE_NRO = :NFE_NRO, 
NFE_STATUS = :NFE_STATUS, 
NFE_CAMINHO = :NFE_CAMINHO,
NFE_CHAVE = :NFE_CHAVE,
NFE_OBSERV = :NFE_OBSERV,
VLR_DEBITO = :VLR_DEBITO, 
VLR_PRAZO = :VLR_PRAZO,
VLR_OUTROS = :VLR_OUTROS, 
COD_EMPRESA = :COD_EMPRESA,
NOME_VEICULO = :NOME_VEICULO,
VOL_QUANT = :VOL_QUANT, 
VOL_ESPECIE = :VOL_ESPECIE, 
VOL_MARCA = :VOL_MARCA, 
VOL_NRO = :VOL_NRO, 
VOL_BRUTO = :VOL_BRUTO, 
VOL_LIQUIDO = :VOL_LIQUIDO,
NFE_REF1 = :NFE_REF1,
NFE_REF2 = :NFE_REF2,
NFE_REF3 = :NFE_REF3, 
COD_MAO_OBRA = :COD_MAO_OBRA, 
SAT_NRO = :SAT_NRO,
SAT_STATUS = :SAT_STATUS,
SAT_CAMINHO = :SAT_CAMINHO,
SAT_CHAVE = :SAT_CHAVE, 
DT_COMISSAO = :DT_COMISSAO, 
NF_NOME = :NF_NOME, 
COD_CONVENIO = :COD_CONVENIO, 
COD_MESA = :COD_MESA,
COD_PARCELA = :COD_PARCELA, 
FLG_PRECO = :FLG_PRECO, 
LOCAL_DESEMB  = :LOCAL_DESEMB,
UF_DESEMB = :UF_DESEMB,
NRO_DI = :NRO_DI, 
DT_DI = :DT_DI, 
COD_EXPORT = :COD_EXPORT, 
COD_FABRIC = :COD_FABRIC,
TP_TRANS = :TP_TRANS, 
NFE_REF4 = :NFE_REF4,
VLR_IMPORT = :VLR_IMPORT, 
OBS_ADICIONAL = :OBS_ADICIONAL,
FLG_PROCEDE = :FLG_PROCEDE,
ROMANEIO_NRO = :ROMANEIO_NRO, 
ROMANEIO_DATA = :ROMANEIO_DATA,
TOKEN = :TOKEN,
CODMARKET = :CODMARKET
where (CODIGO = :CODIGO); 
if (operacao = 3) then  
delete from MOVTO 
where (CODIGO = :CODIGO); 
suspend; 
end
^
============================================================
     ATUALIZABANCO VAI AT  AQUI - 29 DE ABRIL DE 2022 - (1.0.0.27)
============================================================

ALTER TABLE PAGAR
    ADD CRED_DEB CHAR(1) CHARACTER SET NONE NOT NULL
^

update pagar set cred_deb = 'D' where saldo > 0

^

create or alter procedure P_PAGAR (
    OPERACAO integer,
    CODIGO integer,
    PARCELA integer,
    CODMOV integer,
    COD_FOR integer,
    DT_COMPRA date,
    DT_VENCTO date,
    VLR_PARC numeric(15,2),
    VLR_ACRES numeric(15,2),
    VLR_DESC numeric(15,2),
    SALDO numeric(15,2),
    HISTORICO varchar(100),
    DOCUMENTO integer,
    SERIE varchar(3),
    COD_BANCO integer,
    COD_CAIXA integer,
    COD_DESP integer,
    COD_EMPRESA integer,
    CRED_DEB char(1))
as
begin
  IF (OPERACAO = 1) THEN
    INSERT INTO PAGAR (CODIGO,PARCELA,CODMOV,COD_FOR,DT_COMPRA,DT_VENCTO,VLR_PARC,VLR_ACRES,VLR_DESC,SALDO,HISTORICO,DOCUMENTO,SERIE,COD_BANCO,COD_CAIXA,COD_DESP,COD_EMPRESA,CRED_DEB)
    VALUES (:CODIGO,:PARCELA,:CODMOV,:COD_FOR,:DT_COMPRA,:DT_VENCTO,:VLR_PARC,:VLR_ACRES,:VLR_DESC,:SALDO,:HISTORICO,:DOCUMENTO,:SERIE,:COD_BANCO,:COD_CAIXA,:COD_DESP,:COD_EMPRESA,:CRED_DEB);

  IF (OPERACAO = 2) THEN
    UPDATE PAGAR SET
    PARCELA = :PARCELA,
    CODMOV = :CODMOV,
    COD_FOR = :COD_FOR,
    DT_COMPRA = :DT_COMPRA,
    DT_VENCTO = :DT_VENCTO,
    VLR_PARC = :VLR_PARC,
    VLR_ACRES = :VLR_ACRES,
    VLR_DESC = :VLR_DESC,
    SALDO = :SALDO,
    HISTORICO = :HISTORICO,
    DOCUMENTO = :DOCUMENTO,
    SERIE = :SERIE,
    COD_BANCO = :COD_BANCO,
    COD_CAIXA = :COD_CAIXA,
    COD_DESP = :COD_DESP,
    COD_EMPRESA = :COD_EMPRESA,
    CRED_DEB =: CRED_DEB
    WHERE (CODIGO = :CODIGO);

  IF (OPERACAO = 3) THEN
    DELETE FROM PAGAR
    WHERE (CODIGO = :CODIGO);

  suspend;
end

^

ALTER TABLE PAG_PAGAR
    ADD CRED_DEB CHAR(1) CHARACTER SET NONE NOT NULL
^

update pag_pagar set cred_deb = 'C'

^


create or alter procedure P_PAGPAGAR (
    OPERACAO integer,
    CODPAG integer,
    ORDEM integer,
    VLR_ACRES numeric(15,2),
    VLR_DESC numeric(15,2),
    VLR_PAGTO numeric(15,2),
    DT_PAGTO date,
    COD_FUNC integer,
    COD_CAIXA_PAGTO integer,
    HISTORICO varchar(100),
    VLR_DINH numeric(15,2),
    VLR_CHVISTA numeric(15,2),
    VLR_CHPRE numeric(15,2),
    VLR_CARTAO numeric(15,2),
    COD_EMPRESA integer,
    TIPO_RECEB integer,
    VLR_PIX numeric(15,2),
    CRED_DEB char(1))
as
begin  
IF (OPERACAO = 1) THEN  
INSERT INTO PAG_PAGAR (CODPAG,ORDEM,VLR_ACRES,VLR_DESC,VLR_PAGTO,DT_PAGTO,COD_FUNC,COD_CAIXA_PAGTO,HISTORICO,VLR_DINH,VLR_CHVISTA,VLR_CHPRE,VLR_CARTAO,COD_EMPRESA,TIPO_RECEB,VLR_PIX,CRED_DEB)  
VALUES (:CODPAG,:ORDEM,:VLR_ACRES,:VLR_DESC,:VLR_PAGTO,:DT_PAGTO,:COD_FUNC,:COD_CAIXA_PAGTO,:HISTORICO,:VLR_DINH,:VLR_CHVISTA,:VLR_CHPRE,:VLR_CARTAO,:COD_EMPRESA,:TIPO_RECEB,:VLR_PIX,:CRED_DEB); 
IF (OPERACAO = 2) THEN 
UPDATE PAG_PAGAR SET 
ORDEM = :ORDEM,  
VLR_ACRES = :VLR_ACRES, 
VLR_DESC = :VLR_DESC,  
VLR_PAGTO = :VLR_PAGTO, 
DT_PAGTO = :DT_PAGTO,  
COD_FUNC = :COD_FUNC, 
COD_CAIXA_PAGTO = :COD_CAIXA_PAGTO, 
HISTORICO = :HISTORICO, 
VLR_DINH = :VLR_DINH, 
VLR_CHVISTA = :VLR_CHVISTA, 
VLR_CHPRE = :VLR_CHPRE,
VLR_CARTAO = :VLR_CARTAO, 
COD_EMPRESA = :COD_EMPRESA, 
TIPO_RECEB = :TIPO_RECEB,
VLR_PIX = :VLR_PIX,
CRED_DEB = :CRED_DEB  
WHERE (CODPAG = :CODPAG) 
AND (ORDEM = :ORDEM); 
IF (OPERACAO = 3) THEN 
DELETE FROM PAG_PAGAR 
WHERE (CODPAG = :CODPAG)
AND (ORDEM = :ORDEM);
suspend; 
end
^

============================================================
     ATUALIZABANCO VAI AT  AQUI - 27 DE JUNHO DE 2022 - (1.0.0.28)
============================================================


ALTER TABLE FINANC_MOVTO
    ADD COD_EMPRESA INTEGER

^

ALTER TABLE FINANC_MOVTO
ADD CONSTRAINT FK_FINANC_MOVTO_7
FOREIGN KEY (COD_EMPRESA)
REFERENCES EMPRESA(CODIGO)

^

CREATE OR ALTER procedure P_FINANC_MOVTO (
    OPERACAO integer,
    COD_CONTA integer,
    CODIGO integer,
    DATA date,
    FLG_E_S char(1),
    VALOR numeric(15,2),
    COD_CCUSTO integer,
    NRO_CHEQUE integer,
    HISTORICO varchar(60),
    COD_CONTA_MOVTO integer,
    COD_MOVTO integer,
    DATA_VENCTO date,
    DATA_PAGTO date,
    COD_CHEQUE integer,
    COD_CARTAO integer,
    COD_REC integer,
    COD_PAG integer,
    COD_ORDEM integer,
    COD_CAIXA integer,
    COD_MOV integer,
    COD_EMPRESA integer)
as
begin 
IF (OPERACAO = 1) THEN 
INSERT INTO FINANC_MOVTO 
VALUES(:COD_CONTA,:CODIGO,:DATA,:FLG_E_S,:VALOR,:COD_CCUSTO,:NRO_CHEQUE,:HISTORICO,:COD_CONTA_MOVTO,:COD_MOVTO,:DATA_VENCTO,:DATA_PAGTO,:COD_CHEQUE,:COD_CARTAO,:COD_REC,:COD_PAG,:COD_ORDEM,:COD_CAIXA,:COD_MOV,:COD_EMPRESA);
IF (OPERACAO = 2) THEN 
UPDATE FINANC_MOVTO SET
DATA = :DATA,
FLG_E_S = :FLG_E_S,
VALOR = :VALOR,
COD_CCUSTO = :COD_CCUSTO,
NRO_CHEQUE = :NRO_CHEQUE,
HISTORICO = :HISTORICO,
COD_CONTA_MOVTO = :COD_CONTA_MOVTO,
COD_MOVTO = :COD_MOVTO,
DATA_VENCTO = :DATA_VENCTO,
DATA_PAGTO = :DATA_PAGTO,
COD_CHEQUE = :COD_CHEQUE,
COD_CARTAO = :COD_CARTAO,
COD_REC = :COD_REC, 
COD_PAG = :COD_PAG,
COD_ORDEM = :COD_ORDEM,
COD_CAIXA = :COD_CAIXA,
COD_MOV = :COD_MOV,
COD_EMPRESA = :COD_EMPRESA
WHERE (COD_CONTA = :COD_CONTA)
AND (CODIGO = :CODIGO);
IF (OPERACAO = 3) THEN 
DELETE FROM FINANC_MOVTO
WHERE (COD_CONTA = :COD_CONTA)
AND (CODIGO = :CODIGO);
suspend;
end

^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','FINALIZACAO DE VENDA','SAIDAS','OUTRO_CLI','PERMITE INFORMAR CONTAS A RECEBER PARA DIVERSOS CLIENTES','NAO','SIM;NAO','N')

^

update RDB$FIELDS set
RDB$FIELD_LENGTH = 200,
RDB$CHARACTER_LENGTH = 200
where RDB$FIELD_NAME = 'RDB$6443'

^

update RDB$FIELDS set
RDB$FIELD_LENGTH = 200,
RDB$CHARACTER_LENGTH = 200
where RDB$FIELD_NAME = 'RDB$6416'

^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','VENDAS','SAIDAS','ETIQUETA','LAYOUT PARA ETIQUETA DE BALANCA','NULL','NULL;2[CCCCCC]VVVVVX;200[CCCC]VVVVVX;2[CCCCC]0VVVVVX;2[CCCC]00VVVVVX;2[CCCCCC]PPPPPX;200[CCCC]PPPPPX;2[CCCCC]0PPPPPX;2[CCCC]00PPPPPX','N')

^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0000','CONSOLIDACAO','SAIDAS','FLG_TELA','TELA DE CONSOLIDACAO A SER USADA','SG_0045','SG_0045;SG_0059','S')

^

update configuracao set valor = 'SG_0059'
where (campo = 'FLG_TELA') and (cod_tela = 'SG_0000')
and exists (select codigo from empresa where ((nivel = 10) or (nivel = 13) or (nivel = 26) or (nivel = 32) 
or (nivel = 63) or (nivel = 74) or (nivel = 90) or (nivel = 91) or (nivel = 134) or (nivel = 142) or (nivel = 156)))

^

ALTER TABLE PAG_REC ALTER COLUMN DT_CADASTRO
SET DEFAULT current_timestamp

^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0098','ENVIO DE XML','UTILITARIOS','DOACAO','PERMITIR DOACAO DE SAT','SIM','SIM;NAO','N')

^

CREATE DESCENDING INDEX MOVTO_IDX5 ON MOVTO (DATA)

^

CREATE INDEX MOVTO_IDX1 ON MOVTO (DATA)

^

CREATE INDEX MOVTO_IDX6 ON MOVTO (NOTA_FISCAL)

^

CREATE DESCENDING INDEX MOVTO_IDX7 ON MOVTO (NOTA_FISCAL)

^

CREATE INDEX MOVTO_IDX8 ON MOVTO (SAT_NRO)

^

CREATE DESCENDING INDEX MOVTO_IDX9 ON MOVTO (SAT_NRO)

^

CREATE INDEX CLIENTE_IDX1 ON CLIENTE (NOME)

^

CREATE INDEX CLIENTE_IDX1 ON CLIENTE (NOME)

^

CREATE INDEX CLIENTE_IDX2 ON CLIENTE (FANTASIA)

^

CREATE INDEX FORNECEDOR_IDX1 ON FORNECEDOR (NOME)

^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0011','BAIXA','CONTAS A RECEBER','EXTRATO','UTILIZAR NOVO EXTRATO DE PAGAMENTO','NAO','SIM;NAO','N')

^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','IMPRESSAO VENDA','SAIDAS','EXTRATO','UTILIZAR NOVO EXTRATO DE VENDA','NAO','SIM;NAO','N')

^

update configuracao set valor = 'SIM'
where (campo = 'EXTRATO') and (cod_tela = 'VENDA')
and exists (select codigo from empresa where ((nivel = 11) or (nivel = 25) or (nivel = 28) or (nivel = 29) or (nivel = 30) 
or (nivel = 36) or (nivel = 45) or (nivel = 47)  or (nivel = 106) or (nivel = 113) or (nivel = 146) or (nivel = 154) or (nivel = 157) 
or (cnpj = '15.141.668/0001-26') or (cnpj = '30.115.259/0001-49')))
^
============================================================
     ATUALIZABANCO VAI AT  AQUI - 26 DE JULHO DE 2022 - (1.0.0.29)
============================================================

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0000','CONFIGURACOES','PRINCIPAL','WIN_PTBR','USAR PESQUISA COM COLLATE','SIM','SIM;NAO','S')

^

CREATE OR ALTER trigger trg_financ_movto for financ_movto
active after insert position 0
AS
declare variable cod_transf_e integer;
begin
select a.cod_ccusto from despesa a 
where (a.flg_tipo = 'E') and (a.flg_ativado = 'S') and (a.flg_transf = 'S') 
into :cod_transf_e; 
if (new.flg_e_s = 'S') then  
update financ_saldo s set 
s.vl_saida_lanc    = s.vl_saida_lanc    + new.valor, 
s.saldo_atual_lanc = s.saldo_atual_lanc - new.valor 
where (s.cod_conta = new.cod_conta); 
if ((new.flg_e_s = 'S') and (new.data_pagto is not null)) then 
update financ_saldo s set 
s.vl_saida_conc    = s.vl_saida_conc    + new.valor, 
s.saldo_atual_conc = s.saldo_atual_conc - new.valor 
where (s.cod_conta = new.cod_conta);  
if (new.flg_e_s = 'E') then 
update financ_saldo s set 
s.vl_entrada_lanc  = s.vl_entrada_lanc  + new.valor,
s.saldo_atual_lanc = s.saldo_atual_lanc + new.valor 
where (s.cod_conta = new.cod_conta);
if ((new.flg_e_s = 'E') and (new.data_pagto is not null)) then 
update financ_saldo s set  
s.vl_entrada_conc  = s.vl_entrada_conc  + new.valor, 
s.saldo_atual_conc = s.saldo_atual_conc + new.valor  
where (s.cod_conta = new.cod_conta); 
if ((new.flg_e_s = 'S') and (new.cod_conta_movto is not null)) then 
insert into financ_movto  
values(new.COD_CONTA_movto,0,new.DATA,'E',new.VALOR,new.COD_CCUSTO,new.NRO_CHEQUE,new.HISTORICO,new.COD_CONTA,new.CODIGO,new.DATA_VENCTO,new.DATA_PAGTO,new.COD_CHEQUE,new.COD_CARTAO,new.COD_REC,new.COD_PAG,new.COD_ORDEM,new.COD_CAIXA,new.COD_MOV,new.COD_EMPRESA);
end

^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','RELATORIO DE VENDA','SAIDAS','FLG_DRE','TIPO DE FILTRO A SER USADO','PAGAR','PAGAR;FINANCEIRO','N')

^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('PRODUTO','PRODUTOS','CADASTROS','PESQ_UM','PESQUISA APENAS UM PRODUTO POR VEZ','NAO','SIM;NAO','S')

^

update configuracao set valor = 'SIM'
where (campo = 'PESQ_UM') and (cod_tela = 'PRODUTO')
and exists (select codigo from empresa where ((nivel = 2) or (nivel = 10) or (nivel = 23) or (nivel = 34) or (nivel = 39) or (nivel = 51) 
or (nivel = 53) or (nivel = 58) or (nivel = 68) or (nivel = 81) or (nivel = 90) or (nivel = 91) or (nivel = 92) or (nivel = 93)  
or (nivel = 98) or (nivel = 99) or (nivel = 101) or (nivel = 102) or (nivel = 106) or (nivel = 108) or (nivel = 111) or (nivel = 112)
or (nivel = 118) or (nivel = 119) or (nivel = 136) or (nivel = 156)))

^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('PRODUTO','PRODUTOS','CADASTROS','DENSIDADE','DENSIDADE DA ETIQUETA','7','1;2;3;4;5;6;7;8;9;10;11;12;13;14;15','N')

^

CREATE TABLE HORAS_TRABALHO (
    CODIGO INTEGER NOT NULL,
    COD_CLI INTEGER NOT NULL,
    HR_INICIO TIME NOT NULL,
    HR_FIM TIME NOT NULL,
    HR_ALMOCO TIME NOT NULL,
    PRECO_HORA NUMERIC(15,2) NOT NULL,
    VLR_TOTAL NUMERIC(15,2) NOT NULL,
    HORAS_TOTAL TIME NOT NULL,
    OBSERVACAO VARCHAR(60),
    DATA DATE NOT NULL,
    DATA_CADASTRO DATE DEFAULT current_timestamp NOT NULL)

^

ALTER TABLE HORAS_TRABALHO
ADD CONSTRAINT PK_HORAS_TRABALHO
PRIMARY KEY (CODIGO)

^

ALTER TABLE HORAS_TRABALHO
ADD CONSTRAINT FK_HORAS_TRABALHO_1
FOREIGN KEY (COD_CLI)
REFERENCES CLIENTE(CODIGO)
ON DELETE CASCADE

^

create or alter procedure P_HORAS_TRABALHO(
    OPERACAO INTEGER,
    CODIGO INTEGER,
    COD_CLI INTEGER,
    HR_INICIO TIME,
    HR_FIM TIME,
    HR_ALMOCO TIME,
    PRECO_HORA NUMERIC(15,2),
    VLR_TOTAL NUMERIC(15,2),
    HORAS_TOTAL TIME,
    OBSERVACAO VARCHAR(60),
    DATA DATE,
    DATA_CADASTRO DATE)
as
begin
  if (operacao = 1) then
     insert into HORAS_TRABALHO (CODIGO,COD_CLI,HR_INICIO,HR_FIM,HR_ALMOCO,PRECO_HORA,VLR_TOTAL,HORAS_TOTAL,OBSERVACAO,DATA,DATA_CADASTRO)
     values (:CODIGO,:COD_CLI,:HR_INICIO,:HR_FIM,:HR_ALMOCO,:PRECO_HORA,:VLR_TOTAL,:HORAS_TOTAL,:OBSERVACAO,:DATA,:DATA_CADASTRO);

  if (operacao = 2) then
     update HORAS_TRABALHO set
     COD_CLI = :COD_CLI,
     HR_INICIO = :HR_INICIO,
     HR_FIM = :HR_FIM,
     HR_ALMOCO = :HR_ALMOCO,
     PRECO_HORA = :PRECO_HORA,
     VLR_TOTAL = :VLR_TOTAL,
     HORAS_TOTAL = :HORAS_TOTAL,
     OBSERVACAO = :OBSERVACAO,
     DATA = :DATA,
     DATA_CADASTRO = :DATA_CADASTRO
     where (CODIGO = :CODIGO);

  if (operacao = 3) then
     delete from HORAS_TRABALHO
     where (CODIGO = :CODIGO);

  suspend;
end

^

CREATE OR ALTER TRIGGER TRG_HORAS_TRABALHO FOR HORAS_TRABALHO
ACTIVE BEFORE INSERT POSITION 0
AS
DECLARE VARIABLE COD INTEGER;
begin
   SELECT MAX(CODIGO) FROM HORAS_TRABALHO
   INTO :COD;

  IF (COD IS NULL) THEN COD = 0;

  NEW.CODIGO = COD + 1;
end

^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','VENDAS','SAIDAS','FLG_ABERTO','BLOQUEAR VENDA ABERTA EM OUTRO TERMINAL','SIM','SIM;NAO','N')

^

update configuracao set valor = 'NAO'
where (campo = 'FLG_ABERTO') and (cod_tela = 'VENDA')
and exists (select codigo from empresa where ((nivel = 4) or (nivel = 34) or (nivel = 59) or (nivel = 114)))

^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','IMPRESSAO VENDA','SAIDAS','FLG_LINHA','QUANTIDADE DE LINHAS DO ITEM','1','1;2','N')

^

ALTER TABLE PARAMETROS
    ADD FLG_UPDATE CHAR(1)

^

update parametros set flg_update = 'N'
^
=================================================================
 ATUALIZABANCO VAI AT  AQUI - 13 DE OUTUBRO DE 2022 - (1.0.0.30)
=================================================================

CREATE TABLE MOVIT_TOKEN (
    CODIGO INTEGER NOT NULL,
    CODMOV INTEGER NOT NULL,
    ITEM INTEGER NOT NULL,
    TOKEN VARCHAR(200) NOT NULL,
    DATA_CADASTRO TIMESTAMP DEFAULT current_timestamp NOT NULL)

^

ALTER TABLE MOVIT_TOKEN
ADD CONSTRAINT PK_MOVIT_TOKEN
PRIMARY KEY (CODIGO)

^

ALTER TABLE MOVIT_TOKEN
ADD CONSTRAINT UNQ1_MOVIT_TOKEN
UNIQUE (TOKEN)

^

CREATE trigger trg_movit_token for movit_token
active before insert position 0
AS
declare variable cod integer;
begin
 select max(CODIGO) from MOVIT_TOKEN into :cod;
if (cod is null) then cod = 0;
new.codigo = cod + 1;
end

^

ALTER TABLE PARAMETROS
    ADD CAMINHO_EXE VARCHAR(100)

^
CREATE TABLE MOVIT_EXP (
    CODIGO          INTEGER NOT NULL,
    CODMOV          INTEGER NOT NULL,
    ITEM            INTEGER NOT NULL,
    NRO_EXP         INTEGER NOT NULL,
    DATA            DATE NOT NULL,
    QUANT_BALCAO    NUMERIC(15,2),
    QUANT_ENTREGA   NUMERIC(15,2),
    QUANT_RETIRADA  NUMERIC(15,2),
    ROMANEIO_NRO    INTEGER,
    ROMANEIO_DATA   DATE,
    OBSERVACAO      VARCHAR(60)
)

^

ALTER TABLE MOVIT_EXP
ADD CONSTRAINT PK_MOVIT_EXP
PRIMARY KEY (CODIGO)
^
ALTER TABLE MOVIT_EXP ADD CONSTRAINT FK_MOVIT_EXP_1 FOREIGN KEY (CODMOV) REFERENCES MOVIT(CODMOV) ON DELETE CASCADE;
^
ALTER TABLE MOVIT_EXP
ADD CONSTRAINT FK_MOVIT_EXP_2
FOREIGN KEY (ITEM)
REFERENCES MOVIT(ITEM)
ON DELETE CASCADE

^

CREATE OR ALTER TRIGGER TRG_MOVIT_EXP FOR MOVIT_EXP
ACTIVE BEFORE INSERT POSITION 0
AS
DECLARE VARIABLE COD INTEGER;
begin
   SELECT MAX(CODIGO) FROM MOVIT_EXP
   INTO :COD;

  IF (COD IS NULL) THEN COD = 0;

  NEW.CODIGO = COD + 1;
end

^

create or alter procedure P_MOVIT_EXP (
    OPERACAO integer,
    CODIGO integer,
    CODMOV integer,
    ITEM integer,
    NRO_EXP integer,
    DATA date,
    QUANT_BALCAO numeric(15,2),
    QUANT_ENTREGA numeric(15,2),
    QUANT_RETIRADA numeric(15,2),
    ROMANEIO_NRO integer,
    ROMANEIO_DATA date,
    OBSERVACAO varchar(60))
as
begin
  if (operacao = 1) then
    insert into movit_exp (codigo,codmov,item,nro_exp,data,quant_balcao,quant_entrega,quant_retirada,romaneio_nro,romaneio_data,observacao)
    values (:codigo,:codmov,:item,:nro_exp,:data,:quant_balcao,:quant_entrega,:quant_retirada,:romaneio_nro,:romaneio_data,:observacao);

  if (operacao = 2) then
    update movit_exp set
    codmov = :codmov,
    item = :item,
    nro_exp = :nro_exp,
    data = :data,
    quant_balcao = :quant_balcao,
    quant_entrega = :quant_entrega,
    quant_retirada = :quant_retirada,
    romaneio_nro = :romaneio_nro,
    romaneio_data = :romaneio_data,
    observacao = :observacao
    where (codigo = :codigo);

  if (operacao = 3) then
    delete from movit_exp
    where (codigo = :codigo);

  suspend;
end

^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0011','BAIXA','CONTAS A RECEBER','FLG_PERDIDO','EXIBIR PARCELAS PERDIDAS NA BAIXA','NAO','SIM;NAO','N')

^

update configuracao set valor = 'SIM'
where (campo = 'FLG_PERDIDO') and (cod_tela = 'SG_0011')
and exists (select codigo from empresa where ((nivel = 8) or (nivel = 34) or (nivel = 127) or (cnpj = '24.526.940/0001-87')))


^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0118','DASHBOARD','GERENCIAL','FLG_SERIE','SERIE A SER EXIBIDA NOS GRAFICO','AMBAS','AMBAS;0;52','N')

^

update configuracao set valor = '52'
where (campo = 'FLG_SERIE') and (cod_tela = 'SG_0118')
and exists (select codigo from empresa where ((cnpj = '24.526.940/0001-87')))

^

create or alter procedure P_PAGAR (
    OPERACAO integer,
    CODIGO integer,
    PARCELA integer,
    CODMOV integer,
    COD_FOR integer,
    DT_COMPRA date,
    DT_VENCTO date,
    VLR_PARC numeric(15,2),
    VLR_ACRES numeric(15,2),
    VLR_DESC numeric(15,2),
    SALDO numeric(15,2),
    HISTORICO varchar(100),
    DOCUMENTO varchar(20),
    SERIE varchar(3),
    COD_BANCO integer,
    COD_CAIXA integer,
    COD_DESP integer,
    COD_EMPRESA integer,
    CRED_DEB char(1))
as
begin
  IF (OPERACAO = 1) THEN
    INSERT INTO PAGAR (CODIGO,PARCELA,CODMOV,COD_FOR,DT_COMPRA,DT_VENCTO,VLR_PARC,VLR_ACRES,VLR_DESC,SALDO,HISTORICO,DOCUMENTO,SERIE,COD_BANCO,COD_CAIXA,COD_DESP,COD_EMPRESA,CRED_DEB)
    VALUES (:CODIGO,:PARCELA,:CODMOV,:COD_FOR,:DT_COMPRA,:DT_VENCTO,:VLR_PARC,:VLR_ACRES,:VLR_DESC,:SALDO,:HISTORICO,:DOCUMENTO,:SERIE,:COD_BANCO,:COD_CAIXA,:COD_DESP,:COD_EMPRESA,:CRED_DEB);

  IF (OPERACAO = 2) THEN
    UPDATE PAGAR SET
    PARCELA = :PARCELA,
    CODMOV = :CODMOV,
    COD_FOR = :COD_FOR,
    DT_COMPRA = :DT_COMPRA,
    DT_VENCTO = :DT_VENCTO,
    VLR_PARC = :VLR_PARC,
    VLR_ACRES = :VLR_ACRES,
    VLR_DESC = :VLR_DESC,
    SALDO = :SALDO,
    HISTORICO = :HISTORICO,
    DOCUMENTO = :DOCUMENTO,
    SERIE = :SERIE,
    COD_BANCO = :COD_BANCO,
    COD_CAIXA = :COD_CAIXA,
    COD_DESP = :COD_DESP,
    COD_EMPRESA = :COD_EMPRESA,
    CRED_DEB =: CRED_DEB
    WHERE (CODIGO = :CODIGO);

  IF (OPERACAO = 3) THEN
    DELETE FROM PAGAR
    WHERE (CODIGO = :CODIGO);

  suspend;
end

^

update RDB$FIELDS set
RDB$FIELD_TYPE = 37,
RDB$FIELD_LENGTH = 20,
RDB$CHARACTER_LENGTH = 20,
RDB$CHARACTER_SET_ID = 0,
RDB$COLLATION_ID = 0
where RDB$FIELD_NAME = 'RDB$900'

==================================================================
 ATUALIZABANCO VAI AT  AQUI - 16 DE NOVEMBRO DE 2022 - (1.0.0.32)
==================================================================

update configuracao set valor = 'SIM'
where (campo = 'EXTRATO') and (cod_tela = 'VENDA')
and exists (select codigo from empresa where ((nivel = 9) or (nivel = 52) or (nivel = 55) 
or (nivel = 91) or (nivel = 135) or (nivel = 115) or (nivel = 153) or (nivel = 154) 
or (cnpj = '27.613.297/0001-17') or (cnpj = '46.918.568/0001-97') or (cnpj = '55.862.031/0001-43')))

^

ALTER TABLE FUNCIONARIO
ADD COD_EMPRESA INTEGER

^

ALTER TABLE FUNCIONARIO
ADD CONSTRAINT FK_FUNCIONARIO_1
FOREIGN KEY (COD_EMPRESA)
REFERENCES EMPRESA(CODIGO)

^

create or alter procedure P_FUNCIONARIO (
    OPERACAO integer,
    CODIGO integer,
    NOME varchar(60),
    APELIDO varchar(20),
    CPF varchar(20),
    RG varchar(20),
    DT_NASC date,
    ENDERECO varchar(60),
    BAIRRO varchar(60),
    COD_CID varchar(60),
    CEP varchar(10),
    FONE varchar(20),
    CELULAR varchar(20),
    E_MAIL varchar(60),
    CARGO varchar(60),
    FLG_ACESSO char(1),
    SENHA varchar(15),
    OBSERVACAO varchar(100),
    DT_ADMISSAO date,
    DT_DEMISSAO date,
    NIVEL integer,
    PORC_COMISSAO numeric(15,2),
    PORC_COMISSAO_P numeric(15,2),
    VLR_META numeric(15,2),
    OBS_ADICIONAL varchar(3000),
    COD_EMPRESA integer)
as
begin
  if (operacao = 1) then
    insert into funcionario (codigo,nome,apelido,cpf,rg,dt_nasc,endereco,bairro,cod_cid,cep,fone,celular,e_mail,cargo,flg_acesso,senha,observacao,dt_admissao,dt_demissao,nivel,porc_comissao,porc_comissao_p,vlr_meta,obs_adicional,cod_empresa)
    values (:codigo,:nome,:apelido,:cpf,:rg,:dt_nasc,:endereco,:bairro,:cod_cid,:cep,:fone,:celular,:e_mail,:cargo,:flg_acesso,:senha,:observacao,:dt_admissao,:dt_demissao,:nivel,:porc_comissao,:porc_comissao_p,:vlr_meta,:obs_adicional,:cod_empresa);

  if (operacao = 2) then
    update funcionario set
    nome = :nome,
    apelido = :apelido,
    cpf = :cpf,
    rg = :rg,
    dt_nasc = :dt_nasc,
    endereco = :endereco,
    bairro = :bairro,
    cod_cid = :cod_cid,
    cep = :cep,
    fone = :fone,
    celular = :celular,
    e_mail = :e_mail,
    cargo = :cargo,
    flg_acesso = :flg_acesso,
    senha = :senha,
    observacao = :observacao,
    dt_admissao = :dt_admissao,
    dt_demissao = :dt_demissao,
    nivel = :nivel,
    porc_comissao = :porc_comissao,
    porc_comissao_p = :porc_comissao_p,
    vlr_meta = :vlr_meta,
    obs_adicional = :obs_adicional,
    cod_empresa = :cod_empresa
    where (codigo = :codigo);

  if (operacao = 3) then
    delete from funcionario
    where (codigo = :codigo);

  suspend;
end

^

update RDB$FIELDS set
RDB$FIELD_LENGTH = 100,
RDB$CHARACTER_LENGTH = 100
where RDB$FIELD_NAME = 'RDB$6415'

^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0098','ENVIO DE XML','UTILITARIOS','EMAIL','E-MAIL PARA ENVIAR XML DE DOACAO','','','N')

^

update configuracao a set a.valor = 'contato@notadobem.com.br'
where (a.campo = 'EMAIL') and (a.cod_tela = 'SG_0098')
and exists (select b.cod_tela from configuracao b where (b.campo = 'DOACAO') and (b.cod_tela = 'SG_0098') and (b.valor = 'SIM'))

^
==================================================================
 ATUALIZABANCO VAI ATÉ AQUI - 16 DE DEZEMBRO DE 2022 - (1.0.0.33)
==================================================================
^

ALTER TABLE MIT_PRODUCAO
    ADD NOME_FOR VARCHAR(60)

^

CREATE OR ALTER procedure P_MIT_PRODUCAO (
    OPERACAO integer,
    CODMOV integer,
    ITEM integer,
    COD_MAT integer,
    QUANT_AUSAR numeric(15,3),
    QUANT_USADA numeric(15,3),
    PR_CUSTO numeric(15,2),
    NOME_FOR varchar(60))
as
begin
  if (operacao = 1) then
     insert into MIT_PRODUCAO (CODMOV,ITEM,COD_MAT,QUANT_AUSAR,QUANT_USADA,PR_CUSTO,NOME_FOR)
     values (:CODMOV,:ITEM,:COD_MAT,:QUANT_AUSAR,:QUANT_USADA,:PR_CUSTO,:NOME_FOR);

  if (operacao = 2) then
     update MIT_PRODUCAO set
     COD_MAT = :COD_MAT,
     QUANT_AUSAR = :QUANT_AUSAR,
     QUANT_USADA = :QUANT_USADA,
     PR_CUSTO = :PR_CUSTO,
     NOME_FOR = :NOME_FOR
     where (CODMOV = :CODMOV)
     and (ITEM = :ITEM);

  if (operacao = 3) then
     delete from MIT_PRODUCAO
     where (CODMOV = :CODMOV)
     and (ITEM = :ITEM);

  suspend;
end

^

update mit_producao a set a.nome_for = 
(select c.nome from produto b, fornecedor c
where b.cod_fornecedor = c.codigo
and a.cod_mat = b.codigo)

^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0115','ORDEM PRODUCAO','ESTOQUE','FLG_LOTE','PERMITE CRIACAO DE LOTE','NAO','SIM;NAO','N')

^

ALTER TABLE MIT_PRODUCAO
    ADD COD_LOTE INTEGER

^

ALTER TABLE MIT_PRODUCAO
ADD CONSTRAINT FK_MIT_PRODUCAO_2
FOREIGN KEY (COD_LOTE)
REFERENCES PROD_LOTE(CODIGO)
ON DELETE CASCADE

^

CREATE OR ALTER procedure P_MIT_PRODUCAO (
    OPERACAO integer,
    CODMOV integer,
    ITEM integer,
    COD_MAT integer,
    QUANT_AUSAR numeric(15,3),
    QUANT_USADA numeric(15,3),
    PR_CUSTO numeric(15,2),
    NOME_FOR varchar(60),
    COD_LOTE integer)
as
begin
  if (operacao = 1) then
     insert into MIT_PRODUCAO (CODMOV,ITEM,COD_MAT,QUANT_AUSAR,QUANT_USADA,PR_CUSTO,NOME_FOR,COD_LOTE)
     values (:CODMOV,:ITEM,:COD_MAT,:QUANT_AUSAR,:QUANT_USADA,:PR_CUSTO,:NOME_FOR,:COD_LOTE);

  if (operacao = 2) then
     update MIT_PRODUCAO set
     COD_MAT = :COD_MAT,
     QUANT_AUSAR = :QUANT_AUSAR,
     QUANT_USADA = :QUANT_USADA,
     PR_CUSTO = :PR_CUSTO,
     NOME_FOR = :NOME_FOR,
     COD_LOTE = :COD_LOTE
     where (CODMOV = :CODMOV)
     and (ITEM = :ITEM);

  if (operacao = 3) then
     delete from MIT_PRODUCAO
     where (CODMOV = :CODMOV)
     and (ITEM = :ITEM);

  suspend;
end

^

ALTER TABLE CLIENTE
    ADD FLG_COMISSAO CHAR(1) DEFAULT 'S' NOT NULL,
    ADD PORC_DESC NUMERIC(15,2) DEFAULT 0 NOT NULL

^

CREATE OR ALTER procedure P_CLIENTE (
    OPERACAO integer,
    CODIGO integer,
    NOME varchar(60),
    FANTASIA varchar(60),
    COD_END integer,
    FONE varchar(20),
    FAX varchar(20),
    CELULAR varchar(20),
    CX_POSTAL varchar(10),
    E_MAIL varchar(60),
    CONTATO varchar(20),
    TIPO_PESSOA char(1),
    CNPJ_CPF varchar(20),
    IE_RG varchar(20),
    DT_CADASTRO date,
    DT_INATIVO date,
    DT_NASC date,
    DT_BLOQUEIO date,
    FLG_BLOQUEIO varchar(20),
    OBS_BLOQUEIO varchar(200),
    OBSERVACAO1 varchar(100),
    OBSERVACAO2 varchar(100),
    RESP_NOME varchar(60),
    RESP_BAIRRO varchar(60),
    RESP_ENDERECO varchar(60),
    RESP_CODCID integer,
    RESP_CEP varchar(10),
    RESP_FONE varchar(20),
    RESP_RG varchar(20),
    RESP_CPF varchar(20),
    RESP_DTNASC date,
    RESP_OBSERV varchar(100),
    PROFISSAO varchar(60),
    LIMITE numeric(15,2),
    OBS_COBRANCA varchar(200),
    FLG_RECEBER char(1),
    COD_EMPRESA integer,
    FLG_LIGAR char(1),
    COD_FUNC integer,
    FOTO varchar(200),
    FLG_FECHAMENTO integer,
    DIAS_PAGTO integer,
    FLG_CLASSIFICA char(1),
    TIPO_FECHAMENTO char(1),
    FLG_JUROS char(1),
    E_MAIL_NFE varchar(60),
    DATA_COBRANCA date,
    DATA_VISITA date,
    COD_CONVENIO integer,
    SENHA varchar(20),
    COD_REGIAO integer,
    FLG_PRAZO varchar(1),
    FLG_NFP char(1),
    SITE_SYNC char(1),
    SITE_COD integer,
    OBS_ADICIONAL varchar(9999),
    FLG_COMISSAO char(1),
    PORC_DESC numeric(15,2))
as
begin 
if (operacao = 1) then 
insert into CLIENTE (CODIGO,NOME,FANTASIA,COD_END,FONE,FAX,CELULAR,CX_POSTAL,E_MAIL,CONTATO,TIPO_PESSOA,CNPJ_CPF,IE_RG,DT_CADASTRO, 
DT_INATIVO,DT_NASC,DT_BLOQUEIO,FLG_BLOQUEIO,OBS_BLOQUEIO,OBSERVACAO1,OBSERVACAO2,RESP_NOME,RESP_BAIRRO,RESP_ENDERECO,RESP_CODCID,RESP_CEP,RESP_FONE,RESP_RG,RESP_CPF, 
RESP_DTNASC,RESP_OBSERV,PROFISSAO,LIMITE,OBS_COBRANCA,FLG_RECEBER,COD_EMPRESA,FLG_LIGAR,COD_FUNC,FOTO,FLG_FECHAMENTO,DIAS_PAGTO,FLG_CLASSIFICA,TIPO_FECHAMENTO,FLG_JUROS,E_MAIL_NFE, 
DATA_COBRANCA,DATA_VISITA,COD_CONVENIO,SENHA,COD_REGIAO,FLG_PRAZO,FLG_NFP,SITE_SYNC,SITE_COD,OBS_ADICIONAL,FLG_COMISSAO,PORC_DESC)
values (:CODIGO,:NOME,:FANTASIA,:COD_END,:FONE,:FAX,:CELULAR,:CX_POSTAL,:E_MAIL,:CONTATO,:TIPO_PESSOA,:CNPJ_CPF,:IE_RG,:DT_CADASTRO,:DT_INATIVO,:DT_NASC,:DT_BLOQUEIO, 
:FLG_BLOQUEIO,:OBS_BLOQUEIO,:OBSERVACAO1,:OBSERVACAO2,:RESP_NOME,:RESP_BAIRRO,:RESP_ENDERECO,:RESP_CODCID,:RESP_CEP,:RESP_FONE,:RESP_RG,:RESP_CPF,:RESP_DTNASC, 
:RESP_OBSERV,:PROFISSAO,:LIMITE,:OBS_COBRANCA,:FLG_RECEBER,:COD_EMPRESA,:FLG_LIGAR,:COD_FUNC,:FOTO,:FLG_FECHAMENTO,:DIAS_PAGTO,:FLG_CLASSIFICA,:TIPO_FECHAMENTO,:FLG_JUROS,:E_MAIL_NFE, 
:DATA_COBRANCA,:DATA_VISITA,:COD_CONVENIO,:SENHA,:COD_REGIAO,:FLG_PRAZO,:FLG_NFP,:SITE_SYNC,:SITE_COD,:OBS_ADICIONAL,:FLG_COMISSAO,:PORC_DESC);
if (operacao = 2) then  
update CLIENTE set 
NOME = :NOME,
FANTASIA = :FANTASIA, 
COD_END = :COD_END,
FONE = :FONE, 
FAX = :FAX, 
CELULAR = :CELULAR,
CX_POSTAL = :CX_POSTAL,  
E_MAIL = :E_MAIL,
CONTATO = :CONTATO, 
TIPO_PESSOA = :TIPO_PESSOA,
CNPJ_CPF = :CNPJ_CPF, 
IE_RG = :IE_RG, 
DT_CADASTRO = :DT_CADASTRO,
DT_INATIVO = :DT_INATIVO, 
DT_NASC = :DT_NASC,  
DT_BLOQUEIO = :DT_BLOQUEIO, 
FLG_BLOQUEIO = :FLG_BLOQUEIO, 
OBS_BLOQUEIO = :OBS_BLOQUEIO, 
OBSERVACAO1 = :OBSERVACAO1,  
OBSERVACAO2 = :OBSERVACAO2, 
RESP_NOME = :RESP_NOME, 
RESP_BAIRRO = :RESP_BAIRRO, 
RESP_ENDERECO = :RESP_ENDERECO, 
RESP_CODCID = :RESP_CODCID, 
RESP_CEP = :RESP_CEP, 
RESP_FONE = :RESP_FONE,
RESP_RG = :RESP_RG,   
RESP_CPF = :RESP_CPF,  
RESP_DTNASC = :RESP_DTNASC, 
RESP_OBSERV = :RESP_OBSERV, 
PROFISSAO = :PROFISSAO, 
LIMITE = :LIMITE, 
OBS_COBRANCA = :OBS_COBRANCA,  
FLG_RECEBER = :FLG_RECEBER, 
COD_EMPRESA = :COD_EMPRESA, 
FLG_LIGAR = :FLG_LIGAR, 
COD_FUNC = :COD_FUNC, 
FOTO = :FOTO, 
FLG_FECHAMENTO =:FLG_FECHAMENTO, 
DIAS_PAGTO = :DIAS_PAGTO, 
FLG_CLASSIFICA = :FLG_CLASSIFICA, 
TIPO_FECHAMENTO = :TIPO_FECHAMENTO, 
FLG_JUROS = :FLG_JUROS, 
E_MAIL_NFE = :E_MAIL_NFE, 
DATA_COBRANCA = :DATA_COBRANCA,
DATA_VISITA = :DATA_VISITA, 
COD_CONVENIO = :COD_CONVENIO,
SENHA = :SENHA,  
COD_REGIAO = :COD_REGIAO,
FLG_PRAZO = :FLG_PRAZO,
FLG_NFP = :FLG_NFP,
SITE_SYNC = :SITE_SYNC, 
SITE_COD  = :SITE_COD, 
OBS_ADICIONAL = :OBS_ADICIONAL,
FLG_COMISSAO = :FLG_COMISSAO,
PORC_DESC = :PORC_DESC
where (CODIGO = :CODIGO);
if (operacao = 3) then 
delete from CLIENTE 
where (CODIGO = :CODIGO); 
suspend;
end

^

ALTER TABLE CARTAO
    ADD FLG_ES CHAR(1) NOT NULL,
    ADD DIA_FECHA INTEGER NOT NULL,
    ADD DIA_VENCE INTEGER NOT NULL

^

UPDATE CARTAO
SET FLG_ES = 'E',
    DIA_FECHA = 0,
    DIA_VENCE = 0

^

CREATE OR ALTER procedure P_CARTAO (
    OPERACAO integer,
    CODIGO integer,
    NOME varchar(60),
    TAXA numeric(15,2),
    PRAZO integer,
    ANTECIPA numeric(15,2),
    FLG_ATIVADO char(1),
    FLG_ES char(1),
    DIA_FECHA integer,
    DIA_VENCE integer)
as
begin
if (operacao = 1) then
   insert into CARTAO (CODIGO,NOME,TAXA,PRAZO,ANTECIPA,FLG_ATIVADO,FLG_ES,DIA_FECHA,DIA_VENCE)
  values (:CODIGO,:NOME,:TAXA,:PRAZO,:ANTECIPA,:FLG_ATIVADO,:FLG_ES,:DIA_FECHA,:DIA_VENCE);
  if (operacao = 2) then
update CARTAO set
NOME = :NOME,
TAXA = :TAXA,
PRAZO = :PRAZO,
ANTECIPA = :ANTECIPA,
FLG_ATIVADO = :FLG_ATIVADO,
FLG_ES = :FLG_ES,
DIA_FECHA = :DIA_FECHA,
DIA_VENCE = :DIA_VENCE
where (CODIGO = :CODIGO);
if (operacao = 3) then
delete from CARTAO
where (CODIGO = :CODIGO);
suspend;
end

^

ALTER TABLE MOV_CARTAO
    ADD CODPAG INTEGER,
    ADD ORDPAG INTEGER

^

CREATE OR ALTER procedure P_MOVCARTAO (
    OPERACAO integer,
    CODIGO integer,
    COD_CARTAO integer,
    CODMOV integer,
    CODREC integer,
    ORDREC integer,
    PARCELA varchar(10),
    DT_EMISSAO date,
    DT_VENCTO date,
    DT_PAGTO date,
    VLR_PARC numeric(15,2),
    VLR_DESC numeric(15,2),
    VLR_LIQUIDO numeric(15,2),
    OBSERVACAO varchar(150),
    AGRUPA char(1),
    VLR_ANTECIPA numeric(15,2),
    CODPAG integer,
    ORDPAG integer)
as
begin
  if (operacao = 1) then
     insert into MOV_CARTAO (CODIGO,COD_CARTAO,CODMOV,CODREC,ORDREC,PARCELA,DT_EMISSAO,DT_VENCTO,DT_PAGTO,VLR_PARC,VLR_DESC,VLR_LIQUIDO,OBSERVACAO,AGRUPA,VLR_ANTECIPA,CODPAG,ORDPAG)
     values (:CODIGO,:COD_CARTAO,:CODMOV,:CODREC,:ORDREC,:PARCELA,:DT_EMISSAO,:DT_VENCTO,:DT_PAGTO,:VLR_PARC,:VLR_DESC,:VLR_LIQUIDO,:OBSERVACAO,:AGRUPA,:VLR_ANTECIPA,:CODPAG,:ORDPAG);

  if (operacao = 2) then
     update MOV_CARTAO set
     COD_CARTAO = :COD_CARTAO,
     CODMOV = :CODMOV,
     CODREC = :CODREC,
     ORDREC = :ORDREC,
     PARCELA = :PARCELA,
     DT_EMISSAO = :DT_EMISSAO,
     DT_VENCTO = :DT_VENCTO,
     DT_PAGTO = :DT_PAGTO,
     VLR_PARC = :VLR_PARC,
     VLR_DESC = :VLR_DESC,
     VLR_LIQUIDO = :VLR_LIQUIDO,
     OBSERVACAO = :OBSERVACAO,
     AGRUPA = :AGRUPA,
     VLR_ANTECIPA = :VLR_ANTECIPA,
     CODPAG = :CODPAG,
     ORDPAG = :ORDPAG
     where (CODIGO = :CODIGO);

  if (operacao = 3) then
     delete from MOV_CARTAO
     where (CODIGO = :CODIGO);

  suspend;
end

^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','VENDAS','SAIDAS','COMPOSICAO','CARREGAR ITENS DA COMPOSICAO','NAO','SIM;NAO','N')

^

update configuracao set valor = 'SIM'
where (campo = 'COMPOSICAO') and (cod_tela = 'VENDA')
and exists (select codigo from empresa where (cnpj = '43.462.214/0001-92') or (cnpj = '55.862.031/0001-43'))

^

CREATE SEQUENCE GEN_LOG

^

execute block as
  declare variable x integer;
begin
  SELECT max(codigo) from log into x;
  execute statement 'set generator GEN_LOG to ' || x;
end

^

DROP TRIGGER TRG_LOG

^

CREATE DESCENDING INDEX MOVTO_IDX6
ON MOVTO (CODIGO)

^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','VENDAS','SAIDAS','PREVIEW','MOSTRAR PREVIEW','SIM','SIM;NAO','N')

^

update configuracao set valido = 'SG_0015;SG_0024;SG_0035;SG_0057;SG_0088;SG_0114;SG_0134'
where cod_tela = 'VENDA' and campo = 'FLG_TELA'

^

ALTER TABLE MOVIT_EXP 
ADD STATUS VARCHAR(20)

^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','IMPRESSAO VENDA','SAIDAS','FLG_CAMPO','CAMPO A EXIBIR NA IMPRESSAO','CODIGO','CODIGO;COD_BARRA','S')

^

update configuracao set valor = 'COD_BARRA'
where (campo = 'FLG_CAMPO') and (cod_tela = 'VENDA')
and exists (select codigo from empresa where (nivel = 112) or (nivel = 114) or (nivel = 154))

^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','IMPRESSAO VENDA','SAIDAS','EXIBE_SALDO','EXIBIR SALDO EM ABERTO NA IMPRESSAO','NAO','SIM;NAO','S')

^

update configuracao set valor = 'SIM'
where (campo = 'EXIBE_SALDO') and (cod_tela = 'VENDA')
and exists (select codigo from empresa where (nivel = 45) or (cnpj = '40.143.403/0001-04'))

^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('COMPRA','LANCAMENTOS','ENTRADAS','MEIA_NOTA','HABILITAR NOTA PARCIAL','SIM','SIM;NAO','S')

^

update configuracao set valor = 'NAO'
where (campo = 'MEIA_NOTA') and (cod_tela = 'COMPRA')
and exists (select codigo from empresa where (nivel = 20) or (nivel = 139) or (nivel = 154))

^

CREATE OR ALTER procedure P_MOVTO (
    OPERACAO integer,
    CODIGO integer,
    FLG_CODMOV integer,
    DATA date,
    NOTA_FISCAL integer,
    SERIE integer,
    CUPOM_FISCAL integer,
    NRO_ECF integer,
    DATA_SAIDA date,
    COD_CLI integer,
    COD_FOR integer,
    COD_FUNC integer,
    COD_TRIB integer,
    COD_END_CLI integer,
    VLR_DESC numeric(15,2),
    VLR_ACRES numeric(15,2),
    VLR_FRETE numeric(15,2),
    PORC_FRETE numeric(15,3),
    VLR_TOTAL numeric(15,2),
    TOTAL_NF numeric(15,2),
    TIPO_RECEB integer,
    OBSERV1 varchar(400),
    OBSERV2 varchar(100),
    OBSERV3 varchar(100),
    TRANS_NOME varchar(60),
    TRANS_END varchar(60),
    TRANS_CIDADE varchar(60),
    TRANS_CIDADEUF varchar(2),
    TRANS_PLACA varchar(10),
    TRANS_PLACAUF varchar(2),
    TRANS_FRETE integer,
    TRANS_CNPJ_CPF varchar(20),
    TRANS_IE_RG varchar(20),
    CODREC_DEVOLUCAO integer,
    COD_CAIXA integer,
    FLG_CANCEL char(1),
    MOTIVO_CANCEL varchar(60),
    NF_DATA date,
    NF_DATA_SAIDA date,
    NF_HORA time,
    NF_CPF varchar(20),
    PLACA varchar(10),
    DATA_ENTREGA date,
    FLG_ABERTO char(1),
    VLR_DINH numeric(15,2),
    VLR_CHVISTA numeric(15,2),
    VLR_CHPRE numeric(15,2),
    VLR_CARTAO numeric(15,2),
    NFE_NRO integer,
    NFE_STATUS varchar(60),
    NFE_CAMINHO varchar(60),
    NFE_CHAVE varchar(60),
    NFE_OBSERV varchar(60),
    VLR_DEBITO numeric(15,2),
    VLR_PRAZO numeric(15,2),
    VLR_OUTROS numeric(15,2),
    COD_EMPRESA integer,
    NOME_VEICULO varchar(400),
    VOL_QUANT varchar(20),
    VOL_ESPECIE varchar(20),
    VOL_MARCA varchar(20),
    VOL_NRO varchar(20),
    VOL_BRUTO varchar(20),
    VOL_LIQUIDO varchar(20),
    NFE_REF1 varchar(60),
    NFE_REF2 varchar(60),
    NFE_REF3 varchar(60),
    COD_MAO_OBRA integer,
    SAT_NRO integer,
    SAT_STATUS varchar(20),
    SAT_CAMINHO varchar(60),
    SAT_CHAVE varchar(60),
    DT_COMISSAO date,
    NF_NOME varchar(60),
    COD_CONVENIO integer,
    COD_MESA integer,
    COD_PARCELA integer,
    FLG_PRECO char(1),
    LOCAL_DESEMB varchar(200),
    UF_DESEMB varchar(2),
    NRO_DI varchar(20),
    DT_DI date,
    COD_EXPORT integer,
    COD_FABRIC integer,
    TP_TRANS integer,
    NFE_REF4 varchar(60),
    VLR_IMPORT numeric(15,2),
    OBS_ADICIONAL varchar(3000),
    FLG_PROCEDE char(1),
    ROMANEIO_NRO integer,
    ROMANEIO_DATA date,
    TOKEN varchar(256),
    CODMARKET integer)
as
begin
if (operacao = 1) then
insert into MOVTO (CODIGO,FLG_CODMOV,DATA,NOTA_FISCAL,SERIE,CUPOM_FISCAL,NRO_ECF,DATA_SAIDA,COD_CLI,COD_FOR,COD_FUNC,COD_TRIB,COD_END_CLI,VLR_DESC,VLR_ACRES,VLR_FRETE,PORC_FRETE,
VLR_TOTAL,TOTAL_NF,TIPO_RECEB,OBSERV1,OBSERV2,OBSERV3,TRANS_NOME,TRANS_END,TRANS_CIDADE,TRANS_CIDADEUF,TRANS_PLACA,TRANS_PLACAUF,TRANS_FRETE,TRANS_CNPJ_CPF,TRANS_IE_RG,CODREC_DEVOLUCAO,
COD_CAIXA,FLG_CANCEL,MOTIVO_CANCEL,NF_DATA,NF_DATA_SAIDA,NF_HORA,NF_CPF,PLACA,DATA_ENTREGA,FLG_ABERTO,VLR_DINH,VLR_CHVISTA,VLR_CHPRE,VLR_CARTAO,NFE_NRO,NFE_STATUS,NFE_CAMINHO,
NFE_CHAVE,NFE_OBSERV,VLR_DEBITO,VLR_PRAZO,VLR_OUTROS,COD_EMPRESA,NOME_VEICULO,VOL_QUANT,VOL_ESPECIE,VOL_MARCA,VOL_NRO,VOL_BRUTO,VOL_LIQUIDO,NFE_REF1,NFE_REF2,NFE_REF3,COD_MAO_OBRA,SAT_NRO,SAT_STATUS,SAT_CAMINHO,SAT_CHAVE,
DT_COMISSAO,NF_NOME,COD_CONVENIO,COD_MESA,COD_PARCELA,FLG_PRECO,LOCAL_DESEMB,UF_DESEMB,NRO_DI,DT_DI,COD_EXPORT,COD_FABRIC,TP_TRANS,NFE_REF4,VLR_IMPORT,OBS_ADICIONAL,FLG_PROCEDE,ROMANEIO_NRO,ROMANEIO_DATA,TOKEN, CODMARKET)
values (:CODIGO,:FLG_CODMOV,:DATA,:NOTA_FISCAL,:SERIE,:CUPOM_FISCAL,:NRO_ECF,:DATA_SAIDA,:COD_CLI,:COD_FOR,:COD_FUNC,:COD_TRIB,:COD_END_CLI,:VLR_DESC,:VLR_ACRES,:VLR_FRETE,
:PORC_FRETE,:VLR_TOTAL,:TOTAL_NF,:TIPO_RECEB,:OBSERV1,:OBSERV2,:OBSERV3,:TRANS_NOME,:TRANS_END,:TRANS_CIDADE,:TRANS_CIDADEUF,:TRANS_PLACA,:TRANS_PLACAUF,:TRANS_FRETE,
:TRANS_CNPJ_CPF,:TRANS_IE_RG,:CODREC_DEVOLUCAO,:COD_CAIXA,:FLG_CANCEL,:MOTIVO_CANCEL,:NF_DATA,:NF_DATA_SAIDA,:NF_HORA,:NF_CPF,:PLACA,:DATA_ENTREGA,:FLG_ABERTO,
:VLR_DINH,:VLR_CHVISTA,:VLR_CHPRE,:VLR_CARTAO,:NFE_NRO,:NFE_STATUS,:NFE_CAMINHO,:NFE_CHAVE,:NFE_OBSERV,:VLR_DEBITO,:VLR_PRAZO,:VLR_OUTROS,:COD_EMPRESA,:NOME_VEICULO,
:VOL_QUANT,:VOL_ESPECIE,:VOL_MARCA,:VOL_NRO,:VOL_BRUTO,:VOL_LIQUIDO,:NFE_REF1,:NFE_REF2,:NFE_REF3,:COD_MAO_OBRA,:SAT_NRO,:SAT_STATUS,:SAT_CAMINHO,:SAT_CHAVE,:DT_COMISSAO,:NF_NOME,:COD_CONVENIO,:COD_MESA,:COD_PARCELA,:FLG_PRECO, 
:LOCAL_DESEMB,:UF_DESEMB,:NRO_DI,:DT_DI,:COD_EXPORT,:COD_FABRIC,:TP_TRANS,:NFE_REF4,:VLR_IMPORT,:OBS_ADICIONAL,:FLG_PROCEDE,:ROMANEIO_NRO,:ROMANEIO_DATA,:TOKEN,:CODMARKET);
if (operacao = 2) then 
update MOVTO set 
FLG_CODMOV = :FLG_CODMOV,
DATA = :DATA, 
NOTA_FISCAL = :NOTA_FISCAL,
SERIE = :SERIE,
CUPOM_FISCAL = :CUPOM_FISCAL, 
NRO_ECF = :NRO_ECF, 
DATA_SAIDA = :DATA_SAIDA,
COD_CLI = :COD_CLI, 
COD_FOR = :COD_FOR,
COD_FUNC = :COD_FUNC,
COD_TRIB = :COD_TRIB,
COD_END_CLI = :COD_END_CLI,
VLR_DESC = :VLR_DESC,
VLR_ACRES = :VLR_ACRES,
VLR_FRETE = :VLR_FRETE,
PORC_FRETE = :PORC_FRETE,
VLR_TOTAL = :VLR_TOTAL,
TOTAL_NF = :TOTAL_NF,
TIPO_RECEB = :TIPO_RECEB,
OBSERV1 = :OBSERV1,
OBSERV2 = :OBSERV2,
OBSERV3 = :OBSERV3,
TRANS_NOME = :TRANS_NOME,
TRANS_END = :TRANS_END,
TRANS_CIDADE = :TRANS_CIDADE,
TRANS_CIDADEUF = :TRANS_CIDADEUF,
TRANS_PLACA = :TRANS_PLACA,
TRANS_PLACAUF = :TRANS_PLACAUF,
TRANS_FRETE = :TRANS_FRETE,
TRANS_CNPJ_CPF = :TRANS_CNPJ_CPF,
TRANS_IE_RG = :TRANS_IE_RG,
CODREC_DEVOLUCAO = :CODREC_DEVOLUCAO,
COD_CAIXA = :COD_CAIXA,
FLG_CANCEL = :FLG_CANCEL,
MOTIVO_CANCEL = :MOTIVO_CANCEL,
NF_DATA = :NF_DATA,
NF_DATA_SAIDA = :NF_DATA_SAIDA,
NF_HORA = :NF_HORA,
NF_CPF = :NF_CPF,
PLACA = :PLACA,
DATA_ENTREGA = :DATA_ENTREGA,
FLG_ABERTO = :FLG_ABERTO,
VLR_DINH = :VLR_DINH,
VLR_CHVISTA = :VLR_CHVISTA,
VLR_CHPRE = :VLR_CHPRE,
VLR_CARTAO = :VLR_CARTAO,
NFE_NRO = :NFE_NRO,
NFE_STATUS = :NFE_STATUS,
NFE_CAMINHO = :NFE_CAMINHO,
NFE_CHAVE = :NFE_CHAVE,
NFE_OBSERV = :NFE_OBSERV,
VLR_DEBITO = :VLR_DEBITO,
VLR_PRAZO = :VLR_PRAZO,
VLR_OUTROS = :VLR_OUTROS,
COD_EMPRESA = :COD_EMPRESA,
NOME_VEICULO = :NOME_VEICULO,
VOL_QUANT = :VOL_QUANT,
VOL_ESPECIE = :VOL_ESPECIE,
VOL_MARCA = :VOL_MARCA,
VOL_NRO = :VOL_NRO,
VOL_BRUTO = :VOL_BRUTO,
VOL_LIQUIDO = :VOL_LIQUIDO,
NFE_REF1 = :NFE_REF1,
NFE_REF2 = :NFE_REF2,
NFE_REF3 = :NFE_REF3,
COD_MAO_OBRA = :COD_MAO_OBRA,
SAT_NRO = :SAT_NRO,
SAT_STATUS = :SAT_STATUS,
SAT_CAMINHO = :SAT_CAMINHO,
SAT_CHAVE = :SAT_CHAVE,
DT_COMISSAO = :DT_COMISSAO,
NF_NOME = :NF_NOME,
COD_CONVENIO = :COD_CONVENIO,
COD_MESA = :COD_MESA,
COD_PARCELA = :COD_PARCELA,
FLG_PRECO = :FLG_PRECO,
LOCAL_DESEMB  = :LOCAL_DESEMB,
UF_DESEMB = :UF_DESEMB, 
NRO_DI = :NRO_DI,
DT_DI = :DT_DI,
COD_EXPORT = :COD_EXPORT,
COD_FABRIC = :COD_FABRIC,
TP_TRANS = :TP_TRANS,
NFE_REF4 = :NFE_REF4,
VLR_IMPORT = :VLR_IMPORT,
OBS_ADICIONAL = :OBS_ADICIONAL,
FLG_PROCEDE = :FLG_PROCEDE,
ROMANEIO_NRO = :ROMANEIO_NRO,
ROMANEIO_DATA = :ROMANEIO_DATA,
TOKEN = :TOKEN,
CODMARKET = :CODMARKET
where (CODIGO = :CODIGO);
if (operacao = 3) then
delete from MOVTO
where (CODIGO = :CODIGO);
suspend;
end

^

    CREATE OR ALTER procedure P_MOVTO (
    OPERACAO integer,
    CODIGO integer,
    FLG_CODMOV integer,
    DATA date,
    NOTA_FISCAL integer,
    SERIE integer,
    CUPOM_FISCAL integer,
    NRO_ECF integer,
    DATA_SAIDA date,
    COD_CLI integer,
    COD_FOR integer,
    COD_FUNC integer,
    COD_TRIB integer,
    COD_END_CLI integer,
    VLR_DESC numeric(15,2),
    VLR_ACRES numeric(15,2),
    VLR_FRETE numeric(15,2),
    PORC_FRETE numeric(15,3),
    VLR_TOTAL numeric(15,2),
    TOTAL_NF numeric(15,2),
    TIPO_RECEB integer,
    OBSERV1 varchar(400),
    OBSERV2 varchar(100),
    OBSERV3 varchar(100),
    TRANS_NOME varchar(60),
    TRANS_END varchar(60),
    TRANS_CIDADE varchar(60),
    TRANS_CIDADEUF varchar(2),
    TRANS_PLACA varchar(10),
    TRANS_PLACAUF varchar(2),
    TRANS_FRETE integer,
    TRANS_CNPJ_CPF varchar(20),
    TRANS_IE_RG varchar(20),
    CODREC_DEVOLUCAO integer,
    COD_CAIXA integer,
    FLG_CANCEL char(1),
    MOTIVO_CANCEL varchar(60),
    NF_DATA date,
    NF_DATA_SAIDA date,
    NF_HORA time,
    NF_CPF varchar(20),
    PLACA varchar(10),
    DATA_ENTREGA date,
    FLG_ABERTO char(1),
    VLR_DINH numeric(15,2),
    VLR_CHVISTA numeric(15,2),
    VLR_CHPRE numeric(15,2),
    VLR_CARTAO numeric(15,2),
    NFE_NRO integer,
    NFE_STATUS varchar(60),
    NFE_CAMINHO varchar(60),
    NFE_CHAVE varchar(60),
    NFE_OBSERV varchar(60),
    VLR_DEBITO numeric(15,2),
    VLR_PRAZO numeric(15,2),
    VLR_OUTROS numeric(15,2),
    COD_EMPRESA integer,
    NOME_VEICULO varchar(400),
    VOL_QUANT varchar(20),
    VOL_ESPECIE varchar(20),
    VOL_MARCA varchar(20),
    VOL_NRO varchar(20),
    VOL_BRUTO varchar(20),
    VOL_LIQUIDO varchar(20),
    NFE_REF1 varchar(60),
    NFE_REF2 varchar(60),
    NFE_REF3 varchar(60),
    COD_MAO_OBRA integer,
    SAT_NRO integer,
    SAT_STATUS varchar(20),
    SAT_CAMINHO varchar(60),
    SAT_CHAVE varchar(60),
    DT_COMISSAO date,
    NF_NOME varchar(60),
    COD_CONVENIO integer,
    COD_MESA integer,
    COD_PARCELA integer,
    FLG_PRECO char(1),
    LOCAL_DESEMB varchar(200),
    UF_DESEMB varchar(2),
    NRO_DI varchar(20),
    DT_DI date,
    COD_EXPORT integer,
    COD_FABRIC integer,
    TP_TRANS integer,
    NFE_REF4 varchar(60),
    VLR_IMPORT numeric(15,2),
    OBS_ADICIONAL varchar(3000),
    FLG_PROCEDE char(1),
    ROMANEIO_NRO integer,
    ROMANEIO_DATA date,
    TOKEN varchar(256),
    CODMARKET integer)
as
begin
if (operacao = 1) then
insert into MOVTO (CODIGO,FLG_CODMOV,DATA,NOTA_FISCAL,SERIE,CUPOM_FISCAL,NRO_ECF,DATA_SAIDA,COD_CLI,COD_FOR,COD_FUNC,COD_TRIB,COD_END_CLI,VLR_DESC,VLR_ACRES,VLR_FRETE,PORC_FRETE,
VLR_TOTAL,TOTAL_NF,TIPO_RECEB,OBSERV1,OBSERV2,OBSERV3,TRANS_NOME,TRANS_END,TRANS_CIDADE,TRANS_CIDADEUF,TRANS_PLACA,TRANS_PLACAUF,TRANS_FRETE,TRANS_CNPJ_CPF,TRANS_IE_RG,CODREC_DEVOLUCAO,
COD_CAIXA,FLG_CANCEL,MOTIVO_CANCEL,NF_DATA,NF_DATA_SAIDA,NF_HORA,NF_CPF,PLACA,DATA_ENTREGA,FLG_ABERTO,VLR_DINH,VLR_CHVISTA,VLR_CHPRE,VLR_CARTAO,NFE_NRO,NFE_STATUS,NFE_CAMINHO,
NFE_CHAVE,NFE_OBSERV,VLR_DEBITO,VLR_PRAZO,VLR_OUTROS,COD_EMPRESA,NOME_VEICULO,VOL_QUANT,VOL_ESPECIE,VOL_MARCA,VOL_NRO,VOL_BRUTO,VOL_LIQUIDO,NFE_REF1,NFE_REF2,NFE_REF3,COD_MAO_OBRA,SAT_NRO,SAT_STATUS,SAT_CAMINHO,SAT_CHAVE,
DT_COMISSAO,NF_NOME,COD_CONVENIO,COD_MESA,COD_PARCELA,FLG_PRECO,LOCAL_DESEMB,UF_DESEMB,NRO_DI,DT_DI,COD_EXPORT,COD_FABRIC,TP_TRANS,NFE_REF4,VLR_IMPORT,OBS_ADICIONAL,FLG_PROCEDE,ROMANEIO_NRO,ROMANEIO_DATA,TOKEN, CODMARKET)
values (:CODIGO,:FLG_CODMOV,:DATA,:NOTA_FISCAL,:SERIE,:CUPOM_FISCAL,:NRO_ECF,:DATA_SAIDA,:COD_CLI,:COD_FOR,:COD_FUNC,:COD_TRIB,:COD_END_CLI,:VLR_DESC,:VLR_ACRES,:VLR_FRETE,
:PORC_FRETE,:VLR_TOTAL,:TOTAL_NF,:TIPO_RECEB,:OBSERV1,:OBSERV2,:OBSERV3,:TRANS_NOME,:TRANS_END,:TRANS_CIDADE,:TRANS_CIDADEUF,:TRANS_PLACA,:TRANS_PLACAUF,:TRANS_FRETE,
:TRANS_CNPJ_CPF,:TRANS_IE_RG,:CODREC_DEVOLUCAO,:COD_CAIXA,:FLG_CANCEL,:MOTIVO_CANCEL,:NF_DATA,:NF_DATA_SAIDA,:NF_HORA,:NF_CPF,:PLACA,:DATA_ENTREGA,:FLG_ABERTO,
:VLR_DINH,:VLR_CHVISTA,:VLR_CHPRE,:VLR_CARTAO,:NFE_NRO,:NFE_STATUS,:NFE_CAMINHO,:NFE_CHAVE,:NFE_OBSERV,:VLR_DEBITO,:VLR_PRAZO,:VLR_OUTROS,:COD_EMPRESA,:NOME_VEICULO,
:VOL_QUANT,:VOL_ESPECIE,:VOL_MARCA,:VOL_NRO,:VOL_BRUTO,:VOL_LIQUIDO,:NFE_REF1,:NFE_REF2,:NFE_REF3,:COD_MAO_OBRA,:SAT_NRO,:SAT_STATUS,:SAT_CAMINHO,:SAT_CHAVE,:DT_COMISSAO,:NF_NOME,:COD_CONVENIO,:COD_MESA,:COD_PARCELA,:FLG_PRECO, 
:LOCAL_DESEMB,:UF_DESEMB,:NRO_DI,:DT_DI,:COD_EXPORT,:COD_FABRIC,:TP_TRANS,:NFE_REF4,:VLR_IMPORT,:OBS_ADICIONAL,:FLG_PROCEDE,:ROMANEIO_NRO,:ROMANEIO_DATA,:TOKEN,:CODMARKET);
if (operacao = 2) then 
update MOVTO set 
FLG_CODMOV = :FLG_CODMOV,
DATA = :DATA, 
NOTA_FISCAL = :NOTA_FISCAL,
SERIE = :SERIE,
CUPOM_FISCAL = :CUPOM_FISCAL, 
NRO_ECF = :NRO_ECF, 
DATA_SAIDA = :DATA_SAIDA,
COD_CLI = :COD_CLI, 
COD_FOR = :COD_FOR,
COD_FUNC = :COD_FUNC,
COD_TRIB = :COD_TRIB,
COD_END_CLI = :COD_END_CLI,
VLR_DESC = :VLR_DESC,
VLR_ACRES = :VLR_ACRES,
VLR_FRETE = :VLR_FRETE,
PORC_FRETE = :PORC_FRETE,
VLR_TOTAL = :VLR_TOTAL,
TOTAL_NF = :TOTAL_NF,
TIPO_RECEB = :TIPO_RECEB,
OBSERV1 = :OBSERV1,
OBSERV2 = :OBSERV2,
OBSERV3 = :OBSERV3,
TRANS_NOME = :TRANS_NOME,
TRANS_END = :TRANS_END,
TRANS_CIDADE = :TRANS_CIDADE,
TRANS_CIDADEUF = :TRANS_CIDADEUF,
TRANS_PLACA = :TRANS_PLACA,
TRANS_PLACAUF = :TRANS_PLACAUF,
TRANS_FRETE = :TRANS_FRETE,
TRANS_CNPJ_CPF = :TRANS_CNPJ_CPF,
TRANS_IE_RG = :TRANS_IE_RG,
CODREC_DEVOLUCAO = :CODREC_DEVOLUCAO,
COD_CAIXA = :COD_CAIXA,
FLG_CANCEL = :FLG_CANCEL,
MOTIVO_CANCEL = :MOTIVO_CANCEL,
NF_DATA = :NF_DATA,
NF_DATA_SAIDA = :NF_DATA_SAIDA,
NF_HORA = :NF_HORA,
NF_CPF = :NF_CPF,
PLACA = :PLACA,
DATA_ENTREGA = :DATA_ENTREGA,
FLG_ABERTO = :FLG_ABERTO,
VLR_DINH = :VLR_DINH,
VLR_CHVISTA = :VLR_CHVISTA,
VLR_CHPRE = :VLR_CHPRE,
VLR_CARTAO = :VLR_CARTAO,
NFE_NRO = :NFE_NRO,
NFE_STATUS = :NFE_STATUS,
NFE_CAMINHO = :NFE_CAMINHO,
NFE_CHAVE = :NFE_CHAVE,
NFE_OBSERV = :NFE_OBSERV,
VLR_DEBITO = :VLR_DEBITO,
VLR_PRAZO = :VLR_PRAZO,
VLR_OUTROS = :VLR_OUTROS,
COD_EMPRESA = :COD_EMPRESA,
NOME_VEICULO = :NOME_VEICULO,
VOL_QUANT = :VOL_QUANT,
VOL_ESPECIE = :VOL_ESPECIE,
VOL_MARCA = :VOL_MARCA,
VOL_NRO = :VOL_NRO,
VOL_BRUTO = :VOL_BRUTO,
VOL_LIQUIDO = :VOL_LIQUIDO,
NFE_REF1 = :NFE_REF1,
NFE_REF2 = :NFE_REF2,
NFE_REF3 = :NFE_REF3,
COD_MAO_OBRA = :COD_MAO_OBRA,
SAT_NRO = :SAT_NRO,
SAT_STATUS = :SAT_STATUS,
SAT_CAMINHO = :SAT_CAMINHO,
SAT_CHAVE = :SAT_CHAVE,
DT_COMISSAO = :DT_COMISSAO,
NF_NOME = :NF_NOME,
COD_CONVENIO = :COD_CONVENIO,
COD_MESA = :COD_MESA,
COD_PARCELA = :COD_PARCELA,
FLG_PRECO = :FLG_PRECO,
LOCAL_DESEMB  = :LOCAL_DESEMB,
UF_DESEMB = :UF_DESEMB, 
NRO_DI = :NRO_DI,
DT_DI = :DT_DI,
COD_EXPORT = :COD_EXPORT,
COD_FABRIC = :COD_FABRIC,
TP_TRANS = :TP_TRANS,
NFE_REF4 = :NFE_REF4,
VLR_IMPORT = :VLR_IMPORT,
OBS_ADICIONAL = :OBS_ADICIONAL,
FLG_PROCEDE = :FLG_PROCEDE,
ROMANEIO_NRO = :ROMANEIO_NRO,
ROMANEIO_DATA = :ROMANEIO_DATA,
TOKEN = :TOKEN,
CODMARKET = :CODMARKET
where (CODIGO = :CODIGO);
if (operacao = 3) then
delete from MOVTO
where (CODIGO = :CODIGO);
suspend;
end
^

ALTER TABLE CONTABILISTA
  ADD COD_EMPRESA integer

^

ALTER TABLE CONTABILISTA
  ADD CONSTRAINT fk_COD_EMPRESA FOREIGN KEY (COD_EMPRESA)
  REFERENCES EMPRESA (CODIGO)

^

ALTER TABLE CONTABILISTA
  ADD FLG_ATIVO char(1)

^

UPDATE CONTABILISTA SET FLG_ATIVO = 'S'

^

CREATE OR ALTER procedure P_CONTABILISTA (
    OPERACAO integer,
    CODIGO integer,
    NOME varchar(60),
    CPF varchar(20),
    CRC varchar(20),
    CNPJ varchar(20),
    ENDERECO varchar(60),
    NRO_END integer,
    BAIRRO varchar(60),
    COD_CIDADE integer,
    CEP varchar(10),
    TELEFONE varchar(20),
    CELULAR varchar(20),
    E_MAIL varchar(60),
    OBSERVACAO varchar(100),
    E_MAIL2 varchar(60),
    E_MAIL3 varchar(60),
    E_MAIL4 varchar(60),
    COD_EMPRESA integer,
    FLG_ATIVO char(1))
as
begin
  if (operacao = 1) then
     insert into CONTABILISTA (CODIGO,NOME,CPF,CRC,CNPJ,ENDERECO,NRO_END,BAIRRO,COD_CIDADE,CEP,TELEFONE,CELULAR,E_MAIL,OBSERVACAO,E_MAIL2,E_MAIL3,E_MAIL4,COD_EMPRESA,FLG_ATIVO)
     values (:CODIGO,:NOME,:CPF,:CRC,:CNPJ,:ENDERECO,:NRO_END,:BAIRRO,:COD_CIDADE,:CEP,:TELEFONE,:CELULAR,:E_MAIL,:OBSERVACAO,:E_MAIL2,:E_MAIL3,:E_MAIL4, :COD_EMPRESA, :FLG_ATIVO);

  if (operacao = 2) then
     update CONTABILISTA set
     NOME = :NOME,
     CPF = :CPF,
     CRC = :CRC,
     CNPJ = :CNPJ,
     ENDERECO = :ENDERECO,
     NRO_END = :NRO_END,
     BAIRRO = :BAIRRO,
     COD_CIDADE = :COD_CIDADE,
     CEP = :CEP,
     TELEFONE = :TELEFONE,
     CELULAR = :CELULAR,
     E_MAIL = :E_MAIL,
     OBSERVACAO = :OBSERVACAO,
     E_MAIL2 = :E_MAIL2,
     E_MAIL3 = :E_MAIL3,
     E_MAIL4 = :E_MAIL4,
     COD_EMPRESA = :COD_EMPRESA,
     FLG_ATIVO = :FLG_ATIVO
     where (CODIGO = :CODIGO);

  if (operacao = 3) then
     delete from CONTABILISTA
     where (CODIGO = :CODIGO);

  suspend;
end

^

update contabilista set FLG_ATIVO = 'S'

^

update RDB$RELATION_FIELDS set
RDB$NULL_FLAG = NULL
where (RDB$FIELD_NAME = 'COD_EMPRESA') and
(RDB$RELATION_NAME = 'CONTABILISTA')

^

update RDB$RELATION_FIELDS set
RDB$NULL_FLAG = 1
where (RDB$FIELD_NAME = 'FLG_ATIVO') and
(RDB$RELATION_NAME = 'CONTABILISTA')

^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','VENDAS','SAIDAS','DIAS_ABERTO','BLOQUEAR VENDA DE CLIENTE COM MAIS DE (X) DIAS EM ABERTO','999999','','N')

^

update configuracao set valor = '90'
where (campo = 'DIAS_ABERTO') and (cod_tela = 'VENDA')
and exists (select codigo from empresa where (nivel = 8))

^

update configuracao set valor = '10'
where (campo = 'DIAS_ABERTO') and (cod_tela = 'VENDA')
and exists (select codigo from empresa where (nivel = 136))

^

update configuracao set valor = '30'
where (campo = 'DIAS_ABERTO') and (cod_tela = 'VENDA')
and exists (select codigo from empresa where (nivel = 129))


^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','RELATORIO DE VENDA','SAIDAS','DRE_CMV','CALCULAR CMV','NAO','SIM;NAO','N')

^

update configuracao set valor = 'SIM'
where (campo = 'DRE_CMV') and (cod_tela = 'VENDA')
and exists (select codigo from empresa where ((nivel = 58) or (nivel = 89) or cnpj = ('06.000.808/0001-55') or cnpj = ('41.390.901/0001-14')))

^

CREATE TABLE MIT_CONSUMO (
    CODIGO      INTEGER NOT NULL,
    COD_PROD    INTEGER NOT NULL,
    COD_FOR     INTEGER NOT NULL,
    COD_FUNC    INTEGER NOT NULL,
    FLG_E_S     CHAR(1) NOT NULL,
    DATA        DATE NOT NULL,
    DOCUMENTO   INTEGER,
    QUANT       NUMERIC(15,3) NOT NULL,
    VLR_UNIT    NUMERIC(15,3) NOT NULL,
    VLR_TOTAL   NUMERIC(15,2) NOT NULL,
    OBSERVACAO  VARCHAR(100)
);

^

ALTER TABLE MIT_CONSUMO ADD CONSTRAINT PK_MIT_CONSUMO PRIMARY KEY (CODIGO);

^

ALTER TABLE MIT_CONSUMO ADD CONSTRAINT FK_MIT_CONSUMO_1 FOREIGN KEY (COD_PROD) REFERENCES PRODUTO (CODIGO);

^

ALTER TABLE MIT_CONSUMO ADD CONSTRAINT FK_MIT_CONSUMO_2 FOREIGN KEY (COD_FOR) REFERENCES FORNECEDOR (CODIGO);

^

ALTER TABLE MIT_CONSUMO ADD CONSTRAINT FK_MIT_CONSUMO_3 FOREIGN KEY (COD_FUNC) REFERENCES FUNCIONARIO (CODIGO);

^

CREATE OR ALTER TRIGGER TRG_MIT_CONSUMO FOR MIT_CONSUMO
ACTIVE BEFORE INSERT POSITION 0
AS
declare variable cod integer;
begin
  select max(CODIGO) from MIT_CONSUMO into :cod;
  if (cod is null) then cod = 0;
  new.codigo = cod + 1;
end

^

create or alter procedure P_MIT_CONSUMO (
    OPERACAO integer,
    CODIGO integer,
    COD_PROD integer,
    COD_FOR integer,
    COD_FUNC integer,
    FLG_E_S char(1),
    DATA date,
    DOCUMENTO integer,
    QUANT numeric(15,3),
    VLR_UNIT numeric(15,3),
    VLR_TOTAL numeric(15,2),
    OBSERVACAO varchar(100))
as
begin
  if (operacao = 1) then
     insert into MIT_CONSUMO (CODIGO,COD_PROD,COD_FOR,COD_FUNC,FLG_E_S,DATA,DOCUMENTO,QUANT,VLR_UNIT,VLR_TOTAL,OBSERVACAO)
     values (:CODIGO,:COD_PROD,:COD_FOR,:COD_FUNC,:FLG_E_S,:DATA,:DOCUMENTO,:QUANT,:VLR_UNIT,:VLR_TOTAL,:OBSERVACAO);

  if (operacao = 2) then
     update MIT_CONSUMO set
     COD_PROD = :COD_PROD,
     COD_FOR = :COD_FOR,
     COD_FUNC = :COD_FUNC,
     FLG_E_S = :FLG_E_S,
     DATA = :DATA,
     DOCUMENTO = :DOCUMENTO,
     QUANT = :QUANT,
     VLR_UNIT = :VLR_UNIT,
     VLR_TOTAL = :VLR_TOTAL,
     OBSERVACAO = :OBSERVACAO
     where (CODIGO = :CODIGO);

  if (operacao = 3) then
     delete from MIT_CONSUMO
     where (CODIGO = :CODIGO);

  suspend;
end;

^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0026','FECHAMENTO DE CAIXA','CAIXA','FLG_CEGAS','FUNCIONARIO QUE FECHA CAIXA AS CEGAS','9','1;2;3;4;5;6;7;8;9','N')

^

update RDB$FIELDS set
RDB$FIELD_TYPE = 37,
RDB$FIELD_LENGTH = 20,
RDB$CHARACTER_LENGTH = 20,
RDB$CHARACTER_SET_ID = 0,
RDB$COLLATION_ID = 0
where RDB$FIELD_NAME = 'RDB$2299'

^

create or alter procedure P_RECEBER (
    OPERACAO integer,
    CODIGO integer,
    PARCELA integer,
    CODMOV integer,
    COD_CLI integer,
    DT_VENDA date,
    DT_VENCTO date,
    VLR_PARC numeric(15,2),
    VLR_ACRES numeric(15,2),
    VLR_DESC numeric(15,2),
    SALDO numeric(15,2),
    CRED_DEB char(10),
    HISTORICO varchar(100),
    CUPOM_FISCAL integer,
    DOCUMENTO varchar(20),
    SERIE varchar(3),
    COD_CAIXA integer,
    CB_NOSSO_NRO varchar(20),
    CB_DOC_NRO integer,
    FLG_BOLETO_DESC char(1),
    FLG_PERDIDO char(1),
    OBS_COBRANCA varchar(400),
    COD_EMPRESA integer,
    DT_BOLETO date,
    FLG_REMESSA char(1),
    BCO_BOLETO_DESC integer,
    BCO_BOLETO integer,
    COD_REPARCELA integer)
as
begin  
if (operacao = 1) then 
INSERT INTO RECEBER (CODIGO,PARCELA,CODMOV,COD_CLI,DT_VENDA,DT_VENCTO,VLR_PARC,VLR_ACRES,VLR_DESC,SALDO,CRED_DEB,HISTORICO,CUPOM_FISCAL,DOCUMENTO,SERIE,COD_CAIXA,CB_NOSSO_NRO,CB_DOC_NRO,
FLG_BOLETO_DESC,FLG_PERDIDO,OBS_COBRANCA,COD_EMPRESA,DT_BOLETO,FLG_REMESSA,BCO_BOLETO_DESC,BCO_BOLETO,COD_REPARCELA)
VALUES (:CODIGO,:PARCELA,:CODMOV,:COD_CLI,:DT_VENDA,:DT_VENCTO,:VLR_PARC,:VLR_ACRES,:VLR_DESC,:SALDO,:CRED_DEB,:HISTORICO,:CUPOM_FISCAL,:DOCUMENTO,:SERIE,:COD_CAIXA,:CB_NOSSO_NRO, 
:CB_DOC_NRO,:FLG_BOLETO_DESC,:FLG_PERDIDO,:OBS_COBRANCA,:COD_EMPRESA,:DT_BOLETO,:FLG_REMESSA,:BCO_BOLETO_DESC,:BCO_BOLETO,:COD_REPARCELA); 
if (operacao = 2) then 
UPDATE RECEBER SET 
PARCELA = :PARCELA, 
CODMOV = :CODMOV, 
COD_CLI = :COD_CLI, 
DT_VENDA = :DT_VENDA, 
DT_VENCTO = :DT_VENCTO, 
VLR_PARC = :VLR_PARC, 
VLR_ACRES = :VLR_ACRES, 
VLR_DESC = :VLR_DESC, 
SALDO = :SALDO, 
CRED_DEB = :CRED_DEB, 
HISTORICO = :HISTORICO, 
CUPOM_FISCAL = :CUPOM_FISCAL, 
DOCUMENTO = :DOCUMENTO,
SERIE = :SERIE, 
COD_CAIXA = :COD_CAIXA, 
CB_NOSSO_NRO = :CB_NOSSO_NRO, 
CB_DOC_NRO = :CB_DOC_NRO, 
FLG_BOLETO_DESC = :FLG_BOLETO_DESC, 
FLG_PERDIDO = :FLG_PERDIDO, 
OBS_COBRANCA = :OBS_COBRANCA, 
COD_EMPRESA = :COD_EMPRESA, 
DT_BOLETO = :DT_BOLETO, 
FLG_REMESSA = : FLG_REMESSA, 
BCO_BOLETO_DESC = :BCO_BOLETO_DESC, 
BCO_BOLETO = :BCO_BOLETO, 
COD_REPARCELA = :COD_REPARCELA
WHERE (CODIGO = :CODIGO); 
if (operacao = 3) then 
delete from RECEBER 
where (CODIGO = :CODIGO); 
suspend; 
end

^

ALTER TABLE END_CLI
ADD NRO_END VARCHAR(30)

^

create or alter procedure P_END_CLI (
    OPERACAO integer,
    CODIGO integer,
    COD_CLI integer,
    ENDERECO varchar(60),
    BAIRRO varchar(60),
    CEP varchar(10),
    COD_CID integer,
    FLG_PADRAO char(1),
    OBSERVACAO varchar(100),
    NRO_END varchar(30))
as
begin
  if (operacao = 1) then
     insert into END_CLI (CODIGO, COD_CLI, ENDERECO, BAIRRO, CEP, COD_CID, FLG_PADRAO, OBSERVACAO, NRO_END)
     values (:CODIGO, :COD_CLI, :ENDERECO, :BAIRRO, :CEP, :COD_CID, :FLG_PADRAO, :OBSERVACAO, :NRO_END);

  if (operacao = 2) then
     update END_CLI set
     COD_CLI = :COD_CLI,
     ENDERECO = :ENDERECO,
     BAIRRO = :BAIRRO,
     CEP = :CEP,
     COD_CID = :COD_CID,
     FLG_PADRAO = :FLG_PADRAO,
     OBSERVACAO = :OBSERVACAO,
     NRO_END = :NRO_END
     where (CODIGO = :CODIGO);

  if (operacao = 3) then
     delete from END_CLI
     where (CODIGO = :CODIGO);

  suspend;
end

^
NOVA VERS O ALTER TABLE '1.0.1.0'
^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','RELATORIO DE VENDA','SAIDAS','FLG_DRE_REC','FILTRO A SER USADO NAS RECEITAS','VENDA','VENDA;FINANCEIRO','N')

^

update configuracao set campo = 'FLG_DRE_DESP', descricao = 'FILTRO A SER USADO NAS DESPESAS' where campo = 'FLG_DRE'

^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','VENDAS','SAIDAS','DESCONTO','PEDIR SENHA CASO DESCONTO FOR MAIOR QUE','999999','','N')

^

update configuracao set valor = '999999'
where (campo = 'DESCONTO') and (cod_tela = 'VENDA')
and exists (select codigo from empresa where ((nivel = 13) or (nivel = 21) or (nivel = 50) or
(nivel = 76) or (nivel = 91) or (nivel = 139) or (nivel = 34) or (nivel = 2) or (nivel = 23)
or (nivel = 25) or (nivel = 30)
or (nivel = 141) or (nivel = 156) or (nivel = 5) or (nivel = 10) or (nivel = 1) or (nivel = 90) or
cnpj = ('09.539.654/0001-62') or cnpj = ('43.877.063/0001-33')))

^

update configuracao set valor = '2'
where (campo = 'DESCONTO') and (cod_tela = 'VENDA')
and exists (select codigo from empresa where ((nivel = 89)))                 

^

update configuracao set valor = '07'
where (campo = 'DESCONTO') and (cod_tela = 'VENDA')
and exists (select codigo from empresa where (cnpj =('08.665.560/0001-77'))) 

^

update configuracao set valor = '05'
where (campo = 'DESCONTO') and (cod_tela = 'VENDA')
and exists (select codigo from empresa where (cnpj =('15.490.269/0001-70')))  

^

update configuracao set valor = '10'
where (campo = 'DESCONTO') and (cod_tela = 'VENDA')
and exists (select codigo from empresa where ((nivel = 54) or (nivel = 4) or cnpj =('08.280.511/0001-16')))

^

update configuracao set valor = '15'
where (campo = 'DESCONTO') and (cod_tela = 'VENDA')
and exists (select codigo from empresa where ((nivel = 25)))                  

^

update configuracao set valor = '12'
where (campo = 'DESCONTO') and (cod_tela = 'VENDA')
and exists (select codigo from empresa where (cnpj =('12.921.232/0001-61')))  

^

ALTER TABLE MOVTO
ADD VLR_PIX NUMERIC(15,2)

^

ALTER TABLE MOVTO
ADD NFE_DADOS BLOB SUB_TYPE 0 SEGMENT SIZE 4096

^

CREATE OR ALTER procedure P_MOVTO (
    OPERACAO integer,
    CODIGO integer,
    FLG_CODMOV integer,
    DATA date,
    NOTA_FISCAL integer,
    SERIE integer,
    CUPOM_FISCAL integer,
    NRO_ECF integer,
    DATA_SAIDA date,
    COD_CLI integer,
    COD_FOR integer,
    COD_FUNC integer,
    COD_TRIB integer,
    COD_END_CLI integer,
    VLR_DESC numeric(15,2),
    VLR_ACRES numeric(15,2),
    VLR_FRETE numeric(15,2),
    PORC_FRETE numeric(15,3),
    VLR_TOTAL numeric(15,2),
    TOTAL_NF numeric(15,2),
    TIPO_RECEB integer,
    OBSERV1 varchar(400),
    OBSERV2 varchar(100),
    OBSERV3 varchar(100),
    TRANS_NOME varchar(60),
    TRANS_END varchar(60),
    TRANS_CIDADE varchar(60),
    TRANS_CIDADEUF varchar(2),
    TRANS_PLACA varchar(10),
    TRANS_PLACAUF varchar(2),
    TRANS_FRETE integer,
    TRANS_CNPJ_CPF varchar(20),
    TRANS_IE_RG varchar(20),
    CODREC_DEVOLUCAO integer,
    COD_CAIXA integer,
    FLG_CANCEL char(1),
    MOTIVO_CANCEL varchar(60),
    NF_DATA date,
    NF_DATA_SAIDA date,
    NF_HORA time,
    NF_CPF varchar(20),
    PLACA varchar(10),
    DATA_ENTREGA date,
    FLG_ABERTO char(1),
    VLR_DINH numeric(15,2),
    VLR_CHVISTA numeric(15,2),
    VLR_CHPRE numeric(15,2),
    VLR_CARTAO numeric(15,2),
    NFE_NRO integer,
    NFE_STATUS varchar(60),
    NFE_CAMINHO varchar(60),
    NFE_CHAVE varchar(60),
    NFE_OBSERV varchar(60),
    VLR_DEBITO numeric(15,2),
    VLR_PRAZO numeric(15,2),
    VLR_OUTROS numeric(15,2),
    COD_EMPRESA integer,
    NOME_VEICULO varchar(400),
    VOL_QUANT varchar(20),
    VOL_ESPECIE varchar(20),
    VOL_MARCA varchar(20),
    VOL_NRO varchar(20),
    VOL_BRUTO varchar(20),
    VOL_LIQUIDO varchar(20),
    NFE_REF1 varchar(60),
    NFE_REF2 varchar(60),
    NFE_REF3 varchar(60),
    COD_MAO_OBRA integer,
    SAT_NRO integer,
    SAT_STATUS varchar(20),
    SAT_CAMINHO varchar(60),
    SAT_CHAVE varchar(60),
    DT_COMISSAO date,
    NF_NOME varchar(60),
    COD_CONVENIO integer,
    COD_MESA integer,
    COD_PARCELA integer,
    FLG_PRECO char(1),
    LOCAL_DESEMB varchar(200),
    UF_DESEMB varchar(2),
    NRO_DI varchar(20),
    DT_DI date,
    COD_EXPORT integer,
    COD_FABRIC integer,
    TP_TRANS integer,
    NFE_REF4 varchar(60),
    VLR_IMPORT numeric(15,2),
    OBS_ADICIONAL varchar(3000),
    FLG_PROCEDE char(1),
    ROMANEIO_NRO integer,
    ROMANEIO_DATA date,
    TOKEN varchar(256),
    CODMARKET integer
    )
as
begin
if (operacao = 1) then
insert into MOVTO (CODIGO,FLG_CODMOV,DATA,NOTA_FISCAL,SERIE,CUPOM_FISCAL,NRO_ECF,DATA_SAIDA,COD_CLI,COD_FOR,COD_FUNC,COD_TRIB,COD_END_CLI,VLR_DESC,VLR_ACRES,VLR_FRETE,PORC_FRETE,
VLR_TOTAL,TOTAL_NF,TIPO_RECEB,OBSERV1,OBSERV2,OBSERV3,TRANS_NOME,TRANS_END,TRANS_CIDADE,TRANS_CIDADEUF,TRANS_PLACA,TRANS_PLACAUF,TRANS_FRETE,TRANS_CNPJ_CPF,TRANS_IE_RG,CODREC_DEVOLUCAO,
COD_CAIXA,FLG_CANCEL,MOTIVO_CANCEL,NF_DATA,NF_DATA_SAIDA,NF_HORA,NF_CPF,PLACA,DATA_ENTREGA,FLG_ABERTO,VLR_DINH,VLR_CHVISTA,VLR_CHPRE,VLR_CARTAO,NFE_NRO,NFE_STATUS,NFE_CAMINHO,
NFE_CHAVE,NFE_OBSERV,VLR_DEBITO,VLR_PRAZO,VLR_OUTROS,COD_EMPRESA,NOME_VEICULO,VOL_QUANT,VOL_ESPECIE,VOL_MARCA,VOL_NRO,VOL_BRUTO,VOL_LIQUIDO,NFE_REF1,NFE_REF2,NFE_REF3,COD_MAO_OBRA,SAT_NRO,SAT_STATUS,SAT_CAMINHO,SAT_CHAVE,
DT_COMISSAO,NF_NOME,COD_CONVENIO,COD_MESA,COD_PARCELA,FLG_PRECO,LOCAL_DESEMB,UF_DESEMB,NRO_DI,DT_DI,COD_EXPORT,COD_FABRIC,TP_TRANS,NFE_REF4,VLR_IMPORT,OBS_ADICIONAL,FLG_PROCEDE,ROMANEIO_NRO,ROMANEIO_DATA,TOKEN, CODMARKET)
values (:CODIGO,:FLG_CODMOV,:DATA,:NOTA_FISCAL,:SERIE,:CUPOM_FISCAL,:NRO_ECF,:DATA_SAIDA,:COD_CLI,:COD_FOR,:COD_FUNC,:COD_TRIB,:COD_END_CLI,:VLR_DESC,:VLR_ACRES,:VLR_FRETE,
:PORC_FRETE,:VLR_TOTAL,:TOTAL_NF,:TIPO_RECEB,:OBSERV1,:OBSERV2,:OBSERV3,:TRANS_NOME,:TRANS_END,:TRANS_CIDADE,:TRANS_CIDADEUF,:TRANS_PLACA,:TRANS_PLACAUF,:TRANS_FRETE,
:TRANS_CNPJ_CPF,:TRANS_IE_RG,:CODREC_DEVOLUCAO,:COD_CAIXA,:FLG_CANCEL,:MOTIVO_CANCEL,:NF_DATA,:NF_DATA_SAIDA,:NF_HORA,:NF_CPF,:PLACA,:DATA_ENTREGA,:FLG_ABERTO,
:VLR_DINH,:VLR_CHVISTA,:VLR_CHPRE,:VLR_CARTAO,:NFE_NRO,:NFE_STATUS,:NFE_CAMINHO,:NFE_CHAVE,:NFE_OBSERV,:VLR_DEBITO,:VLR_PRAZO,:VLR_OUTROS,:COD_EMPRESA,:NOME_VEICULO,
:VOL_QUANT,:VOL_ESPECIE,:VOL_MARCA,:VOL_NRO,:VOL_BRUTO,:VOL_LIQUIDO,:NFE_REF1,:NFE_REF2,:NFE_REF3,:COD_MAO_OBRA,:SAT_NRO,:SAT_STATUS,:SAT_CAMINHO,:SAT_CHAVE,:DT_COMISSAO,:NF_NOME,:COD_CONVENIO,:COD_MESA,:COD_PARCELA,:FLG_PRECO, 
:LOCAL_DESEMB,:UF_DESEMB,:NRO_DI,:DT_DI,:COD_EXPORT,:COD_FABRIC,:TP_TRANS,:NFE_REF4,:VLR_IMPORT,:OBS_ADICIONAL,:FLG_PROCEDE,:ROMANEIO_NRO,:ROMANEIO_DATA,:TOKEN,:CODMARKET);
if (operacao = 2) then 
update MOVTO set 
FLG_CODMOV = :FLG_CODMOV,
DATA = :DATA, 
NOTA_FISCAL = :NOTA_FISCAL,
SERIE = :SERIE,
CUPOM_FISCAL = :CUPOM_FISCAL, 
NRO_ECF = :NRO_ECF, 
DATA_SAIDA = :DATA_SAIDA,
COD_CLI = :COD_CLI, 
COD_FOR = :COD_FOR,
COD_FUNC = :COD_FUNC,
COD_TRIB = :COD_TRIB,
COD_END_CLI = :COD_END_CLI,
VLR_DESC = :VLR_DESC,
VLR_ACRES = :VLR_ACRES,
VLR_FRETE = :VLR_FRETE,
PORC_FRETE = :PORC_FRETE,
VLR_TOTAL = :VLR_TOTAL,
TOTAL_NF = :TOTAL_NF,
TIPO_RECEB = :TIPO_RECEB,
OBSERV1 = :OBSERV1,
OBSERV2 = :OBSERV2,
OBSERV3 = :OBSERV3,
TRANS_NOME = :TRANS_NOME,
TRANS_END = :TRANS_END,
TRANS_CIDADE = :TRANS_CIDADE,
TRANS_CIDADEUF = :TRANS_CIDADEUF,
TRANS_PLACA = :TRANS_PLACA,
TRANS_PLACAUF = :TRANS_PLACAUF,
TRANS_FRETE = :TRANS_FRETE,
TRANS_CNPJ_CPF = :TRANS_CNPJ_CPF,
TRANS_IE_RG = :TRANS_IE_RG,
CODREC_DEVOLUCAO = :CODREC_DEVOLUCAO,
COD_CAIXA = :COD_CAIXA,
FLG_CANCEL = :FLG_CANCEL,
MOTIVO_CANCEL = :MOTIVO_CANCEL,
NF_DATA = :NF_DATA,
NF_DATA_SAIDA = :NF_DATA_SAIDA,
NF_HORA = :NF_HORA,
NF_CPF = :NF_CPF,
PLACA = :PLACA,
DATA_ENTREGA = :DATA_ENTREGA,
FLG_ABERTO = :FLG_ABERTO,
VLR_DINH = :VLR_DINH,
VLR_CHVISTA = :VLR_CHVISTA,
VLR_CHPRE = :VLR_CHPRE,
VLR_CARTAO = :VLR_CARTAO,
NFE_NRO = :NFE_NRO,
NFE_STATUS = :NFE_STATUS,
NFE_CAMINHO = :NFE_CAMINHO,
NFE_CHAVE = :NFE_CHAVE,
NFE_OBSERV = :NFE_OBSERV,
VLR_DEBITO = :VLR_DEBITO,
VLR_PRAZO = :VLR_PRAZO,
VLR_OUTROS = :VLR_OUTROS,
COD_EMPRESA = :COD_EMPRESA,
NOME_VEICULO = :NOME_VEICULO,
VOL_QUANT = :VOL_QUANT,
VOL_ESPECIE = :VOL_ESPECIE,
VOL_MARCA = :VOL_MARCA,
VOL_NRO = :VOL_NRO,
VOL_BRUTO = :VOL_BRUTO,
VOL_LIQUIDO = :VOL_LIQUIDO,
NFE_REF1 = :NFE_REF1,
NFE_REF2 = :NFE_REF2,
NFE_REF3 = :NFE_REF3,
COD_MAO_OBRA = :COD_MAO_OBRA,
SAT_NRO = :SAT_NRO,
SAT_STATUS = :SAT_STATUS,
SAT_CAMINHO = :SAT_CAMINHO,
SAT_CHAVE = :SAT_CHAVE,
DT_COMISSAO = :DT_COMISSAO,
NF_NOME = :NF_NOME,
COD_CONVENIO = :COD_CONVENIO,
COD_MESA = :COD_MESA,
COD_PARCELA = :COD_PARCELA,
FLG_PRECO = :FLG_PRECO,
LOCAL_DESEMB  = :LOCAL_DESEMB,
UF_DESEMB = :UF_DESEMB, 
NRO_DI = :NRO_DI,
DT_DI = :DT_DI,
COD_EXPORT = :COD_EXPORT,
COD_FABRIC = :COD_FABRIC,
TP_TRANS = :TP_TRANS,
NFE_REF4 = :NFE_REF4,
VLR_IMPORT = :VLR_IMPORT,
OBS_ADICIONAL = :OBS_ADICIONAL,
FLG_PROCEDE = :FLG_PROCEDE,
ROMANEIO_NRO = :ROMANEIO_NRO,
ROMANEIO_DATA = :ROMANEIO_DATA,
TOKEN = :TOKEN,
CODMARKET = :CODMARKET
where (CODIGO = :CODIGO);
if (operacao = 3) then
delete from MOVTO
where (CODIGO = :CODIGO);
suspend;
end

^

ALTER TABLE MOVIT
ADD OBS_ADICIONAL BLOB SUB_TYPE 1 SEGMENT SIZE 4096

^

ALTER TABLE END_CLI
ADD CONSTRAINT FK_END_CLI_1
FOREIGN KEY (COD_CLI)
REFERENCES CLIENTE(CODIGO)
ON DELETE CASCADE

^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0000','CONFIGURACOES','PRINCIPAL','VALIDADE','MOSTRAR PRODUTOS A (X) DIAS DO VENCIMENTO AO ABRIR O SISTEMA','0','','N')

^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','VENDAS','SAIDAS','CONSULTA','CONSULTAR VENDAS SEPARADAS POR EMPRESA','SIM','SIM;NAO','N')

^

CREATE TABLE TELAS_ACESSO (
    "INDEX"        VARCHAR(10),
    MENU           VARCHAR(30),
    MENU_PAI       VARCHAR(30),
    COD_FUNC       VARCHAR(30),
    NV_FUNC        VARCHAR(30),
    INCLUIR        VARCHAR(30),
    ALTERAR        VARCHAR(30),
    EXCLUIR        VARCHAR(30),
    CONSULTAR      VARCHAR(30),
    IMPRIMIR       VARCHAR(30),
    MENU_NOME      VARCHAR(40),
    NIVEL_CLIENTE  VARCHAR(30),
    ORDEM          INTEGER
);

^

delete from favoritos

^

CREATE TABLE STATUS_OS (
    CODIGO       INTEGER NOT NULL,
    STATUS       VARCHAR(30),
    COR          INTEGER,
    FLG_GRAFICO  CHAR(1) DEFAULT 'S'
);

^

ALTER TABLE STATUS_OS ADD CONSTRAINT PK_STATUS_OS PRIMARY KEY (CODIGO);

^

create or alter procedure P_STATUS_OS (
    OPERACAO integer,
    CODIGO integer,
    STATUS varchar(30),
    COR integer,
    FLG_GRAFICO char(1))
as
begin
  if (operacao = 1) then
     insert into status_os (CODIGO,STATUS,COR, FLG_GRAFICO)
     values (:CODIGO,:STATUS,:COR, :FLG_GRAFICO);

  if (operacao = 2) then
     update status_os set
     STATUS = :STATUS,
     COR = :COR,
     FLG_GRAFICO = :FLG_GRAFICO
     where (CODIGO = :CODIGO);

  if (operacao = 3) then
     delete from status_os
     where (CODIGO = :CODIGO);

  suspend;
end

^

CREATE OR ALTER TRIGGER TRG_STATUS_OS FOR STATUS_OS
ACTIVE BEFORE INSERT POSITION 0
AS
declare variable cod integer;
begin
  select max(CODIGO) from STATUS_OS into :cod;

  if (cod is null) then cod = 0;

  new.codigo = cod + 1;
end

^
ALTER TABLE MOVTO_OS
  ADD COD_STATUS     INTEGER

^
ALTER TABLE MOVTO_OS ADD CONSTRAINT FK_COD_STATUS FOREIGN KEY (COD_STATUS) REFERENCES STATUS_OS (CODIGO);

^

create or alter procedure P_MOVTO_OS (
    OPERACAO integer,
    CODIGO integer,
    CODMOV integer,
    NRO_OS integer,
    DATA_SAIDA date,
    MARCA varchar(60),
    MODELO varchar(60),
    ESNHEX varchar(60),
    FLG_BATERIA char(1),
    FLG_MESA char(1),
    FLG_CHIP char(1),
    FLG_CARTAO char(1),
    FLG_OPERADORA char(1),
    FLG_ESTADO char(1),
    GARANTIA integer,
    OBSERVACAO varchar(100),
    STATUS varchar(20),
    COD_PROD1 integer,
    COD_PROD2 integer,
    COD_PROD3 integer,
    FOTO1 varchar(200),
    FOTO2 varchar(200),
    FOTO3 varchar(200),
    FOTO4 varchar(200),
    FOTO5 varchar(200),
    COD_TECNICO integer,
    FOTO6 varchar(200),
    FOTO7 varchar(200),
    COD_STATUS integer)
as
begin
  if (operacao = 1) then
insert into MOVTO_OS (CODIGO,CODMOV,NRO_OS,DATA_SAIDA,MARCA,MODELO,ESNHEX,FLG_BATERIA,FLG_MESA,FLG_CHIP,FLG_CARTAO,FLG_OPERADORA,FLG_ESTADO,GARANTIA,OBSERVACAO,STATUS,COD_PROD1,
COD_PROD2,COD_PROD3,FOTO1,FOTO2,FOTO3,FOTO4,FOTO5,COD_TECNICO,FOTO6,FOTO7, COD_STATUS)
  values (:CODIGO,:CODMOV,:NRO_OS,:DATA_SAIDA,:MARCA,:MODELO,:ESNHEX,:FLG_BATERIA,:FLG_MESA,:FLG_CHIP,:FLG_CARTAO,:FLG_OPERADORA,:FLG_ESTADO,:GARANTIA,:OBSERVACAO,:STATUS,
:cod_prod1,:cod_prod2,:COD_PROD3,:FOTO1,:FOTO2,:FOTO3,:FOTO4,:FOTO5,:COD_TECNICO,:FOTO6,:FOTO7, :COD_STATUS);
 if (operacao = 2) then
 update MOVTO_OS set 
 CODMOV = :CODMOV, 
 NRO_OS = :NRO_OS,   
 DATA_SAIDA = :DATA_SAIDA,  
 MARCA = :MARCA, 
 MODELO = :MODELO,  
 ESNHEX = :ESNHEX, 
 FLG_BATERIA = :FLG_BATERIA, 
 FLG_MESA = :FLG_MESA, 
 FLG_CHIP = :FLG_CHIP,  
 FLG_CARTAO = :FLG_CARTAO, 
 FLG_OPERADORA = :FLG_OPERADORA, 
 FLG_ESTADO = :FLG_ESTADO, 
 GARANTIA = :GARANTIA, 
 OBSERVACAO = :OBSERVACAO, 
 STATUS = :STATUS, 
 COD_PROD1 = :cod_prod1, 
 COD_PROD2 = :cod_prod2, 
 COD_PROD3 = :cod_prod3, 
 FOTO1 = :FOTO1, 
 FOTO2 = :FOTO2, 
 FOTO3 = :FOTO3, 
 FOTO4 = :FOTO4, 
 FOTO5 = :FOTO5, 
 COD_TECNICO = :COD_TECNICO, 
 FOTO6 = :FOTO6, 
 FOTO7 = :FOTO7,
 COD_STATUS = :COD_STATUS
    WHERE (CODIGO = :CODIGO);
  if (operacao = 3) then
     delete from MOVTO_OS
     where (CODIGO = :CODIGO);
  suspend;
end

^
Insert INTO STATUS_OS (CODIGO, STATUS, COR)
Values(1,'Todos',536870912)
^
Insert INTO STATUS_OS (CODIGO, STATUS, COR)
Values(0,'Em aberto',536870912)
^
Insert INTO STATUS_OS (CODIGO, STATUS, COR)
Values(0,'Retirado',536870912)
^
Insert INTO STATUS_OS (CODIGO, STATUS, COR)
Values(0,'Orçamento',536870912)
^
Insert INTO STATUS_OS (CODIGO, STATUS, COR)
Values(0,'Pronto',536870912)

^
update MOVTO_OS set cod_status = 2 where status = 'Em aberto'
^
update MOVTO_OS set cod_status = 3 where status = 'Retirado'
^
update MOVTO_OS set cod_status = 4 where status = 'Orçamento'
^
update MOVTO_OS set cod_status = 5 where status = 'Pronto'
^

ALTER TABLE MOVTO
  ADD FLG_EXC CHAR(1)

^

create or alter procedure P_MOVTO (
    OPERACAO integer,
    CODIGO integer,
    FLG_CODMOV integer,
    DATA date,
    NOTA_FISCAL integer,
    SERIE integer,
    CUPOM_FISCAL integer,
    NRO_ECF integer,
    DATA_SAIDA date,
    COD_CLI integer,
    COD_FOR integer,
    COD_FUNC integer,
    COD_TRIB integer,
    COD_END_CLI integer,
    VLR_DESC numeric(15,2),
    VLR_ACRES numeric(15,2),
    VLR_FRETE numeric(15,2),
    PORC_FRETE numeric(15,3),
    VLR_TOTAL numeric(15,2),
    TOTAL_NF numeric(15,2),
    TIPO_RECEB integer,
    OBSERV1 varchar(400),
    OBSERV2 varchar(100),
    OBSERV3 varchar(100),
    TRANS_NOME varchar(60),
    TRANS_END varchar(60),
    TRANS_CIDADE varchar(60),
    TRANS_CIDADEUF varchar(2),
    TRANS_PLACA varchar(10),
    TRANS_PLACAUF varchar(2),
    TRANS_FRETE integer,
    TRANS_CNPJ_CPF varchar(20),
    TRANS_IE_RG varchar(20),
    CODREC_DEVOLUCAO integer,
    COD_CAIXA integer,
    FLG_CANCEL char(1),
    MOTIVO_CANCEL varchar(60),
    NF_DATA date,
    NF_DATA_SAIDA date,
    NF_HORA time,
    NF_CPF varchar(20),
    PLACA varchar(10),
    DATA_ENTREGA date,
    FLG_ABERTO char(1),
    VLR_DINH numeric(15,2),
    VLR_CHVISTA numeric(15,2),
    VLR_CHPRE numeric(15,2),
    VLR_CARTAO numeric(15,2),
    NFE_NRO integer,
    NFE_STATUS varchar(60),
    NFE_CAMINHO varchar(60),
    NFE_CHAVE varchar(60),
    NFE_OBSERV varchar(60),
    VLR_DEBITO numeric(15,2),
    VLR_PRAZO numeric(15,2),
    VLR_OUTROS numeric(15,2),
    COD_EMPRESA integer,
    NOME_VEICULO varchar(400),
    VOL_QUANT varchar(20),
    VOL_ESPECIE varchar(20),
    VOL_MARCA varchar(20),
    VOL_NRO varchar(20),
    VOL_BRUTO varchar(20),
    VOL_LIQUIDO varchar(20),
    NFE_REF1 varchar(60),
    NFE_REF2 varchar(60),
    NFE_REF3 varchar(60),
    COD_MAO_OBRA integer,
    SAT_NRO integer,
    SAT_STATUS varchar(20),
    SAT_CAMINHO varchar(60),
    SAT_CHAVE varchar(60),
    DT_COMISSAO date,
    NF_NOME varchar(60),
    COD_CONVENIO integer,
    COD_MESA integer,
    COD_PARCELA integer,
    FLG_PRECO char(1),
    LOCAL_DESEMB varchar(200),
    UF_DESEMB varchar(2),
    NRO_DI varchar(20),
    DT_DI date,
    COD_EXPORT integer,
    COD_FABRIC integer,
    TP_TRANS integer,
    NFE_REF4 varchar(60),
    VLR_IMPORT numeric(15,2),
    OBS_ADICIONAL varchar(3000),
    FLG_PROCEDE char(1),
    ROMANEIO_NRO integer,
    ROMANEIO_DATA date,
    TOKEN varchar(256),
    CODMARKET integer,
    VLR_PIX numeric(15,2),
    NFE_DADOS blob sub_type 0 segment size 80,
    FLG_EXC char(1))
as
begin
if (operacao = 1) then
insert into MOVTO (CODIGO,FLG_CODMOV,DATA,NOTA_FISCAL,SERIE,CUPOM_FISCAL,NRO_ECF,DATA_SAIDA,COD_CLI,COD_FOR,COD_FUNC,COD_TRIB,COD_END_CLI,VLR_DESC,VLR_ACRES,VLR_FRETE,PORC_FRETE,
VLR_TOTAL,TOTAL_NF,TIPO_RECEB,OBSERV1,OBSERV2,OBSERV3,TRANS_NOME,TRANS_END,TRANS_CIDADE,TRANS_CIDADEUF,TRANS_PLACA,TRANS_PLACAUF,TRANS_FRETE,TRANS_CNPJ_CPF,TRANS_IE_RG,CODREC_DEVOLUCAO,
COD_CAIXA,FLG_CANCEL,MOTIVO_CANCEL,NF_DATA,NF_DATA_SAIDA,NF_HORA,NF_CPF,PLACA,DATA_ENTREGA,FLG_ABERTO,VLR_DINH,VLR_CHVISTA,VLR_CHPRE,VLR_CARTAO,NFE_NRO,NFE_STATUS,NFE_CAMINHO,
NFE_CHAVE,NFE_OBSERV,VLR_DEBITO,VLR_PRAZO,VLR_OUTROS,COD_EMPRESA,NOME_VEICULO,VOL_QUANT,VOL_ESPECIE,VOL_MARCA,VOL_NRO,VOL_BRUTO,VOL_LIQUIDO,NFE_REF1,NFE_REF2,NFE_REF3,COD_MAO_OBRA,SAT_NRO,SAT_STATUS,SAT_CAMINHO,SAT_CHAVE,
DT_COMISSAO,NF_NOME,COD_CONVENIO,COD_MESA,COD_PARCELA,FLG_PRECO,LOCAL_DESEMB,UF_DESEMB,NRO_DI,DT_DI,COD_EXPORT,COD_FABRIC,TP_TRANS,NFE_REF4,VLR_IMPORT,OBS_ADICIONAL,FLG_PROCEDE,ROMANEIO_NRO,ROMANEIO_DATA,TOKEN, CODMARKET, VLR_PIX, NFE_DADOS, FLG_EXC)
values (:CODIGO,:FLG_CODMOV,:DATA,:NOTA_FISCAL,:SERIE,:CUPOM_FISCAL,:NRO_ECF,:DATA_SAIDA,:COD_CLI,:COD_FOR,:COD_FUNC,:COD_TRIB,:COD_END_CLI,:VLR_DESC,:VLR_ACRES,:VLR_FRETE,
:PORC_FRETE,:VLR_TOTAL,:TOTAL_NF,:TIPO_RECEB,:OBSERV1,:OBSERV2,:OBSERV3,:TRANS_NOME,:TRANS_END,:TRANS_CIDADE,:TRANS_CIDADEUF,:TRANS_PLACA,:TRANS_PLACAUF,:TRANS_FRETE,
:TRANS_CNPJ_CPF,:TRANS_IE_RG,:CODREC_DEVOLUCAO,:COD_CAIXA,:FLG_CANCEL,:MOTIVO_CANCEL,:NF_DATA,:NF_DATA_SAIDA,:NF_HORA,:NF_CPF,:PLACA,:DATA_ENTREGA,:FLG_ABERTO,
:VLR_DINH,:VLR_CHVISTA,:VLR_CHPRE,:VLR_CARTAO,:NFE_NRO,:NFE_STATUS,:NFE_CAMINHO,:NFE_CHAVE,:NFE_OBSERV,:VLR_DEBITO,:VLR_PRAZO,:VLR_OUTROS,:COD_EMPRESA,:NOME_VEICULO,
:VOL_QUANT,:VOL_ESPECIE,:VOL_MARCA,:VOL_NRO,:VOL_BRUTO,:VOL_LIQUIDO,:NFE_REF1,:NFE_REF2,:NFE_REF3,:COD_MAO_OBRA,:SAT_NRO,:SAT_STATUS,:SAT_CAMINHO,:SAT_CHAVE,:DT_COMISSAO,:NF_NOME,:COD_CONVENIO,:COD_MESA,:COD_PARCELA,:FLG_PRECO,
:LOCAL_DESEMB,:UF_DESEMB,:NRO_DI,:DT_DI,:COD_EXPORT,:COD_FABRIC,:TP_TRANS,:NFE_REF4,:VLR_IMPORT,:OBS_ADICIONAL,:FLG_PROCEDE,:ROMANEIO_NRO,:ROMANEIO_DATA,:TOKEN,:CODMARKET,:VLR_PIX, :NFE_DADOS, :FLG_EXC);

if (operacao = 2) then
update MOVTO set
FLG_CODMOV = :FLG_CODMOV,
DATA = :DATA,
NOTA_FISCAL = :NOTA_FISCAL,
SERIE = :SERIE,
CUPOM_FISCAL = :CUPOM_FISCAL,
NRO_ECF = :NRO_ECF,
DATA_SAIDA = :DATA_SAIDA,
COD_CLI = :COD_CLI,
COD_FOR = :COD_FOR,
COD_FUNC = :COD_FUNC,
COD_TRIB = :COD_TRIB,
COD_END_CLI = :COD_END_CLI,
VLR_DESC = :VLR_DESC,
VLR_ACRES = :VLR_ACRES,
VLR_FRETE = :VLR_FRETE,
PORC_FRETE = :PORC_FRETE,
VLR_TOTAL = :VLR_TOTAL,
TOTAL_NF = :TOTAL_NF,
TIPO_RECEB = :TIPO_RECEB,
OBSERV1 = :OBSERV1,
OBSERV2 = :OBSERV2,
OBSERV3 = :OBSERV3,
TRANS_NOME = :TRANS_NOME,
TRANS_END = :TRANS_END,
TRANS_CIDADE = :TRANS_CIDADE,
TRANS_CIDADEUF = :TRANS_CIDADEUF,
TRANS_PLACA = :TRANS_PLACA,
TRANS_PLACAUF = :TRANS_PLACAUF,
TRANS_FRETE = :TRANS_FRETE,
TRANS_CNPJ_CPF = :TRANS_CNPJ_CPF,
TRANS_IE_RG = :TRANS_IE_RG,
CODREC_DEVOLUCAO = :CODREC_DEVOLUCAO,
COD_CAIXA = :COD_CAIXA,
FLG_CANCEL = :FLG_CANCEL,
MOTIVO_CANCEL = :MOTIVO_CANCEL,
NF_DATA = :NF_DATA,
NF_DATA_SAIDA = :NF_DATA_SAIDA,
NF_HORA = :NF_HORA,
NF_CPF = :NF_CPF,
PLACA = :PLACA,
DATA_ENTREGA = :DATA_ENTREGA,
FLG_ABERTO = :FLG_ABERTO,
VLR_DINH = :VLR_DINH,
VLR_CHVISTA = :VLR_CHVISTA,
VLR_CHPRE = :VLR_CHPRE,
VLR_CARTAO = :VLR_CARTAO,
NFE_NRO = :NFE_NRO,
NFE_STATUS = :NFE_STATUS,
NFE_CAMINHO = :NFE_CAMINHO,
NFE_CHAVE = :NFE_CHAVE,
NFE_OBSERV = :NFE_OBSERV,
VLR_DEBITO = :VLR_DEBITO,
VLR_PRAZO = :VLR_PRAZO,
VLR_OUTROS = :VLR_OUTROS,
COD_EMPRESA = :COD_EMPRESA,
NOME_VEICULO = :NOME_VEICULO,
VOL_QUANT = :VOL_QUANT,
VOL_ESPECIE = :VOL_ESPECIE,
VOL_MARCA = :VOL_MARCA,
VOL_NRO = :VOL_NRO,
VOL_BRUTO = :VOL_BRUTO,
VOL_LIQUIDO = :VOL_LIQUIDO,
NFE_REF1 = :NFE_REF1,
NFE_REF2 = :NFE_REF2,
NFE_REF3 = :NFE_REF3,
COD_MAO_OBRA = :COD_MAO_OBRA,
SAT_NRO = :SAT_NRO,
SAT_STATUS = :SAT_STATUS,
SAT_CAMINHO = :SAT_CAMINHO,
SAT_CHAVE = :SAT_CHAVE,
DT_COMISSAO = :DT_COMISSAO,
NF_NOME = :NF_NOME,
COD_CONVENIO = :COD_CONVENIO,
COD_MESA = :COD_MESA,
COD_PARCELA = :COD_PARCELA,
FLG_PRECO = :FLG_PRECO,
LOCAL_DESEMB  = :LOCAL_DESEMB,
UF_DESEMB = :UF_DESEMB,
NRO_DI = :NRO_DI,
DT_DI = :DT_DI,
COD_EXPORT = :COD_EXPORT,
COD_FABRIC = :COD_FABRIC,
TP_TRANS = :TP_TRANS,
NFE_REF4 = :NFE_REF4,
VLR_IMPORT = :VLR_IMPORT,
OBS_ADICIONAL = :OBS_ADICIONAL,
FLG_PROCEDE = :FLG_PROCEDE,
ROMANEIO_NRO = :ROMANEIO_NRO,
ROMANEIO_DATA = :ROMANEIO_DATA,
TOKEN = :TOKEN,
CODMARKET = :CODMARKET,
VLR_PIX = :VLR_PIX,
NFE_DADOS = :NFE_DADOS,
FLG_EXC = :FLG_EXC
where (CODIGO = :CODIGO);
if (operacao = 3) then
delete from MOVTO
where (CODIGO = :CODIGO);
suspend;
end

^

ALTER TABLE EMPRESA
ADD OBS_CFE VARCHAR(300)

^

ALTER TABLE CAIXA_OUTROS
ADD VLR_PIX NUMERIC(15,2)

^

create or alter procedure P_CAIXA_OUTROS (
    OPERACAO integer,
    CODIGO integer,
    FLG_E_S char(1),
    DATA date,
    DESCRICAO varchar(60),
    VALOR numeric(15,2),
    COD_CAIXA integer,
    COD_FUNC integer,
    COD_DESP integer,
    VLR_DINH numeric(15,2),
    VLR_CHVISTA numeric(15,2),
    VLR_CHPRE numeric(15,2),
    DT_COMISSAO date,
    VLR_CARTAO numeric(15,2),
    VLR_PIX numeric(15,2))
as
begin
if (operacao = 1) then
insert into caixa_outros (codigo,flg_e_s,data,descricao,valor,cod_caixa,cod_func,cod_desp,vlr_dinh,vlr_chvista,vlr_chpre,dt_comissao,vlr_cartao,vlr_pix)
values (:codigo,:flg_e_s,:data,:descricao,:valor,:cod_caixa,:cod_func,:cod_desp,:vlr_dinh,:vlr_chvista,:vlr_chpre,:dt_comissao,:vlr_cartao,:vlr_pix);
if (operacao = 2) then
update caixa_outros set
flg_e_s = :flg_e_s,
data = :data,
descricao = :descricao,
valor = :valor,
cod_caixa = :cod_caixa,
cod_func = :cod_func,
cod_desp = :cod_desp,
vlr_dinh = :vlr_dinh,
vlr_chvista = :vlr_chvista,
vlr_chpre = :vlr_chpre,
dt_comissao = :dt_comissao,
vlr_cartao = :vlr_cartao,
vlr_pix = :vlr_pix
where (codigo = :codigo);
if (operacao = 3) then
delete from caixa_outros
where (codigo = :codigo);
suspend;
end

^

update configuracao set valor = 'NAO'
where (campo = 'MEIA_NOTA') and (cod_tela = 'COMPRA')

^

update RDB$FIELDS set
RDB$FIELD_LENGTH = 60,
RDB$CHARACTER_LENGTH = 60
where RDB$FIELD_NAME = 'RDB$241'

^

CREATE OR ALTER procedure P_PROD_FOR (
    OPERACAO integer,
    CODIGO integer,
    COD_FOR integer,
    COD_PROD integer,
    COD_FORPROD varchar(60))
as
begin
  if (operacao = 1) then
     insert into PROD_FOR (CODIGO,COD_FOR,COD_PROD,COD_FORPROD)
     values (:CODIGO,:COD_FOR,:COD_PROD,:COD_FORPROD);

  if (operacao = 2) then
     update PROD_FOR set
     COD_FOR = :COD_FOR,
     COD_PROD = :COD_PROD,
     COD_FORPROD = :COD_FORPROD
     where (CODIGO = :CODIGO);

  if (operacao = 3) then
     delete from PROD_FOR
     where (CODIGO = :CODIGO);

  suspend;
end

^

ALTER TABLE MOVIT_AUX 
   ADD NOME_PROD VARCHAR(100)

^

create or alter procedure P_MOVIT_AUX (
    OPERACAO integer,
    CODIGO integer,
    CODMOV integer,
    COD_PROD integer,
    QUANT numeric(15,3),
    VALOR numeric(15,2),
    NOME_PC varchar(60),
    ITEM integer,
    VLR_UNIT numeric(15,4),
    UNIDADE varchar(10),
    VLR_DESC numeric(15,4),
    NOME_PROD VARCHAR(100))
as
begin 
if (operacao = 1) then 
insert into MOVIT_AUX (CODIGO, CODMOV, COD_PROD, QUANT, VALOR,NOME_PC,ITEM,VLR_UNIT,UNIDADE,VLR_DESC,NOME_PROD)
values (:CODIGO, :CODMOV, :COD_PROD, :QUANT, :VALOR,:NOME_PC,:ITEM,:VLR_UNIT,:UNIDADE,:VLR_DESC,:NOME_PROD);
if (operacao = 2) then  
update MOVIT_AUX set 
CODMOV = :CODMOV,
COD_PROD = :COD_PROD, 
QUANT = :QUANT, 
VALOR = :VALOR,
NOME_PC = :NOME_PC, 
ITEM = :ITEM, 
VLR_UNIT = :VLR_UNIT, 
UNIDADE = :UNIDADE,
VLR_DESC = :VLR_DESC,
NOME_PROD = :NOME_PROD
where (CODIGO = :CODIGO); 
if (operacao = 3) then 
delete from MOVIT_AUX 
where (CODIGO = :CODIGO); 
suspend; 
end

^

update RDB$FIELDS set
RDB$FIELD_LENGTH = 100,
RDB$CHARACTER_LENGTH = 100
where RDB$FIELD_NAME = 'RDB$2491'

^

create or alter procedure P_FINANC_MOVTO (
    OPERACAO integer,
    COD_CONTA integer,
    CODIGO integer,
    DATA date,
    FLG_E_S char(1),
    VALOR numeric(15,2),
    COD_CCUSTO integer,
    NRO_CHEQUE integer,
    HISTORICO varchar(100),
    COD_CONTA_MOVTO integer,
    COD_MOVTO integer,
    DATA_VENCTO date,
    DATA_PAGTO date,
    COD_CHEQUE integer,
    COD_CARTAO integer,
    COD_REC integer,
    COD_PAG integer,
    COD_ORDEM integer,
    COD_CAIXA integer,
    COD_MOV integer,
    COD_EMPRESA integer)
as
begin 
IF (OPERACAO = 1) THEN 
INSERT INTO FINANC_MOVTO 
VALUES(:COD_CONTA,:CODIGO,:DATA,:FLG_E_S,:VALOR,:COD_CCUSTO,:NRO_CHEQUE,:HISTORICO,:COD_CONTA_MOVTO,:COD_MOVTO,:DATA_VENCTO,:DATA_PAGTO,:COD_CHEQUE,:COD_CARTAO,:COD_REC,:COD_PAG,:COD_ORDEM,:COD_CAIXA,:COD_MOV,:COD_EMPRESA);
IF (OPERACAO = 2) THEN 
UPDATE FINANC_MOVTO SET
DATA = :DATA,
FLG_E_S = :FLG_E_S,
VALOR = :VALOR,
COD_CCUSTO = :COD_CCUSTO,
NRO_CHEQUE = :NRO_CHEQUE,
HISTORICO = :HISTORICO,
COD_CONTA_MOVTO = :COD_CONTA_MOVTO,
COD_MOVTO = :COD_MOVTO,
DATA_VENCTO = :DATA_VENCTO,
DATA_PAGTO = :DATA_PAGTO,
COD_CHEQUE = :COD_CHEQUE,
COD_CARTAO = :COD_CARTAO,
COD_REC = :COD_REC, 
COD_PAG = :COD_PAG,
COD_ORDEM = :COD_ORDEM,
COD_CAIXA = :COD_CAIXA,
COD_MOV = :COD_MOV,
COD_EMPRESA = :COD_EMPRESA
WHERE (COD_CONTA = :COD_CONTA)
AND (CODIGO = :CODIGO);
IF (OPERACAO = 3) THEN 
DELETE FROM FINANC_MOVTO
WHERE (COD_CONTA = :COD_CONTA)
AND (CODIGO = :CODIGO);
suspend;
end

^


alter table CLIENTE
  ADD FLG_REGIME char(1);

^

update cliente set FLG_REGIME = 'S'

^

create or alter procedure P_CLIENTE (
    OPERACAO integer,
    CODIGO integer,
    NOME varchar(60),
    FANTASIA varchar(60),
    COD_END integer,
    FONE varchar(20),
    FAX varchar(20),
    CELULAR varchar(20),
    CX_POSTAL varchar(10),
    E_MAIL varchar(60),
    CONTATO varchar(20),
    TIPO_PESSOA char(1),
    CNPJ_CPF varchar(20),
    IE_RG varchar(20),
    DT_CADASTRO date,
    DT_INATIVO date,
    DT_NASC date,
    DT_BLOQUEIO date,
    FLG_BLOQUEIO varchar(20),
    OBS_BLOQUEIO varchar(200),
    OBSERVACAO1 varchar(100),
    OBSERVACAO2 varchar(100),
    RESP_NOME varchar(60),
    RESP_BAIRRO varchar(60),
    RESP_ENDERECO varchar(60),
    RESP_CODCID integer,
    RESP_CEP varchar(10),
    RESP_FONE varchar(20),
    RESP_RG varchar(20),
    RESP_CPF varchar(20),
    RESP_DTNASC date,
    RESP_OBSERV varchar(100),
    PROFISSAO varchar(60),
    LIMITE numeric(15,2),
    OBS_COBRANCA varchar(200),
    FLG_RECEBER char(1),
    COD_EMPRESA integer,
    FLG_LIGAR char(1),
    COD_FUNC integer,
    FOTO varchar(200),
    FLG_FECHAMENTO integer,
    DIAS_PAGTO integer,
    FLG_CLASSIFICA char(1),
    TIPO_FECHAMENTO char(1),
    FLG_JUROS char(1),
    E_MAIL_NFE varchar(60),
    DATA_COBRANCA date,
    DATA_VISITA date,
    COD_CONVENIO integer,
    SENHA varchar(20),
    COD_REGIAO integer,
    FLG_PRAZO varchar(1),
    FLG_NFP char(1),
    SITE_SYNC char(1),
    SITE_COD integer,
    OBS_ADICIONAL varchar(9999),
    FLG_COMISSAO char(1),
    PORC_DESC numeric(15,2),
    FLG_REGIME char(1))
as
begin 
if (operacao = 1) then 
insert into CLIENTE (CODIGO,NOME,FANTASIA,COD_END,FONE,FAX,CELULAR,CX_POSTAL,E_MAIL,CONTATO,TIPO_PESSOA,CNPJ_CPF,IE_RG,DT_CADASTRO, 
DT_INATIVO,DT_NASC,DT_BLOQUEIO,FLG_BLOQUEIO,OBS_BLOQUEIO,OBSERVACAO1,OBSERVACAO2,RESP_NOME,RESP_BAIRRO,RESP_ENDERECO,RESP_CODCID,RESP_CEP,RESP_FONE,RESP_RG,RESP_CPF, 
RESP_DTNASC,RESP_OBSERV,PROFISSAO,LIMITE,OBS_COBRANCA,FLG_RECEBER,COD_EMPRESA,FLG_LIGAR,COD_FUNC,FOTO,FLG_FECHAMENTO,DIAS_PAGTO,FLG_CLASSIFICA,TIPO_FECHAMENTO,FLG_JUROS,E_MAIL_NFE, 
DATA_COBRANCA,DATA_VISITA,COD_CONVENIO,SENHA,COD_REGIAO,FLG_PRAZO,FLG_NFP,SITE_SYNC,SITE_COD,OBS_ADICIONAL,FLG_COMISSAO,PORC_DESC, FLG_REGIME)
values (:CODIGO,:NOME,:FANTASIA,:COD_END,:FONE,:FAX,:CELULAR,:CX_POSTAL,:E_MAIL,:CONTATO,:TIPO_PESSOA,:CNPJ_CPF,:IE_RG,:DT_CADASTRO,:DT_INATIVO,:DT_NASC,:DT_BLOQUEIO, 
:FLG_BLOQUEIO,:OBS_BLOQUEIO,:OBSERVACAO1,:OBSERVACAO2,:RESP_NOME,:RESP_BAIRRO,:RESP_ENDERECO,:RESP_CODCID,:RESP_CEP,:RESP_FONE,:RESP_RG,:RESP_CPF,:RESP_DTNASC, 
:RESP_OBSERV,:PROFISSAO,:LIMITE,:OBS_COBRANCA,:FLG_RECEBER,:COD_EMPRESA,:FLG_LIGAR,:COD_FUNC,:FOTO,:FLG_FECHAMENTO,:DIAS_PAGTO,:FLG_CLASSIFICA,:TIPO_FECHAMENTO,:FLG_JUROS,:E_MAIL_NFE, 
:DATA_COBRANCA,:DATA_VISITA,:COD_CONVENIO,:SENHA,:COD_REGIAO,:FLG_PRAZO,:FLG_NFP,:SITE_SYNC,:SITE_COD,:OBS_ADICIONAL,:FLG_COMISSAO,:PORC_DESC, :FLG_REGIME);
if (operacao = 2) then  
update CLIENTE set 
NOME = :NOME,
FANTASIA = :FANTASIA, 
COD_END = :COD_END,
FONE = :FONE, 
FAX = :FAX, 
CELULAR = :CELULAR,
CX_POSTAL = :CX_POSTAL,  
E_MAIL = :E_MAIL,
CONTATO = :CONTATO, 
TIPO_PESSOA = :TIPO_PESSOA,
CNPJ_CPF = :CNPJ_CPF, 
IE_RG = :IE_RG, 
DT_CADASTRO = :DT_CADASTRO,
DT_INATIVO = :DT_INATIVO, 
DT_NASC = :DT_NASC,  
DT_BLOQUEIO = :DT_BLOQUEIO, 
FLG_BLOQUEIO = :FLG_BLOQUEIO, 
OBS_BLOQUEIO = :OBS_BLOQUEIO, 
OBSERVACAO1 = :OBSERVACAO1,  
OBSERVACAO2 = :OBSERVACAO2, 
RESP_NOME = :RESP_NOME, 
RESP_BAIRRO = :RESP_BAIRRO, 
RESP_ENDERECO = :RESP_ENDERECO, 
RESP_CODCID = :RESP_CODCID, 
RESP_CEP = :RESP_CEP, 
RESP_FONE = :RESP_FONE,
RESP_RG = :RESP_RG,   
RESP_CPF = :RESP_CPF,  
RESP_DTNASC = :RESP_DTNASC, 
RESP_OBSERV = :RESP_OBSERV, 
PROFISSAO = :PROFISSAO, 
LIMITE = :LIMITE, 
OBS_COBRANCA = :OBS_COBRANCA,  
FLG_RECEBER = :FLG_RECEBER, 
COD_EMPRESA = :COD_EMPRESA, 
FLG_LIGAR = :FLG_LIGAR, 
COD_FUNC = :COD_FUNC, 
FOTO = :FOTO, 
FLG_FECHAMENTO =:FLG_FECHAMENTO, 
DIAS_PAGTO = :DIAS_PAGTO, 
FLG_CLASSIFICA = :FLG_CLASSIFICA, 
TIPO_FECHAMENTO = :TIPO_FECHAMENTO, 
FLG_JUROS = :FLG_JUROS, 
E_MAIL_NFE = :E_MAIL_NFE, 
DATA_COBRANCA = :DATA_COBRANCA,
DATA_VISITA = :DATA_VISITA, 
COD_CONVENIO = :COD_CONVENIO,
SENHA = :SENHA,  
COD_REGIAO = :COD_REGIAO,
FLG_PRAZO = :FLG_PRAZO,
FLG_NFP = :FLG_NFP,
SITE_SYNC = :SITE_SYNC, 
SITE_COD  = :SITE_COD, 
OBS_ADICIONAL = :OBS_ADICIONAL,
FLG_COMISSAO = :FLG_COMISSAO,
PORC_DESC = :PORC_DESC,
FLG_REGIME = :FLG_REGIME
where (CODIGO = :CODIGO);
if (operacao = 3) then 
delete from CLIENTE 
where (CODIGO = :CODIGO); 
suspend;
end

^

alter table produto 
  ADD FLG_TRIBUTO char(1);

^

update produto set FLG_TRIBUTO = 'S';

^

create or alter procedure P_PRODUTO (
    OPERACAO integer,
    CODIGO integer,
    NOME varchar(60),
    COD_GRUPO integer,
    COD_FORNECEDOR integer,
    MARCA varchar(200),
    UNIDADE_ESTOQUE varchar(10),
    UNIDADE_CONVERSAO varchar(10),
    QTD_EMBALAGEM numeric(15,4),
    PORC_LUCRO_V numeric(15,2),
    PORC_LUCRO_P numeric(15,2),
    PORC_ICMS_ISS numeric(15,2),
    PORC_COMISSAO integer,
    COD_CST varchar(10),
    ESTOQUE_INICIAL numeric(15,3),
    ESTOQUE_MINIMO numeric(15,3),
    ESTOQUE_ATUAL numeric(15,3),
    ESTOQUE_FISCAL numeric(15,3),
    COD_TRIB integer,
    COD_TRIB_ENT integer,
    SIT_TRIB varchar(2),
    DT_CADASTRO date,
    FLG_ATIVADO char(1),
    FLG_ESTOQUE char(1),
    FLG_TIPO char(1),
    LOCALIZACAO varchar(60),
    OBSERVACAO varchar(100),
    OBSERVACAO2 varchar(100),
    DT_ALTERACAO date,
    TEMPO_REAL time,
    NCM varchar(20),
    COD_CSOSN integer,
    CONV_PRECO numeric(15,3),
    CST_PIS varchar(3),
    CST_COFINS varchar(3),
    COD_SUBGRUPO integer,
    COD_SUBSUBGRUPO integer,
    ESTOQUE1 numeric(15,3),
    ESTOQUE2 numeric(15,3),
    ESTOQUE3 numeric(15,3),
    ESTOQUE4 numeric(15,3),
    ESTOQUE5 numeric(15,3),
    PORC_PIS numeric(15,2),
    PORC_COFINS numeric(15,2),
    OBS_ADICIONAL varchar(3000),
    DT_VALIDADE date,
    PORC_IPI numeric(15,2),
    PORC_MVA numeric(15,2),
    PESO_BRUTO numeric(15,3),
    PESO_LIQUIDO numeric(15,3),
    FOTO varchar(200),
    ANEXO varchar(100),
    COD_ANP varchar(10),
    LOCALIZACAO2 varchar(60),
    ETIQUETA integer,
    COD_CEST varchar(7),
    COD_EMPRESA integer,
    PORC_DESC numeric(15,2),
    FLG_DESC char(1),
    ESTOQUE_MAXIMO numeric(15,3),
    ESTOQUE_DEMANDA_MEDIA numeric(15,3),
    ESTOQUE_TEMPO_RESUPRI numeric(15,3),
    ESTOQUE_INTERVALO_RESUPRI numeric(15,3),
    COD_DESP integer,
    COD_MARCA integer,
    FLG_SITE char(1),
    FLG_BALANCA char(1),
    SITE_COMPRIMENTO numeric(15,2),
    SITE_LARGURA numeric(15,2),
    SITE_ALTURA numeric(15,2),
    SITE_DESCRICAO varchar(9999),
    SITE_SYNC char(1),
    SITE_COD integer,
    PORC_REDBASE numeric(15,2),
    PONTOS numeric(15,4),
    LOCALIZACAO21 varchar(60),
    LOCALIZACAO22 varchar(60),
    LOCALIZACAO31 varchar(60),
    LOCALIZACAO32 varchar(60),
    LOCALIZACAO41 varchar(60),
    LOCALIZACAO42 varchar(60),
    LOCALIZACAO51 varchar(60),
    LOCALIZACAO52 varchar(60),
    PORC_FCP numeric(15,2),
    FLG_TRIBUTO char(1))
as
begin
if (OPERACAO = 1) then
insert into PRODUTO (CODIGO,NOME,COD_GRUPO,COD_FORNECEDOR,MARCA,UNIDADE_ESTOQUE,UNIDADE_CONVERSAO,QTD_EMBALAGEM,PORC_LUCRO_V,PORC_LUCRO_P,PORC_ICMS_ISS,PORC_COMISSAO,
COD_CST,ESTOQUE_INICIAL,ESTOQUE_MINIMO,ESTOQUE_ATUAL,ESTOQUE_FISCAL,COD_TRIB,COD_TRIB_ENT,SIT_TRIB,DT_CADASTRO,FLG_ATIVADO,FLG_ESTOQUE,FLG_TIPO,LOCALIZACAO,OBSERVACAO,
OBSERVACAO2,DT_ALTERACAO,TEMPO_REAL,NCM,COD_CSOSN,CONV_PRECO,CST_PIS,CST_COFINS,COD_SUBGRUPO,COD_SUBSUBGRUPO,ESTOQUE1,ESTOQUE2,ESTOQUE3,ESTOQUE4,ESTOQUE5,PORC_PIS,PORC_COFINS,
OBS_ADICIONAL,DT_VALIDADE,PORC_IPI,PORC_MVA,PESO_BRUTO,PESO_LIQUIDO,FOTO,ANEXO,COD_ANP,LOCALIZACAO2,ETIQUETA,COD_CEST,COD_EMPRESA,PORC_DESC,FLG_DESC,ESTOQUE_MAXIMO,ESTOQUE_DEMANDA_MEDIA,
ESTOQUE_TEMPO_RESUPRI,ESTOQUE_INTERVALO_RESUPRI,COD_DESP,COD_MARCA,FLG_SITE,FLG_BALANCA,SITE_COMPRIMENTO,SITE_LARGURA,SITE_ALTURA,SITE_DESCRICAO,SITE_SYNC,SITE_COD,PORC_REDBASE,PONTOS,
LOCALIZACAO21,LOCALIZACAO22,LOCALIZACAO31,LOCALIZACAO32,LOCALIZACAO41,LOCALIZACAO42,LOCALIZACAO51,LOCALIZACAO52, PORC_FCP, FLG_TRIBUTO)
values (:CODIGO,:NOME,:COD_GRUPO,:COD_FORNECEDOR,:MARCA,:UNIDADE_ESTOQUE,:UNIDADE_CONVERSAO,:QTD_EMBALAGEM,:PORC_LUCRO_V,:PORC_LUCRO_P,:PORC_ICMS_ISS,:PORC_COMISSAO,:COD_CST,:ESTOQUE_INICIAL,:ESTOQUE_MINIMO,
:ESTOQUE_ATUAL,:ESTOQUE_FISCAL,:COD_TRIB,:COD_TRIB_ENT,:SIT_TRIB,:DT_CADASTRO,:FLG_ATIVADO,:FLG_ESTOQUE,:FLG_TIPO,:LOCALIZACAO,:OBSERVACAO,:OBSERVACAO2,:DT_ALTERACAO,:TEMPO_REAL,:NCM,:COD_CSOSN, 
:CONV_PRECO,:CST_PIS,:CST_COFINS,:COD_SUBGRUPO,:COD_SUBSUBGRUPO,:ESTOQUE1,:ESTOQUE2,:ESTOQUE3,:ESTOQUE4,:ESTOQUE5,:PORC_PIS,:PORC_COFINS,:OBS_ADICIONAL,:DT_VALIDADE,:PORC_IPI,:PORC_MVA,:PESO_BRUTO, 
:PESO_LIQUIDO,:FOTO,:ANEXO,:COD_ANP,:LOCALIZACAO2,:ETIQUETA,:COD_CEST,
:COD_EMPRESA,:PORC_DESC,:FLG_DESC,:ESTOQUE_MAXIMO,:ESTOQUE_DEMANDA_MEDIA,:ESTOQUE_TEMPO_RESUPRI,:ESTOQUE_INTERVALO_RESUPRI,:COD_DESP,:COD_MARCA,:FLG_SITE,:FLG_BALANCA,
:SITE_COMPRIMENTO,:SITE_LARGURA,:SITE_ALTURA,:SITE_DESCRICAO,:SITE_SYNC,:SITE_COD,:PORC_REDBASE,:PONTOS,:LOCALIZACAO21,:LOCALIZACAO22,:LOCALIZACAO31,:LOCALIZACAO32,:LOCALIZACAO41, 
:LOCALIZACAO42,:LOCALIZACAO51,:LOCALIZACAO52,:PORC_FCP, :FLG_TRIBUTO);
if (OPERACAO = 2) then
update PRODUTO set
NOME = :NOME,
COD_GRUPO = :COD_GRUPO,
COD_FORNECEDOR = :COD_FORNECEDOR,
MARCA = :MARCA,
UNIDADE_ESTOQUE = :UNIDADE_ESTOQUE,
UNIDADE_CONVERSAO = :UNIDADE_CONVERSAO,
QTD_EMBALAGEM = :QTD_EMBALAGEM,
PORC_LUCRO_V = :PORC_LUCRO_V,
PORC_LUCRO_P = :PORC_LUCRO_P,
PORC_ICMS_ISS = :PORC_ICMS_ISS,
PORC_COMISSAO = :PORC_COMISSAO,
COD_CST = :COD_CST,
ESTOQUE_INICIAL = :ESTOQUE_INICIAL,
ESTOQUE_MINIMO = :ESTOQUE_MINIMO, 
ESTOQUE_ATUAL = :ESTOQUE_ATUAL,
ESTOQUE_FISCAL = :ESTOQUE_FISCAL, 
COD_TRIB = :COD_TRIB,
COD_TRIB_ENT = :COD_TRIB_ENT,
SIT_TRIB = :SIT_TRIB,
DT_CADASTRO = :DT_CADASTRO,
FLG_ATIVADO = :FLG_ATIVADO,
FLG_ESTOQUE = :FLG_ESTOQUE,
FLG_TIPO = :FLG_TIPO,
LOCALIZACAO = :LOCALIZACAO,
OBSERVACAO = :OBSERVACAO,
OBSERVACAO2 = :OBSERVACAO2,
DT_ALTERACAO = :DT_ALTERACAO,
TEMPO_REAL = :TEMPO_REAL,
NCM = :NCM,
COD_CSOSN = :COD_CSOSN, 
CONV_PRECO = :CONV_PRECO,
CST_PIS = :CST_PIS,
CST_COFINS = :CST_COFINS,
COD_SUBGRUPO = :COD_SUBGRUPO,
COD_SUBSUBGRUPO = :COD_SUBSUBGRUPO,
ESTOQUE1 = :ESTOQUE1,
ESTOQUE2 = :ESTOQUE2,
ESTOQUE3 = :ESTOQUE3,
ESTOQUE4 = :ESTOQUE4,
ESTOQUE5 = :ESTOQUE5,
PORC_PIS = :PORC_PIS,
PORC_COFINS = :PORC_COFINS,
OBS_ADICIONAL = :OBS_ADICIONAL,
DT_VALIDADE = :DT_VALIDADE,
PORC_IPI = :PORC_IPI,
PORC_MVA = :PORC_MVA,
PESO_BRUTO = :PESO_BRUTO,
PESO_LIQUIDO = :PESO_LIQUIDO,
FOTO = :FOTO,
ANEXO = :ANEXO,
COD_ANP = :COD_ANP,
LOCALIZACAO2 = :LOCALIZACAO2,
ETIQUETA = :ETIQUETA,
COD_CEST = :COD_CEST,
COD_EMPRESA = :COD_EMPRESA,
PORC_DESC = :PORC_DESC,
FLG_DESC = :FLG_DESC,
ESTOQUE_MAXIMO = :ESTOQUE_MAXIMO,
ESTOQUE_DEMANDA_MEDIA = :ESTOQUE_DEMANDA_MEDIA,
ESTOQUE_TEMPO_RESUPRI = :ESTOQUE_TEMPO_RESUPRI,
ESTOQUE_INTERVALO_RESUPRI = :ESTOQUE_INTERVALO_RESUPRI,
COD_DESP = :COD_DESP,
COD_MARCA = :COD_MARCA,
FLG_SITE = :FLG_SITE,
FLG_BALANCA = :FLG_BALANCA,
SITE_COMPRIMENTO = :SITE_COMPRIMENTO,
SITE_LARGURA = :SITE_LARGURA,
SITE_ALTURA = :SITE_ALTURA,
SITE_DESCRICAO = :SITE_DESCRICAO,
SITE_SYNC = :SITE_SYNC,
SITE_COD = :SITE_COD,
PORC_REDBASE = :PORC_REDBASE,
PONTOS = :PONTOS,
LOCALIZACAO21 = :LOCALIZACAO21,
LOCALIZACAO22 = :LOCALIZACAO22,
LOCALIZACAO31 = :LOCALIZACAO31,
LOCALIZACAO32 = :LOCALIZACAO32,
LOCALIZACAO41 = :LOCALIZACAO41,
LOCALIZACAO42 = :LOCALIZACAO42,
LOCALIZACAO51 = :LOCALIZACAO51,
LOCALIZACAO52 = :LOCALIZACAO52,
PORC_FCP = :PORC_FCP,
FLG_TRIBUTO = :FLG_TRIBUTO
where (CODIGO = :CODIGO);
if (OPERACAO = 3) then
delete from PRODUTO 
where (CODIGO = :CODIGO);
suspend;
end

^

alter table TRIBUTO
  ADD DADOS_ADICIONAIS varchar(300),
  ADD FLG_CONSUMO char(1),  
  ADD FLG_ATIVADO char(1),
  ADD FLG_REGIME char(2);

^

create or alter procedure P_TRIBUTO (
    OPERACAO integer,
    CODIGO integer,
    CFOP_DENTRO varchar(7),
    CFOP_FORA varchar(7),
    FLG_ES char(1),
    NATUREZA varchar(60),
    FLG_TIPO integer,
    DADOS_ADICIONAIS varchar(300),
    FLG_CONSUMO char(1),
    FLG_ATIVADO char(1),
    FLG_REGIME char(2))
as
begin
  if (operacao = 1) then
     insert into TRIBUTO (CODIGO, CFOP_DENTRO, CFOP_FORA, FLG_ES, NATUREZA, FLG_TIPO, DADOS_ADICIONAIS, FLG_CONSUMO, FLG_ATIVADO, FLG_REGIME)
     values (:CODIGO, :CFOP_DENTRO, :CFOP_FORA, :FLG_ES, :NATUREZA, :FLG_TIPO, :DADOS_ADICIONAIS, :FLG_CONSUMO, :FLG_ATIVADO, :FLG_REGIME);

  if (operacao = 2) then
     update TRIBUTO set 
     CFOP_DENTRO = :CFOP_DENTRO,
     CFOP_FORA = :CFOP_FORA,
     FLG_ES = :FLG_ES,
     NATUREZA = :NATUREZA,
     FLG_TIPO = :FLG_TIPO,
     DADOS_ADICIONAIS = :DADOS_ADICIONAIS,
     FLG_CONSUMO = :FLG_CONSUMO,
     FLG_ATIVADO = :FLG_ATIVADO,
     FLG_REGIME = :FLG_REGIME
     where (CODIGO = :CODIGO);

  if (operacao = 3) then
     delete from TRIBUTO
     where (CODIGO = :CODIGO);

  suspend;
end

^

update RDB$FIELDS set
RDB$FIELD_LENGTH = 2000,
RDB$CHARACTER_LENGTH = 2000
where RDB$FIELD_NAME = 'RDB$7526'

^

CREATE OR ALTER procedure P_TRIBUTO (
    OPERACAO integer,
    CODIGO integer,
    CFOP_DENTRO varchar(7),
    CFOP_FORA varchar(7),
    FLG_ES char(1),
    NATUREZA varchar(60),
    FLG_TIPO integer,
    DADOS_ADICIONAIS varchar(2000),
    FLG_CONSUMO char(1),
    FLG_ATIVADO char(1),
    FLG_REGIME char(2))
as
begin
  if (operacao = 1) then
     insert into TRIBUTO (CODIGO, CFOP_DENTRO, CFOP_FORA, FLG_ES, NATUREZA, FLG_TIPO, DADOS_ADICIONAIS, FLG_CONSUMO, FLG_ATIVADO, FLG_REGIME)
     values (:CODIGO, :CFOP_DENTRO, :CFOP_FORA, :FLG_ES, :NATUREZA, :FLG_TIPO, :DADOS_ADICIONAIS, :FLG_CONSUMO, :FLG_ATIVADO, :FLG_REGIME);

  if (operacao = 2) then
     update TRIBUTO set 
     CFOP_DENTRO = :CFOP_DENTRO,
     CFOP_FORA = :CFOP_FORA,
     FLG_ES = :FLG_ES,
     NATUREZA = :NATUREZA,
     FLG_TIPO = :FLG_TIPO,
     DADOS_ADICIONAIS = :DADOS_ADICIONAIS,
     FLG_CONSUMO = :FLG_CONSUMO,
     FLG_ATIVADO = :FLG_ATIVADO,
     FLG_REGIME = :FLG_REGIME
     where (CODIGO = :CODIGO);

  if (operacao = 3) then
     delete from TRIBUTO
     where (CODIGO = :CODIGO);

  suspend;
end

^

create table TRIB_REGRAS (
    CODIGO integer primary key,
    COD_TRIB integer, 
    UF char(2),
    TIPO varchar(10),
    CFOP varchar(10),
    CST INTEGER,
    CSOSN INTEGER,
    ALIQUOTA numeric(15,2),
    BASE numeric(15,2),
    PORC_MVA numeric(15,2),
    PORC_REDBASE_ST numeric(15,2),
    ALIQUOTA_ST numeric(15,2),
    MODALIDADE varchar(30),
    PORC_REDBASE numeric(15,2),
    PORC_FCP numeric(15,2),
    FLG_FRETE_IPI char(1));

^

Alter Table trib_regras
    ADD constraint fk_COD_TRIB
    foreign key(COD_TRIB) references tributo (CODIGO);

^

Create or alter PROCEDURE P_TRIB_REGRAS(
    OPERACAO INTEGER,
    CODIGO INTEGER,
    COD_TRIB INTEGER,
    UF CHAR(2),
    TIPO VARCHAR(10),
    CFOP VARCHAR(10),
    CST Integer,
    CSOSN Integer,
    ALIQUOTA NUMERIC(15,2),
    BASE NUMERIC(15,2),
    PORC_MVA NUMERIC(15,2),
    PORC_REDBASE_ST NUMERIC(15,2),
    ALIQUOTA_ST NUMERIC(15,2),
    MODALIDADE VARCHAR(30),
    PORC_REDBASE NUMERIC(15,2),
    PORC_FCP NUMERIC(15,2),
    FLG_FRETE_IPI CHAR(1))
AS
begin 
if (operacao = 1) then 
insert into TRIB_REGRAS (CODIGO, COD_TRIB, UF, TIPO, CFOP, CST, CSOSN, ALIQUOTA, BASE, PORC_MVA, PORC_REDBASE_ST, ALIQUOTA_ST, MODALIDADE, PORC_REDBASE, PORC_FCP, FLG_FRETE_IPI)
values (:CODIGO, :COD_TRIB, :UF, :TIPO, :CFOP, :CST, :CSOSN, :ALIQUOTA, :BASE, :PORC_MVA, :PORC_REDBASE_ST, :ALIQUOTA_ST,:MODALIDADE, :PORC_REDBASE, :PORC_FCP, :FLG_FRETE_IPI);
if (operacao = 2) then  
update TRIB_REGRAS set
COD_TRIB = :COD_TRIB,
UF = :UF,
TIPO = :TIPO,
CFOP = :CFOP,
CST = :CST,
CSOSN = :CSOSN ,
ALIQUOTA = :ALIQUOTA,
BASE = :BASE,
PORC_MVA = :PORC_MVA,
PORC_REDBASE_ST = :PORC_REDBASE_ST,
ALIQUOTA_ST = :ALIQUOTA_ST,
MODALIDADE = :MODALIDADE,
PORC_REDBASE = :PORC_REDBASE,
PORC_FCP = :PORC_FCP,
FLG_FRETE_IPI = :FLG_FRETE_IPI
where (CODIGO = :CODIGO);
if (operacao = 3) then 
delete from TRIB_REGRAS
where (CODIGO = :CODIGO); 
suspend;
end

^

CREATE OR ALTER TRIGGER TRG_TRIB_REGRAS FOR TRIB_REGRAS
ACTIVE BEFORE INSERT POSITION 0
AS
declare variable cod integer;
begin
 select max(CODIGO) from TRIB_REGRAS into :cod;
if (cod is null) then cod = 0;
new.codigo = cod + 1;
end

^

ALTER TABLE TRIB_REGRAS
    ADD PISCOF_ST CHAR(1),
	ADD ORIG_CST VARCHAR(50)

^	
	
CREATE OR ALTER procedure P_TRIB_REGRAS (
    OPERACAO integer,
    CODIGO integer,
    COD_TRIB integer,
    UF char(2),
    TIPO varchar(10),
    CFOP varchar(10),
    CST varchar(20),
    CSOSN varchar(20),
    ALIQUOTA numeric(15,2),
    BASE numeric(15,2),
    PORC_MVA numeric(15,2),
    PORC_REDBASE_ST numeric(15,2),
    ALIQUOTA_ST numeric(15,2),
    MODALIDADE varchar(30),
    PORC_REDBASE numeric(15,2),
    PORC_FCP numeric(15,2),
    FLG_FRETE_IPI char(1),
    PISCOF_ST char(1),
	ORIG_CST VARCHAR(50))
as
begin 
if (operacao = 1) then 
insert into TRIB_REGRAS (CODIGO, COD_TRIB, UF, TIPO, CFOP, CST, CSOSN, ALIQUOTA, BASE, PORC_MVA, PORC_REDBASE_ST, ALIQUOTA_ST, MODALIDADE, PORC_REDBASE, PORC_FCP, FLG_FRETE_IPI, PISCOF_ST, ORIG_CST)
values (:CODIGO, :COD_TRIB, :UF, :TIPO, :CFOP, :CST, :CSOSN, :ALIQUOTA, :BASE, :PORC_MVA, :PORC_REDBASE_ST, :ALIQUOTA_ST,:MODALIDADE, :PORC_REDBASE, :PORC_FCP, :FLG_FRETE_IPI, :PISCOF_ST, :ORIG_CST);
if (operacao = 2) then  
update TRIB_REGRAS set
COD_TRIB = :COD_TRIB,
UF = :UF,
TIPO = :TIPO,
CFOP = :CFOP,
CST = :CST,
CSOSN = :CSOSN ,
ALIQUOTA = :ALIQUOTA,
BASE = :BASE,
PORC_MVA = :PORC_MVA,
PORC_REDBASE_ST = :PORC_REDBASE_ST,
ALIQUOTA_ST = :ALIQUOTA_ST,
MODALIDADE = :MODALIDADE,
PORC_REDBASE = :PORC_REDBASE,
PORC_FCP = :PORC_FCP,
FLG_FRETE_IPI = :FLG_FRETE_IPI,
PISCOF_ST = :PISCOF_ST,
ORIG_CST = :ORIG_CST
where (CODIGO = :CODIGO);
if (operacao = 3) then 
delete from TRIB_REGRAS
where (CODIGO = :CODIGO); 
suspend;
end		
	
^

alter table movit
    ADD COD_TRIB_REGRA integer;

^

ALTER TABLE MOVIT
ADD CONSTRAINT FK_COD_TRIB_REGRA
FOREIGN KEY (COD_TRIB_REGRA) REFERENCES TRIB_REGRAS (CODIGO);

^

create or alter procedure P_MOVIT (
    OPERACAO integer,
    CODMOV integer,
    ITEM integer,
    COD_PROD integer,
    QUANT numeric(15,3),
    QUANT_NF numeric(15,3),
    VLR_UNIT numeric(15,4),
    PRECO_NF numeric(15,4),
    VLR_TOTAL numeric(15,2),
    TOTAL_NF numeric(15,2),
    PORC_QUANT numeric(15,2),
    PORC_PRECO numeric(15,2),
    UNIDADE varchar(10),
    COD_TRIB integer,
    COD_CFOP varchar(7),
    OBSERV varchar(100),
    BASE_ICMS numeric(15,2),
    TAXA_ICMS numeric(15,2),
    VLR_ICMS numeric(15,2),
    BASE_SUBST numeric(15,2),
    TAXA_SUBST numeric(15,2),
    VLR_SUBST numeric(15,2),
    VLR_IPI numeric(15,2),
    TAXA_IPI numeric(15,2),
    VLR_ISS numeric(15,2),
    TAXA_ISS numeric(15,2),
    DIFER_ICMS numeric(15,2),
    COD_VENDEDOR integer,
    COD_INSTALADOR integer,
    COD_UNID integer,
    OBSERV2 varchar(60),
    OBSERV3 varchar(60),
    OBSERV4 varchar(60),
    OBSERV5 varchar(60),
    OBSERV6 varchar(60),
    OBSERV7 varchar(60),
    COD_FORPROD integer,
    DATA date,
    VLR_IMPORT numeric(15,2),
    BASE_IMPORT numeric(15,2),
    COD_LOTE integer,
    COD_TRIB_REGRA integer)
as
begin  
 if (operacao = 1) then  
 insert into MOVIT (CODMOV,ITEM,COD_PROD,QUANT,QUANT_NF,VLR_UNIT,PRECO_NF,VLR_TOTAL,TOTAL_NF,PORC_QUANT,PORC_PRECO,UNIDADE,COD_TRIB,COD_CFOP,OBSERV,  
BASE_ICMS,TAXA_ICMS,VLR_ICMS,BASE_SUBST,TAXA_SUBST,VLR_SUBST,VLR_IPI,TAXA_IPI,VLR_ISS,TAXA_ISS,DIFER_ICMS,COD_VENDEDOR,COD_INSTALADOR,COD_UNID,OBSERV2,    
OBSERV3,OBSERV4,OBSERV5,OBSERV6,OBSERV7,COD_FORPROD,DATA,VLR_IMPORT,BASE_IMPORT,COD_LOTE, COD_TRIB_REGRA)
 values (:CODMOV,:ITEM,:COD_PROD,:QUANT,:QUANT_NF,:VLR_UNIT,:PRECO_NF,:VLR_TOTAL,:TOTAL_NF,:PORC_QUANT,:PORC_PRECO,:UNIDADE,:COD_TRIB,:COD_CFOP,   
:OBSERV,:BASE_ICMS,:TAXA_ICMS,:VLR_ICMS,:BASE_SUBST,:TAXA_SUBST,:VLR_SUBST,:VLR_IPI,:TAXA_IPI,:VLR_ISS,:TAXA_ISS,:DIFER_ICMS,:COD_VENDEDOR,:COD_INSTALADOR,    
:COD_UNID,:OBSERV2,:OBSERV3,:OBSERV4,:OBSERV5,:OBSERV6,:OBSERV7,:COD_FORPROD,:DATA,:VLR_IMPORT,:BASE_IMPORT,:COD_LOTE,:COD_TRIB_REGRA);
 if (operacao = 2) then  
update MOVIT set 
COD_PROD = :COD_PROD,
QUANT = :QUANT,
QUANT_NF = :QUANT_NF,
VLR_UNIT = :VLR_UNIT,
PRECO_NF = :PRECO_NF,
VLR_TOTAL = :VLR_TOTAL,
TOTAL_NF = :TOTAL_NF,
PORC_QUANT = :PORC_QUANT,
PORC_PRECO = :PORC_PRECO,
UNIDADE = :UNIDADE,
COD_TRIB = :COD_TRIB,
COD_CFOP = :COD_CFOP,
OBSERV = :OBSERV,
BASE_ICMS = :BASE_ICMS,
TAXA_ICMS = :TAXA_ICMS,
VLR_ICMS = :VLR_ICMS,
BASE_SUBST = :BASE_SUBST,
TAXA_SUBST = :TAXA_SUBST,
VLR_SUBST = :VLR_SUBST,
VLR_IPI = :VLR_IPI,
TAXA_IPI = :TAXA_IPI,
VLR_ISS = :VLR_ISS,
TAXA_ISS = :TAXA_ISS,
DIFER_ICMS = :DIFER_ICMS,
COD_VENDEDOR = :COD_VENDEDOR,
COD_INSTALADOR = :COD_INSTALADOR,
COD_UNID = :COD_UNID,
OBSERV2 = :OBSERV2,
OBSERV3 = :OBSERV3,
OBSERV4 = :OBSERV4,
OBSERV5 = :OBSERV5,
OBSERV6 = :OBSERV6,
OBSERV7 = :OBSERV7,
COD_FORPROD = :COD_FORPROD,
DATA = :DATA,
VLR_IMPORT = :VLR_IMPORT,
BASE_IMPORT = :BASE_IMPORT, 
COD_LOTE = :COD_LOTE,
COD_TRIB_REGRA = :COD_TRIB_REGRA
where (CODMOV = :CODMOV)
and (ITEM = :ITEM);
if (operacao = 3) then 
delete from MOVIT      
where (CODMOV = :CODMOV)  
and (ITEM = :ITEM);  
   suspend;    
   end

^

ALTER TABLE MOVIT
    ADD CST_ICMS VARCHAR(20),
    ADD CSOSN VARCHAR(20),
    ADD TAXA_MVA NUMERIC(15,2),
    ADD CST_PIS VARCHAR(10),
    ADD CST_COFINS VARCHAR(10),
    ADD TAXA_PIS NUMERIC(15,2),
    ADD TAXA_COFINS NUMERIC(15,2),
    ADD CST_IPI VARCHAR(10),
    ADD VLR_PIS NUMERIC(15,2),
    ADD VLR_COFINS NUMERIC(15,2),
    ADD RED_BASE_ICMS NUMERIC(15,2),
    ADD RED_BASE_SUBST NUMERIC(15,2),
    ADD TAXA_FCP_ICMS NUMERIC(15,2),
    ADD TAXA_FCP_SUBST NUMERIC(15,2),
    ADD BASE_PIS NUMERIC(15,2),
    ADD BASE_COFINS NUMERIC(15,2),
	ADD MOD_SUBST VARCHAR(30),
	ADD ORIG_CST VARCHAR(50),
	ADD PISCOF_ST CHAR(1) 
	
^	
	
CREATE OR ALTER procedure P_MOVIT (
    OPERACAO integer,
    CODMOV integer,
    ITEM integer,
    COD_PROD integer,
    QUANT numeric(15,3),
    QUANT_NF numeric(15,3),
    VLR_UNIT numeric(15,4),
    PRECO_NF numeric(15,4),
    VLR_TOTAL numeric(15,2),
    TOTAL_NF numeric(15,2),
    PORC_QUANT numeric(15,2),
    PORC_PRECO numeric(15,2),
    UNIDADE varchar(10),
    COD_TRIB integer,
    COD_CFOP varchar(7),
    OBSERV varchar(100),
    BASE_ICMS numeric(15,2),
    TAXA_ICMS numeric(15,2),
    VLR_ICMS numeric(15,2),
    BASE_SUBST numeric(15,2),
    TAXA_SUBST numeric(15,2),
    VLR_SUBST numeric(15,2),
    VLR_IPI numeric(15,2),
    TAXA_IPI numeric(15,2),
    VLR_ISS numeric(15,2),
    TAXA_ISS numeric(15,2),
    DIFER_ICMS numeric(15,2),
    COD_VENDEDOR integer,
    COD_INSTALADOR integer,
    COD_UNID integer,
    OBSERV2 varchar(60),
    OBSERV3 varchar(60),
    OBSERV4 varchar(60),
    OBSERV5 varchar(60),
    OBSERV6 varchar(60),
    OBSERV7 varchar(60),
    COD_FORPROD integer,
    DATA date,
    VLR_IMPORT numeric(15,2),
    BASE_IMPORT numeric(15,2),
    COD_LOTE integer,
    COD_TRIB_REGRA integer,
    CST_ICMS varchar(20),
    CSOSN varchar(20),
    TAXA_MVA numeric(15,2),
    CST_PIS varchar(10),
    CST_COFINS varchar(10),
    TAXA_PIS numeric(15,2),
    TAXA_COFINS numeric(15,2),
    CST_IPI varchar(10),
    VLR_PIS numeric(15,2),
    VLR_COFINS numeric(15,2),
    RED_BASE_ICMS numeric(15,2),
    RED_BASE_SUBST numeric(15,2),
    TAXA_FCP_ICMS numeric(15,2),
    TAXA_FCP_SUBST numeric(15,2),
    BASE_PIS numeric(15,2),
    BASE_COFINS numeric(15,2),
    MOD_SUBST varchar(30),
    ORIG_CST varchar(50),
    PISCOF_ST CHAR(1))
as
begin  
 if (operacao = 1) then  
 insert into MOVIT (CODMOV,ITEM,COD_PROD,QUANT,QUANT_NF,VLR_UNIT,PRECO_NF,VLR_TOTAL,TOTAL_NF,PORC_QUANT,PORC_PRECO,UNIDADE,COD_TRIB,COD_CFOP,OBSERV,  
BASE_ICMS,TAXA_ICMS,VLR_ICMS,BASE_SUBST,TAXA_SUBST,VLR_SUBST,VLR_IPI,TAXA_IPI,VLR_ISS,TAXA_ISS,DIFER_ICMS,COD_VENDEDOR,COD_INSTALADOR,COD_UNID,OBSERV2,    
OBSERV3,OBSERV4,OBSERV5,OBSERV6,OBSERV7,COD_FORPROD,DATA,VLR_IMPORT,BASE_IMPORT,COD_LOTE, COD_TRIB_REGRA,CST_ICMS,CSOSN,TAXA_MVA,CST_PIS,CST_COFINS,TAXA_PIS,TAXA_COFINS,CST_IPI,VLR_PIS,VLR_COFINS,RED_BASE_ICMS,RED_BASE_SUBST,TAXA_FCP_ICMS,TAXA_FCP_SUBST,BASE_PIS,BASE_COFINS,MOD_SUBST,ORIG_CST, PISCOF_ST)
 values (:CODMOV,:ITEM,:COD_PROD,:QUANT,:QUANT_NF,:VLR_UNIT,:PRECO_NF,:VLR_TOTAL,:TOTAL_NF,:PORC_QUANT,:PORC_PRECO,:UNIDADE,:COD_TRIB,:COD_CFOP,   
:OBSERV,:BASE_ICMS,:TAXA_ICMS,:VLR_ICMS,:BASE_SUBST,:TAXA_SUBST,:VLR_SUBST,:VLR_IPI,:TAXA_IPI,:VLR_ISS,:TAXA_ISS,:DIFER_ICMS,:COD_VENDEDOR,:COD_INSTALADOR,    
:COD_UNID,:OBSERV2,:OBSERV3,:OBSERV4,:OBSERV5,:OBSERV6,:OBSERV7,:COD_FORPROD,:DATA,:VLR_IMPORT,:BASE_IMPORT,:COD_LOTE,:COD_TRIB_REGRA,:CST_ICMS,:CSOSN,:TAXA_MVA,:CST_PIS,:CST_COFINS,:TAXA_PIS,:TAXA_COFINS,:CST_IPI,:VLR_PIS,:VLR_COFINS,:RED_BASE_ICMS,:RED_BASE_SUBST,:TAXA_FCP_ICMS,:TAXA_FCP_SUBST,:BASE_PIS,:BASE_COFINS,:MOD_SUBST,:ORIG_CST, :PISCOF_ST);
 if (operacao = 2) then  
update MOVIT set 
COD_PROD = :COD_PROD,
QUANT = :QUANT,
QUANT_NF = :QUANT_NF,
VLR_UNIT = :VLR_UNIT,
PRECO_NF = :PRECO_NF,
VLR_TOTAL = :VLR_TOTAL,
TOTAL_NF = :TOTAL_NF,
PORC_QUANT = :PORC_QUANT,
PORC_PRECO = :PORC_PRECO,
UNIDADE = :UNIDADE,
COD_TRIB = :COD_TRIB,
COD_CFOP = :COD_CFOP,
OBSERV = :OBSERV,
BASE_ICMS = :BASE_ICMS,
TAXA_ICMS = :TAXA_ICMS,
VLR_ICMS = :VLR_ICMS,
BASE_SUBST = :BASE_SUBST,
TAXA_SUBST = :TAXA_SUBST,
VLR_SUBST = :VLR_SUBST,
VLR_IPI = :VLR_IPI,
TAXA_IPI = :TAXA_IPI,
VLR_ISS = :VLR_ISS,
TAXA_ISS = :TAXA_ISS,
DIFER_ICMS = :DIFER_ICMS,
COD_VENDEDOR = :COD_VENDEDOR,
COD_INSTALADOR = :COD_INSTALADOR,
COD_UNID = :COD_UNID,
OBSERV2 = :OBSERV2,
OBSERV3 = :OBSERV3,
OBSERV4 = :OBSERV4,
OBSERV5 = :OBSERV5,
OBSERV6 = :OBSERV6,
OBSERV7 = :OBSERV7,
COD_FORPROD = :COD_FORPROD,
DATA = :DATA,
VLR_IMPORT = :VLR_IMPORT,
BASE_IMPORT = :BASE_IMPORT, 
COD_LOTE = :COD_LOTE,
COD_TRIB_REGRA = :COD_TRIB_REGRA,
CST_ICMS = :CST_ICMS,
CSOSN = :CSOSN,
TAXA_MVA = :TAXA_MVA,
CST_PIS = :CST_PIS,
CST_COFINS = :CST_COFINS,
TAXA_PIS = :TAXA_PIS,
TAXA_COFINS = :TAXA_COFINS,
CST_IPI = :CST_IPI,
VLR_PIS = :VLR_PIS,
VLR_COFINS = :VLR_COFINS,
RED_BASE_ICMS = :RED_BASE_ICMS,
RED_BASE_SUBST = :RED_BASE_SUBST,
TAXA_FCP_ICMS = :TAXA_FCP_ICMS,
TAXA_FCP_SUBST = :TAXA_FCP_SUBST,
BASE_PIS = :BASE_PIS,
BASE_COFINS = :BASE_COFINS,
MOD_SUBST = :MOD_SUBST,
ORIG_CST = :ORIG_CST,
PISCOF_ST = :PISCOF_ST
where (CODMOV = :CODMOV)
and (ITEM = :ITEM);
if (operacao = 3) then 
delete from MOVIT      
where (CODMOV = :CODMOV)  
and (ITEM = :ITEM);  
   suspend;    
   end

^
update RDB$FIELDS set
RDB$FIELD_LENGTH = 400,
RDB$CHARACTER_LENGTH = 400
where RDB$FIELD_NAME = 'RDB$2044'
^
update RDB$FIELDS set
RDB$FIELD_LENGTH = 400,
RDB$CHARACTER_LENGTH = 400
where RDB$FIELD_NAME = 'RDB$1006'
^
update RDB$FIELDS set
RDB$FIELD_LENGTH = 400,
RDB$CHARACTER_LENGTH = 400
where RDB$FIELD_NAME = 'RDB$1007'
^
CREATE OR ALTER procedure P_MOVTO (
    OPERACAO integer,
    CODIGO integer,
    FLG_CODMOV integer,
    DATA date,
    NOTA_FISCAL integer,
    SERIE integer,
    CUPOM_FISCAL integer,
    NRO_ECF integer,
    DATA_SAIDA date,
    COD_CLI integer,
    COD_FOR integer,
    COD_FUNC integer,
    COD_TRIB integer,
    COD_END_CLI integer,
    VLR_DESC numeric(15,2),
    VLR_ACRES numeric(15,2),
    VLR_FRETE numeric(15,2),
    PORC_FRETE numeric(15,3),
    VLR_TOTAL numeric(15,2),
    TOTAL_NF numeric(15,2),
    TIPO_RECEB integer,
    OBSERV1 varchar(400),
    OBSERV2 varchar(100),
    OBSERV3 varchar(100),
    TRANS_NOME varchar(60),
    TRANS_END varchar(60),
    TRANS_CIDADE varchar(60),
    TRANS_CIDADEUF varchar(2),
    TRANS_PLACA varchar(10),
    TRANS_PLACAUF varchar(2),
    TRANS_FRETE integer,
    TRANS_CNPJ_CPF varchar(20),
    TRANS_IE_RG varchar(20),
    CODREC_DEVOLUCAO integer,
    COD_CAIXA integer,
    FLG_CANCEL char(1),
    MOTIVO_CANCEL varchar(60),
    NF_DATA date,
    NF_DATA_SAIDA date,
    NF_HORA time,
    NF_CPF varchar(20),
    PLACA varchar(10),
    DATA_ENTREGA date,
    FLG_ABERTO char(1),
    VLR_DINH numeric(15,2),
    VLR_CHVISTA numeric(15,2),
    VLR_CHPRE numeric(15,2),
    VLR_CARTAO numeric(15,2),
    NFE_NRO integer,
    NFE_STATUS varchar(60),
    NFE_CAMINHO varchar(60),
    NFE_CHAVE varchar(60),
    NFE_OBSERV varchar(60),
    VLR_DEBITO numeric(15,2),
    VLR_PRAZO numeric(15,2),
    VLR_OUTROS numeric(15,2),
    COD_EMPRESA integer,
    NOME_VEICULO varchar(400),
    VOL_QUANT varchar(20),
    VOL_ESPECIE varchar(20),
    VOL_MARCA varchar(20),
    VOL_NRO varchar(20),
    VOL_BRUTO varchar(20),
    VOL_LIQUIDO varchar(20),
    NFE_REF1 varchar(60),
    NFE_REF2 varchar(60),
    NFE_REF3 varchar(60),
    COD_MAO_OBRA integer,
    SAT_NRO integer,
    SAT_STATUS varchar(20),
    SAT_CAMINHO varchar(60),
    SAT_CHAVE varchar(60),
    DT_COMISSAO date,
    NF_NOME varchar(60),
    COD_CONVENIO integer,
    COD_MESA integer,
    COD_PARCELA integer,
    FLG_PRECO char(1),
    LOCAL_DESEMB varchar(200),
    UF_DESEMB varchar(2),
    NRO_DI varchar(20),
    DT_DI date,
    COD_EXPORT integer,
    COD_FABRIC integer,
    TP_TRANS integer,
    NFE_REF4 varchar(60),
    VLR_IMPORT numeric(15,2),
    OBS_ADICIONAL varchar(3000),
    FLG_PROCEDE char(1),
    ROMANEIO_NRO integer,
    ROMANEIO_DATA date,
    TOKEN varchar(256),
    CODMARKET integer,
    VLR_PIX numeric(15,2),
    NFE_DADOS blob sub_type 0 segment size 80,
    FLG_EXC char(1),
    NFE_SERIE integer)
as
begin
if (operacao = 1) then
insert into MOVTO (CODIGO,FLG_CODMOV,DATA,NOTA_FISCAL,SERIE,CUPOM_FISCAL,NRO_ECF,DATA_SAIDA,COD_CLI,COD_FOR,COD_FUNC,COD_TRIB,COD_END_CLI,VLR_DESC,VLR_ACRES,VLR_FRETE,PORC_FRETE,
VLR_TOTAL,TOTAL_NF,TIPO_RECEB,OBSERV1,OBSERV2,OBSERV3,TRANS_NOME,TRANS_END,TRANS_CIDADE,TRANS_CIDADEUF,TRANS_PLACA,TRANS_PLACAUF,TRANS_FRETE,TRANS_CNPJ_CPF,TRANS_IE_RG,CODREC_DEVOLUCAO,
COD_CAIXA,FLG_CANCEL,MOTIVO_CANCEL,NF_DATA,NF_DATA_SAIDA,NF_HORA,NF_CPF,PLACA,DATA_ENTREGA,FLG_ABERTO,VLR_DINH,VLR_CHVISTA,VLR_CHPRE,VLR_CARTAO,NFE_NRO,NFE_STATUS,NFE_CAMINHO,
NFE_CHAVE,NFE_OBSERV,VLR_DEBITO,VLR_PRAZO,VLR_OUTROS,COD_EMPRESA,NOME_VEICULO,VOL_QUANT,VOL_ESPECIE,VOL_MARCA,VOL_NRO,VOL_BRUTO,VOL_LIQUIDO,NFE_REF1,NFE_REF2,NFE_REF3,COD_MAO_OBRA,SAT_NRO,SAT_STATUS,SAT_CAMINHO,SAT_CHAVE,
DT_COMISSAO,NF_NOME,COD_CONVENIO,COD_MESA,COD_PARCELA,FLG_PRECO,LOCAL_DESEMB,UF_DESEMB,NRO_DI,DT_DI,COD_EXPORT,COD_FABRIC,TP_TRANS,NFE_REF4,VLR_IMPORT,OBS_ADICIONAL,FLG_PROCEDE,ROMANEIO_NRO,ROMANEIO_DATA,TOKEN, CODMARKET, VLR_PIX, NFE_DADOS, FLG_EXC, NFE_SERIE)
values (:CODIGO,:FLG_CODMOV,:DATA,:NOTA_FISCAL,:SERIE,:CUPOM_FISCAL,:NRO_ECF,:DATA_SAIDA,:COD_CLI,:COD_FOR,:COD_FUNC,:COD_TRIB,:COD_END_CLI,:VLR_DESC,:VLR_ACRES,:VLR_FRETE,
:PORC_FRETE,:VLR_TOTAL,:TOTAL_NF,:TIPO_RECEB,:OBSERV1,:OBSERV2,:OBSERV3,:TRANS_NOME,:TRANS_END,:TRANS_CIDADE,:TRANS_CIDADEUF,:TRANS_PLACA,:TRANS_PLACAUF,:TRANS_FRETE,
:TRANS_CNPJ_CPF,:TRANS_IE_RG,:CODREC_DEVOLUCAO,:COD_CAIXA,:FLG_CANCEL,:MOTIVO_CANCEL,:NF_DATA,:NF_DATA_SAIDA,:NF_HORA,:NF_CPF,:PLACA,:DATA_ENTREGA,:FLG_ABERTO,
:VLR_DINH,:VLR_CHVISTA,:VLR_CHPRE,:VLR_CARTAO,:NFE_NRO,:NFE_STATUS,:NFE_CAMINHO,:NFE_CHAVE,:NFE_OBSERV,:VLR_DEBITO,:VLR_PRAZO,:VLR_OUTROS,:COD_EMPRESA,:NOME_VEICULO,
:VOL_QUANT,:VOL_ESPECIE,:VOL_MARCA,:VOL_NRO,:VOL_BRUTO,:VOL_LIQUIDO,:NFE_REF1,:NFE_REF2,:NFE_REF3,:COD_MAO_OBRA,:SAT_NRO,:SAT_STATUS,:SAT_CAMINHO,:SAT_CHAVE,:DT_COMISSAO,:NF_NOME,:COD_CONVENIO,:COD_MESA,:COD_PARCELA,:FLG_PRECO,
:LOCAL_DESEMB,:UF_DESEMB,:NRO_DI,:DT_DI,:COD_EXPORT,:COD_FABRIC,:TP_TRANS,:NFE_REF4,:VLR_IMPORT,:OBS_ADICIONAL,:FLG_PROCEDE,:ROMANEIO_NRO,:ROMANEIO_DATA,:TOKEN,:CODMARKET,:VLR_PIX, :NFE_DADOS, :FLG_EXC, :NFE_SERIE);

if (operacao = 2) then
update MOVTO set
FLG_CODMOV = :FLG_CODMOV,
DATA = :DATA,
NOTA_FISCAL = :NOTA_FISCAL,
SERIE = :SERIE,
CUPOM_FISCAL = :CUPOM_FISCAL,
NRO_ECF = :NRO_ECF,
DATA_SAIDA = :DATA_SAIDA,
COD_CLI = :COD_CLI,
COD_FOR = :COD_FOR,
COD_FUNC = :COD_FUNC,
COD_TRIB = :COD_TRIB,
COD_END_CLI = :COD_END_CLI,
VLR_DESC = :VLR_DESC,
VLR_ACRES = :VLR_ACRES,
VLR_FRETE = :VLR_FRETE,
PORC_FRETE = :PORC_FRETE,
VLR_TOTAL = :VLR_TOTAL,
TOTAL_NF = :TOTAL_NF,
TIPO_RECEB = :TIPO_RECEB,
OBSERV1 = :OBSERV1,
OBSERV2 = :OBSERV2,
OBSERV3 = :OBSERV3,
TRANS_NOME = :TRANS_NOME,
TRANS_END = :TRANS_END,
TRANS_CIDADE = :TRANS_CIDADE,
TRANS_CIDADEUF = :TRANS_CIDADEUF,
TRANS_PLACA = :TRANS_PLACA,
TRANS_PLACAUF = :TRANS_PLACAUF,
TRANS_FRETE = :TRANS_FRETE,
TRANS_CNPJ_CPF = :TRANS_CNPJ_CPF,
TRANS_IE_RG = :TRANS_IE_RG,
CODREC_DEVOLUCAO = :CODREC_DEVOLUCAO,
COD_CAIXA = :COD_CAIXA,
FLG_CANCEL = :FLG_CANCEL,
MOTIVO_CANCEL = :MOTIVO_CANCEL,
NF_DATA = :NF_DATA,
NF_DATA_SAIDA = :NF_DATA_SAIDA,
NF_HORA = :NF_HORA,
NF_CPF = :NF_CPF,
PLACA = :PLACA,
DATA_ENTREGA = :DATA_ENTREGA,
FLG_ABERTO = :FLG_ABERTO,
VLR_DINH = :VLR_DINH,
VLR_CHVISTA = :VLR_CHVISTA,
VLR_CHPRE = :VLR_CHPRE,
VLR_CARTAO = :VLR_CARTAO,
NFE_NRO = :NFE_NRO,
NFE_STATUS = :NFE_STATUS,
NFE_CAMINHO = :NFE_CAMINHO,
NFE_CHAVE = :NFE_CHAVE,
NFE_OBSERV = :NFE_OBSERV,
VLR_DEBITO = :VLR_DEBITO,
VLR_PRAZO = :VLR_PRAZO,
VLR_OUTROS = :VLR_OUTROS,
COD_EMPRESA = :COD_EMPRESA,
NOME_VEICULO = :NOME_VEICULO,
VOL_QUANT = :VOL_QUANT,
VOL_ESPECIE = :VOL_ESPECIE,
VOL_MARCA = :VOL_MARCA,
VOL_NRO = :VOL_NRO,
VOL_BRUTO = :VOL_BRUTO,
VOL_LIQUIDO = :VOL_LIQUIDO,
NFE_REF1 = :NFE_REF1,
NFE_REF2 = :NFE_REF2,
NFE_REF3 = :NFE_REF3,
COD_MAO_OBRA = :COD_MAO_OBRA,
SAT_NRO = :SAT_NRO,
SAT_STATUS = :SAT_STATUS,
SAT_CAMINHO = :SAT_CAMINHO,
SAT_CHAVE = :SAT_CHAVE,
DT_COMISSAO = :DT_COMISSAO,
NF_NOME = :NF_NOME,
COD_CONVENIO = :COD_CONVENIO,
COD_MESA = :COD_MESA,
COD_PARCELA = :COD_PARCELA,
FLG_PRECO = :FLG_PRECO,
LOCAL_DESEMB  = :LOCAL_DESEMB,
UF_DESEMB = :UF_DESEMB,
NRO_DI = :NRO_DI,
DT_DI = :DT_DI,
COD_EXPORT = :COD_EXPORT,
COD_FABRIC = :COD_FABRIC,
TP_TRANS = :TP_TRANS,
NFE_REF4 = :NFE_REF4,
VLR_IMPORT = :VLR_IMPORT,
OBS_ADICIONAL = :OBS_ADICIONAL,
FLG_PROCEDE = :FLG_PROCEDE,
ROMANEIO_NRO = :ROMANEIO_NRO,
ROMANEIO_DATA = :ROMANEIO_DATA,
TOKEN = :TOKEN,
CODMARKET = :CODMARKET,
VLR_PIX = :VLR_PIX,
NFE_DADOS = :NFE_DADOS,
FLG_EXC = :FLG_EXC,
NFE_SERIE = :NFE_SERIE
where (CODIGO = :CODIGO);
if (operacao = 3) then
delete from MOVTO
where (CODIGO = :CODIGO);
suspend;
end
^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0004','FUNCIONARIOS','CADASTROS','GRAVA_FINANC','GRAVAR LIVRO CAIXA NO FINANCEIRO','NAO','SIM;NAO','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0068','CONTROLE DOS CARTOES','GERENCIAL','GRAVA_FINANC','GRAVAR BAIXA DE CARTAO NO FINANCEIRO','NAO','SIM;NAO','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0011','BAIXA RECEBER','CONTAS A RECEBER','GRAVA_FINANC','GRAVAR BAIXA DE CONTA NO FINANCEIRO','NAO','SIM;NAO','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0013','BAIXA PAGAR','CONTAS A PAGAR','GRAVA_FINANC','GRAVAR BAIXA DE CONTA NO FINANCEIRO','NAO','NAO;UNICO;INDIVIDUAL','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0031','OUTROS LANCAMENTOS','CAIXA','GRAVA_FINANC','GRAVAR OUTROS LANCAMENTOS NO FINANCEIRO','NAO','SIM;NAO','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0026','FECHAMENTO','CAIXA','GRAVA_FINANC','GRAVAR FECHAMENTO DE CAIXA NO FINANCEIRO','NAO','SIM;NAO','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0020B','CONTROLE DOS CHEQUES','GERENCIAL','GRAVA_FINANC','GRAVAR BAIXA DE CHEQUE NO FINANCEIRO','NAO','SIM;NAO','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0020C','CONTROLE DOS CHEQUES','GERENCIAL','GRAVA_FINANC','GRAVAR TROCA DE CHEQUE NO FINANCEIRO','NAO','SIM;NAO','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0012D','REMESSA/RETORNO','CONTAS A RECEBER','GRAVA_FINANC','GRAVAR RETORNO DE BOLETO NO FINANCEIRO','NAO','SIM;NAO','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0068B','CONTROLE DOS CARTOES','GERENCIAL','GRAVA_FINANC','GRAVAR CSV NO FINANCEIRO','NAO','SIM;NAO','N')
^
update configuracao set nome_tela = 'BAIXA RECEBER' where campo = 'FLG_PERDIDO'
^
update configuracao set valor = 'SIM'
where (campo = 'GRAVA_FINANC') and (cod_tela = 'SG_0011')
and exists (select codigo from empresa where (nivel = 5) or (nivel = 10) or (nivel = 14)
or (nivel = 89) or (nivel = 154) or (cnpj = '15.507.360/0001-51'))
^
update configuracao set valor = 'INDIVIDUAL'
where (campo = 'GRAVA_FINANC') and (cod_tela = 'SG_0013')
and exists (select codigo from empresa where (nivel = 4) or (nivel = 8) or (nivel = 10)
or (nivel = 14) or (nivel = 89) or (nivel = 154) or (cnpj = '55.862.031/0001-43'))
^
update configuracao set valor = 'UNICO'
where (campo = 'GRAVA_FINANC') and (cod_tela = 'SG_0013')
and exists (select codigo from empresa where (nivel = 3) or (nivel = 24) or (nivel = 44)
or (nivel = 49) or (nivel = 79) or (nivel = 92))
^
update configuracao set valor = 'SIM'
where (campo = 'GRAVA_FINANC') and (cod_tela = 'SG_0026')
and exists (select codigo from empresa where (nivel <> 8) and (nivel <> 14) 
and (nivel <> 151) and (cnpj <> '55.862.031/0001-43'))
^
CREATE TABLE PIX (
    CODIGO       INTEGER NOT NULL,
    NOME         VARCHAR(60) NOT NULL,
    AGENCIA      INTEGER NOT NULL,
    DIG_AGENCIA  INTEGER NOT NULL,
    CONTA        INTEGER NOT NULL,
    DIG_CONTA    INTEGER NOT NULL,
    COD_BANCO    INTEGER NOT NULL,
    FLG_ATIVO    CHAR(1) NOT NULL,
    OBS          VARCHAR(100)
);

^

ALTER TABLE PIX ADD CONSTRAINT PK_PIX PRIMARY KEY (CODIGO);

^

create or alter procedure P_PIX (
    OPERACAO integer,
    CODIGO integer,
    NOME varchar(60),
    AGENCIA integer,
    DIG_AGENCIA integer,
    CONTA integer,
    DIG_CONTA integer,
    COD_BANCO integer,
    FLG_ATIVO char(1),
    OBS varchar(100))
as 
begin
  if (operacao = 1) then
     insert into PIX (CODIGO,NOME,AGENCIA,DIG_AGENCIA,CONTA,DIG_CONTA,COD_BANCO,FLG_ATIVO,OBS)
     values (:CODIGO,:NOME,:AGENCIA,:DIG_AGENCIA,:CONTA,:DIG_CONTA,:COD_BANCO,:FLG_ATIVO,:OBS);

  if (operacao = 2) then
     update PIX set
     NOME = :NOME,
     AGENCIA = :AGENCIA,
     DIG_AGENCIA = :DIG_AGENCIA,
     CONTA = :CONTA,
     DIG_CONTA = :DIG_CONTA,
     COD_BANCO = :COD_BANCO,
     FLG_ATIVO = :FLG_ATIVO,
     OBS = :OBS
     where (CODIGO = :CODIGO);

  if (operacao = 3) then
     delete from PIX
     where (CODIGO = :CODIGO);

  suspend;
end

^

CREATE OR ALTER TRIGGER TRG_PIX FOR PIX
ACTIVE BEFORE INSERT POSITION 0
AS
declare variable cod integer;
begin
  select max(codigo) from PIX into :cod;

  if (cod is null) then
    cod = 0;

  new.codigo = cod + 1;
end

^

CREATE TABLE MOV_PIX (
    CODIGO        INTEGER NOT NULL,
    COD_PIX       INTEGER NOT NULL,
    CODMOV        INTEGER,
    CODREC        INTEGER,
    ORDREC        INTEGER,
    PARCELA       VARCHAR(60) NOT NULL,
    DT_EMISSAO    DATE NOT NULL,
    DT_VENCTO     DATE NOT NULL,
    DT_PAGTO      DATE,
    VLR_PARC      NUMERIC(15,2) NOT NULL,
    VLR_DESC      NUMERIC(15,2),
    VLR_LIQUIDO   NUMERIC(15,2) NOT NULL,
    OBSERVACAO    VARCHAR(60),
    AGRUPA        CHAR(1),
    VLR_ANTECIPA  NUMERIC(15,2),
    CODPAG        INTEGER,
    ORDPAG        INTEGER
);

^

ALTER TABLE MOV_PIX ADD CONSTRAINT PK_MOV_PIX PRIMARY KEY (CODIGO);

^

ALTER TABLE MOV_PIX ADD CONSTRAINT FK_MOV_PIX1 FOREIGN KEY (COD_PIX) REFERENCES PIX (CODIGO);

^

CREATE OR ALTER TRIGGER TRG_MOVPIX FOR MOV_PIX
ACTIVE BEFORE INSERT POSITION 0
AS
declare variable cod integer;
begin
  select max(codigo) from MOV_PIX into :cod;

  if (cod is null) then
    cod = 0;

  new.codigo = cod + 1;
end

^

create or alter procedure P_MOVPIX (
    OPERACAO integer,
    CODIGO integer,
    COD_PIX integer,
    CODMOV integer,
    CODREC integer,
    ORDREC integer,
    PARCELA varchar(10),
    DT_EMISSAO date,
    DT_VENCTO date,
    DT_PAGTO date,
    VLR_PARC numeric(15,2),
    VLR_DESC numeric(15,2),
    VLR_LIQUIDO numeric(15,2),
    OBSERVACAO varchar(60),
    AGRUPA char(1),
    VLR_ANTECIPA numeric(15,2),
    CODPAG integer,
    ORDPAG integer)
as
begin
if (operacao = 1) then
insert into MOV_PIX (CODIGO,COD_PIX,CODMOV,CODREC,ORDREC,PARCELA,DT_EMISSAO,DT_VENCTO,DT_PAGTO,VLR_PARC,VLR_DESC,VLR_LIQUIDO,OBSERVACAO,AGRUPA,VLR_ANTECIPA,CODPAG,ORDPAG)
values (:CODIGO,:COD_PIX,:CODMOV,:CODREC,:ORDREC,:PARCELA,:DT_EMISSAO,:DT_VENCTO,:DT_PAGTO,:VLR_PARC,:VLR_DESC,:VLR_LIQUIDO,:OBSERVACAO,:AGRUPA,:VLR_ANTECIPA,:CODPAG,:ORDPAG);
if (operacao = 2) then
update MOV_PIX set
COD_PIX = :COD_PIX,
CODMOV = :CODMOV,
CODREC = :CODREC,
ORDREC = :ORDREC,
PARCELA = :PARCELA,
DT_EMISSAO = :DT_EMISSAO,
DT_VENCTO = :DT_VENCTO,
DT_PAGTO = :DT_PAGTO,
VLR_PARC = :VLR_PARC,
VLR_DESC = :VLR_DESC,
VLR_LIQUIDO = :VLR_LIQUIDO,
OBSERVACAO = :OBSERVACAO,
AGRUPA = :AGRUPA,
VLR_ANTECIPA = :VLR_ANTECIPA,
CODPAG = :CODPAG,
ORDPAG = :ORDPAG
where (CODIGO = :CODIGO);
if (operacao = 3) then
delete from MOV_PIX
where (CODIGO = :CODIGO);
suspend;
end

^

ALTER TABLE PARAMETROS
ADD CAMINHO_NFE VARCHAR(200),
ADD CAMINHO_CFE VARCHAR(200),
ADD CAMINHO_NFCE VARCHAR(200),
ADD CAMINHO_VENDA VARCHAR(200),
ADD CAMINHO_OS VARCHAR(200)

^

alter table RECEBER
ADD COD_SIT integer;

^

create or alter procedure P_RECEBER (
    OPERACAO integer,
    CODIGO integer,
    PARCELA integer,
    CODMOV integer,
    COD_CLI integer,
    DT_VENDA date,
    DT_VENCTO date,
    VLR_PARC numeric(15,2),
    VLR_ACRES numeric(15,2),
    VLR_DESC numeric(15,2),
    SALDO numeric(15,2),
    CRED_DEB char(10),
    HISTORICO varchar(100),
    CUPOM_FISCAL integer,
    DOCUMENTO varchar(20),
    SERIE varchar(3),
    COD_CAIXA integer,
    CB_NOSSO_NRO varchar(20),
    CB_DOC_NRO integer,
    FLG_BOLETO_DESC char(1),
    FLG_PERDIDO char(1),
    OBS_COBRANCA varchar(400),
    COD_EMPRESA integer,
    DT_BOLETO date,
    FLG_REMESSA char(1),
    BCO_BOLETO_DESC integer,
    BCO_BOLETO integer,
    COD_REPARCELA integer,
    COD_SIT integer)
as
begin  
if (operacao = 1) then 
INSERT INTO RECEBER (CODIGO,PARCELA,CODMOV,COD_CLI,DT_VENDA,DT_VENCTO,VLR_PARC,VLR_ACRES,VLR_DESC,SALDO,CRED_DEB,HISTORICO,CUPOM_FISCAL,DOCUMENTO,SERIE,COD_CAIXA,CB_NOSSO_NRO,CB_DOC_NRO,
FLG_BOLETO_DESC,FLG_PERDIDO,OBS_COBRANCA,COD_EMPRESA,DT_BOLETO,FLG_REMESSA,BCO_BOLETO_DESC,BCO_BOLETO,COD_REPARCELA, COD_SIT)
VALUES (:CODIGO,:PARCELA,:CODMOV,:COD_CLI,:DT_VENDA,:DT_VENCTO,:VLR_PARC,:VLR_ACRES,:VLR_DESC,:SALDO,:CRED_DEB,:HISTORICO,:CUPOM_FISCAL,:DOCUMENTO,:SERIE,:COD_CAIXA,:CB_NOSSO_NRO, 
:CB_DOC_NRO,:FLG_BOLETO_DESC,:FLG_PERDIDO,:OBS_COBRANCA,:COD_EMPRESA,:DT_BOLETO,:FLG_REMESSA,:BCO_BOLETO_DESC,:BCO_BOLETO,:COD_REPARCELA, :COD_SIT);
if (operacao = 2) then 
UPDATE RECEBER SET 
PARCELA = :PARCELA, 
CODMOV = :CODMOV, 
COD_CLI = :COD_CLI, 
DT_VENDA = :DT_VENDA, 
DT_VENCTO = :DT_VENCTO, 
VLR_PARC = :VLR_PARC, 
VLR_ACRES = :VLR_ACRES, 
VLR_DESC = :VLR_DESC, 
SALDO = :SALDO, 
CRED_DEB = :CRED_DEB, 
HISTORICO = :HISTORICO, 
CUPOM_FISCAL = :CUPOM_FISCAL, 
DOCUMENTO = :DOCUMENTO,
SERIE = :SERIE, 
COD_CAIXA = :COD_CAIXA, 
CB_NOSSO_NRO = :CB_NOSSO_NRO, 
CB_DOC_NRO = :CB_DOC_NRO, 
FLG_BOLETO_DESC = :FLG_BOLETO_DESC, 
FLG_PERDIDO = :FLG_PERDIDO, 
OBS_COBRANCA = :OBS_COBRANCA, 
COD_EMPRESA = :COD_EMPRESA, 
DT_BOLETO = :DT_BOLETO, 
FLG_REMESSA = : FLG_REMESSA, 
BCO_BOLETO_DESC = :BCO_BOLETO_DESC, 
BCO_BOLETO = :BCO_BOLETO, 
COD_REPARCELA = :COD_REPARCELA,
COD_SIT = :COD_SIT
WHERE (CODIGO = :CODIGO); 
if (operacao = 3) then 
delete from RECEBER 
where (CODIGO = :CODIGO); 
suspend; 
end
^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0032','PRODUTOS','CADASTROS','FLG_SUBGRUPO','EXIBIR SUBGRUPO','NAO','SIM;NAO','N')
^
update configuracao set valor = 'SIM'
where (campo = 'FLG_SUBGRUPO') and (cod_tela = 'SG_0032')
and exists (select codigo from empresa where (nivel = 15) or (nivel = 25) or (nivel = 30)
or (nivel = 34) or (nivel = 92) or (cnpj = '43.858.266/0001-82'))

^


CREATE TABLE NFSE(
CODIGOVERIFICA VARCHAR(19) NOT NULL,
DESCSERVICO VARCHAR(4000) NOT NULL,
SERVICOPRESTADO VARCHAR(1000) NOT NULL,
VALORNOTA NUMERIC(15,2) NOT NULL,
VALORDEDUCOES NUMERIC(15,2) NOT NULL,
VALORBASECALCULO NUMERIC(15,2) NOT NULL,
ALIQUOTA NUMERIC(15,2) NOT NULL,
VALORISS NUMERIC(15,2) NOT NULL,
VALORCREDITO NUMERIC(15,2) NOT NULL,
LOCALEXECUCAO VARCHAR(50) NOT NULL,
RETIDONAFONTE VARCHAR(5) NOT NULL,
CPFCNPJPRESTADOR VARCHAR(20) NOT NULL,
NOMERAZAOPRESTADOR VARCHAR(120) NOT NULL,
ENDERECOPRESTADOR VARCHAR(120) NOT NULL,
CIDADEPRESTADOR VARCHAR(100) NOT NULL,
IMPRESTADOR VARCHAR(30) NOT NULL,
ESTADOPRESTADOR VARCHAR(2) NOT NULL,
TIPOTRIBUTACAO VARCHAR(100) NOT NULL,
NATUREZAOPERACAO VARCHAR(100) NOT NULL,
EMAILPRESTADOR VARCHAR(60) NOT NULL,
CPFCNPJTOMADOR VARCHAR(20) NOT NULL,
NOMERAZAOTOMADOR VARCHAR(120) NOT NULL,
ENDERECOTOMADOR VARCHAR(120) NOT NULL,
CIDADETOMADOR VARCHAR(100) NOT NULL,
IMTOMADOR VARCHAR(30),
IERGTOMADOR VARCHAR(30),
ESTADOTOMADOR VARCHAR(2) NOT NULL,
IERGPRESTADOR VARCHAR(30),
CEPPRESTADOR VARCHAR(10) NOT NULL,
EMAILTOMADOR VARCHAR(60),
CEPTOMADOR VARCHAR(10) NOT NULL,
DATAHORAEMISSAO TIMESTAMP NOT NULL,
DATAHORAEMISSAORPS TIMESTAMP NOT NULL,
MOTIVOCANCELAMENTO VARCHAR(500),
NUMERORPS VARCHAR(19) NOT NULL,
NUMERONFSE VARCHAR(19) NOT NULL,
TIPOMOVIMENTO VARCHAR(10),
CODMOV INTEGER,
STATUS VARCHAR(20) NOT NULL);
^

CREATE GENERATOR GEN_NFSE_ID;
^
GRANT ALL ON NFSE TO SYSDBA WITH GRANT OPTION;
^

ALTER TABLE MOVTO_OS
ADD PRAZO_OS VARCHAR(60)
^
create or alter procedure P_MOVTO_OS (
    OPERACAO integer,
    CODIGO integer,
    CODMOV integer,
    NRO_OS integer,
    DATA_SAIDA date,
    MARCA varchar(60),
    MODELO varchar(60),
    ESNHEX varchar(60),
    FLG_BATERIA char(1),
    FLG_MESA char(1),
    FLG_CHIP char(1),
    FLG_CARTAO char(1),
    FLG_OPERADORA char(1),
    FLG_ESTADO char(1),
    GARANTIA integer,
    OBSERVACAO varchar(100),
    STATUS varchar(20),
    COD_PROD1 integer,
    COD_PROD2 integer,
    COD_PROD3 integer,
    FOTO1 varchar(200),
    FOTO2 varchar(200),
    FOTO3 varchar(200),
    FOTO4 varchar(200),
    FOTO5 varchar(200),
    COD_TECNICO integer,
    FOTO6 varchar(200),
    FOTO7 varchar(200),
    COD_STATUS integer,
    PRAZO_OS varchar(60))
as
begin
  if (operacao = 1) then
insert into MOVTO_OS (CODIGO,CODMOV,NRO_OS,DATA_SAIDA,MARCA,MODELO,ESNHEX,FLG_BATERIA,FLG_MESA,FLG_CHIP,FLG_CARTAO,FLG_OPERADORA,FLG_ESTADO,GARANTIA,OBSERVACAO,STATUS,COD_PROD1,
COD_PROD2,COD_PROD3,FOTO1,FOTO2,FOTO3,FOTO4,FOTO5,COD_TECNICO,FOTO6,FOTO7, COD_STATUS, PRAZO_OS)
  values (:CODIGO,:CODMOV,:NRO_OS,:DATA_SAIDA,:MARCA,:MODELO,:ESNHEX,:FLG_BATERIA,:FLG_MESA,:FLG_CHIP,:FLG_CARTAO,:FLG_OPERADORA,:FLG_ESTADO,:GARANTIA,:OBSERVACAO,:STATUS,
:cod_prod1,:cod_prod2,:COD_PROD3,:FOTO1,:FOTO2,:FOTO3,:FOTO4,:FOTO5,:COD_TECNICO,:FOTO6,:FOTO7, :COD_STATUS, :PRAZO_OS);
 if (operacao = 2) then
 update MOVTO_OS set 
 CODMOV = :CODMOV, 
 NRO_OS = :NRO_OS,   
 DATA_SAIDA = :DATA_SAIDA,  
 MARCA = :MARCA, 
 MODELO = :MODELO,  
 ESNHEX = :ESNHEX, 
 FLG_BATERIA = :FLG_BATERIA, 
 FLG_MESA = :FLG_MESA, 
 FLG_CHIP = :FLG_CHIP,  
 FLG_CARTAO = :FLG_CARTAO, 
 FLG_OPERADORA = :FLG_OPERADORA, 
 FLG_ESTADO = :FLG_ESTADO, 
 GARANTIA = :GARANTIA, 
 OBSERVACAO = :OBSERVACAO, 
 STATUS = :STATUS, 
 COD_PROD1 = :cod_prod1, 
 COD_PROD2 = :cod_prod2, 
 COD_PROD3 = :cod_prod3, 
 FOTO1 = :FOTO1, 
 FOTO2 = :FOTO2, 
 FOTO3 = :FOTO3, 
 FOTO4 = :FOTO4, 
 FOTO5 = :FOTO5, 
 COD_TECNICO = :COD_TECNICO, 
 FOTO6 = :FOTO6, 
 FOTO7 = :FOTO7,
 COD_STATUS = :COD_STATUS,
 PRAZO_OS = :PRAZO_OS
    WHERE (CODIGO = :CODIGO);
  if (operacao = 3) then
     delete from MOVTO_OS
     where (CODIGO = :CODIGO);
  suspend;
end
^

ALTER TABLE MOVTO_OS
ADD PRAZO_OS VARCHAR(60)
^
create or alter procedure P_MOVTO_OS (
    OPERACAO integer,
    CODIGO integer,
    CODMOV integer,
    NRO_OS integer,
    DATA_SAIDA date,
    MARCA varchar(60),
    MODELO varchar(60),
    ESNHEX varchar(60),
    FLG_BATERIA char(1),
    FLG_MESA char(1),
    FLG_CHIP char(1),
    FLG_CARTAO char(1),
    FLG_OPERADORA char(1),
    FLG_ESTADO char(1),
    GARANTIA integer,
    OBSERVACAO varchar(100),
    STATUS varchar(20),
    COD_PROD1 integer,
    COD_PROD2 integer,
    COD_PROD3 integer,
    FOTO1 varchar(200),
    FOTO2 varchar(200),
    FOTO3 varchar(200),
    FOTO4 varchar(200),
    FOTO5 varchar(200),
    COD_TECNICO integer,
    FOTO6 varchar(200),
    FOTO7 varchar(200),
    COD_STATUS integer,
    PRAZO_OS varchar(60))
as
begin
  if (operacao = 1) then
insert into MOVTO_OS (CODIGO,CODMOV,NRO_OS,DATA_SAIDA,MARCA,MODELO,ESNHEX,FLG_BATERIA,FLG_MESA,FLG_CHIP,FLG_CARTAO,FLG_OPERADORA,FLG_ESTADO,GARANTIA,OBSERVACAO,STATUS,COD_PROD1,
COD_PROD2,COD_PROD3,FOTO1,FOTO2,FOTO3,FOTO4,FOTO5,COD_TECNICO,FOTO6,FOTO7, COD_STATUS, PRAZO_OS)
  values (:CODIGO,:CODMOV,:NRO_OS,:DATA_SAIDA,:MARCA,:MODELO,:ESNHEX,:FLG_BATERIA,:FLG_MESA,:FLG_CHIP,:FLG_CARTAO,:FLG_OPERADORA,:FLG_ESTADO,:GARANTIA,:OBSERVACAO,:STATUS,
:cod_prod1,:cod_prod2,:COD_PROD3,:FOTO1,:FOTO2,:FOTO3,:FOTO4,:FOTO5,:COD_TECNICO,:FOTO6,:FOTO7, :COD_STATUS, :PRAZO_OS);
 if (operacao = 2) then
 update MOVTO_OS set 
 CODMOV = :CODMOV, 
 NRO_OS = :NRO_OS,   
 DATA_SAIDA = :DATA_SAIDA,  
 MARCA = :MARCA, 
 MODELO = :MODELO,  
 ESNHEX = :ESNHEX, 
 FLG_BATERIA = :FLG_BATERIA, 
 FLG_MESA = :FLG_MESA, 
 FLG_CHIP = :FLG_CHIP,  
 FLG_CARTAO = :FLG_CARTAO, 
 FLG_OPERADORA = :FLG_OPERADORA, 
 FLG_ESTADO = :FLG_ESTADO, 
 GARANTIA = :GARANTIA, 
 OBSERVACAO = :OBSERVACAO, 
 STATUS = :STATUS, 
 COD_PROD1 = :cod_prod1, 
 COD_PROD2 = :cod_prod2, 
 COD_PROD3 = :cod_prod3, 
 FOTO1 = :FOTO1, 
 FOTO2 = :FOTO2, 
 FOTO3 = :FOTO3, 
 FOTO4 = :FOTO4, 
 FOTO5 = :FOTO5, 
 COD_TECNICO = :COD_TECNICO, 
 FOTO6 = :FOTO6, 
 FOTO7 = :FOTO7,
 COD_STATUS = :COD_STATUS,
 PRAZO_OS = :PRAZO_OS
    WHERE (CODIGO = :CODIGO);
  if (operacao = 3) then
     delete from MOVTO_OS
     where (CODIGO = :CODIGO);
  suspend;
end

^

ALTER TABLE PRODUTO
ADD PORC_OFERTA NUMERIC(15,2)
^
ALTER TABLE PROD_UNID
ADD PORC_OFERTA NUMERIC(15,2)
^
create or alter procedure P_PRODUTO (
    OPERACAO integer,
    CODIGO integer,
    NOME varchar(60),
    COD_GRUPO integer,
    COD_FORNECEDOR integer,
    MARCA varchar(200),
    UNIDADE_ESTOQUE varchar(10),
    UNIDADE_CONVERSAO varchar(10),
    QTD_EMBALAGEM numeric(15,4),
    PORC_LUCRO_V numeric(15,2),
    PORC_LUCRO_P numeric(15,2),
    PORC_ICMS_ISS numeric(15,2),
    PORC_COMISSAO integer,
    COD_CST varchar(10),
    ESTOQUE_INICIAL numeric(15,3),
    ESTOQUE_MINIMO numeric(15,3),
    ESTOQUE_ATUAL numeric(15,3),
    ESTOQUE_FISCAL numeric(15,3),
    COD_TRIB integer,
    COD_TRIB_ENT integer,
    SIT_TRIB varchar(2),
    DT_CADASTRO date,
    FLG_ATIVADO char(1),
    FLG_ESTOQUE char(1),
    FLG_TIPO char(1),
    LOCALIZACAO varchar(60),
    OBSERVACAO varchar(100),
    OBSERVACAO2 varchar(100),
    DT_ALTERACAO date,
    TEMPO_REAL time,
    NCM varchar(20),
    COD_CSOSN integer,
    CONV_PRECO numeric(15,3),
    CST_PIS varchar(3),
    CST_COFINS varchar(3),
    COD_SUBGRUPO integer,
    COD_SUBSUBGRUPO integer,
    ESTOQUE1 numeric(15,3),
    ESTOQUE2 numeric(15,3),
    ESTOQUE3 numeric(15,3),
    ESTOQUE4 numeric(15,3),
    ESTOQUE5 numeric(15,3),
    PORC_PIS numeric(15,2),
    PORC_COFINS numeric(15,2),
    OBS_ADICIONAL varchar(3000),
    DT_VALIDADE date,
    PORC_IPI numeric(15,2),
    PORC_MVA numeric(15,2),
    PESO_BRUTO numeric(15,3),
    PESO_LIQUIDO numeric(15,3),
    FOTO varchar(200),
    ANEXO varchar(100),
    COD_ANP varchar(10),
    LOCALIZACAO2 varchar(60),
    ETIQUETA integer,
    COD_CEST varchar(7),
    COD_EMPRESA integer,
    PORC_DESC numeric(15,2),
    FLG_DESC char(1),
    ESTOQUE_MAXIMO numeric(15,3),
    ESTOQUE_DEMANDA_MEDIA numeric(15,3),
    ESTOQUE_TEMPO_RESUPRI numeric(15,3),
    ESTOQUE_INTERVALO_RESUPRI numeric(15,3),
    COD_DESP integer,
    COD_MARCA integer,
    FLG_SITE char(1),
    FLG_BALANCA char(1),
    SITE_COMPRIMENTO numeric(15,2),
    SITE_LARGURA numeric(15,2),
    SITE_ALTURA numeric(15,2),
    SITE_DESCRICAO varchar(9999),
    SITE_SYNC char(1),
    SITE_COD integer,
    PORC_REDBASE numeric(15,2),
    PONTOS numeric(15,4),
    LOCALIZACAO21 varchar(60),
    LOCALIZACAO22 varchar(60),
    LOCALIZACAO31 varchar(60),
    LOCALIZACAO32 varchar(60),
    LOCALIZACAO41 varchar(60),
    LOCALIZACAO42 varchar(60),
    LOCALIZACAO51 varchar(60),
    LOCALIZACAO52 varchar(60),
    PORC_FCP numeric(15,2),
    FLG_TRIBUTO char(1),
    PORC_OFERTA numeric(15,2))
as
begin
if (OPERACAO = 1) then
insert into PRODUTO (CODIGO,NOME,COD_GRUPO,COD_FORNECEDOR,MARCA,UNIDADE_ESTOQUE,UNIDADE_CONVERSAO,QTD_EMBALAGEM,PORC_LUCRO_V,PORC_LUCRO_P,PORC_ICMS_ISS,PORC_COMISSAO,
COD_CST,ESTOQUE_INICIAL,ESTOQUE_MINIMO,ESTOQUE_ATUAL,ESTOQUE_FISCAL,COD_TRIB,COD_TRIB_ENT,SIT_TRIB,DT_CADASTRO,FLG_ATIVADO,FLG_ESTOQUE,FLG_TIPO,LOCALIZACAO,OBSERVACAO,
OBSERVACAO2,DT_ALTERACAO,TEMPO_REAL,NCM,COD_CSOSN,CONV_PRECO,CST_PIS,CST_COFINS,COD_SUBGRUPO,COD_SUBSUBGRUPO,ESTOQUE1,ESTOQUE2,ESTOQUE3,ESTOQUE4,ESTOQUE5,PORC_PIS,PORC_COFINS,
OBS_ADICIONAL,DT_VALIDADE,PORC_IPI,PORC_MVA,PESO_BRUTO,PESO_LIQUIDO,FOTO,ANEXO,COD_ANP,LOCALIZACAO2,ETIQUETA,COD_CEST,COD_EMPRESA,PORC_DESC,FLG_DESC,ESTOQUE_MAXIMO,ESTOQUE_DEMANDA_MEDIA,
ESTOQUE_TEMPO_RESUPRI,ESTOQUE_INTERVALO_RESUPRI,COD_DESP,COD_MARCA,FLG_SITE,FLG_BALANCA,SITE_COMPRIMENTO,SITE_LARGURA,SITE_ALTURA,SITE_DESCRICAO,SITE_SYNC,SITE_COD,PORC_REDBASE,PONTOS,
LOCALIZACAO21,LOCALIZACAO22,LOCALIZACAO31,LOCALIZACAO32,LOCALIZACAO41,LOCALIZACAO42,LOCALIZACAO51,LOCALIZACAO52, PORC_FCP, FLG_TRIBUTO,PORC_OFERTA)
values (:CODIGO,:NOME,:COD_GRUPO,:COD_FORNECEDOR,:MARCA,:UNIDADE_ESTOQUE,:UNIDADE_CONVERSAO,:QTD_EMBALAGEM,:PORC_LUCRO_V,:PORC_LUCRO_P,:PORC_ICMS_ISS,:PORC_COMISSAO,:COD_CST,:ESTOQUE_INICIAL,:ESTOQUE_MINIMO,
:ESTOQUE_ATUAL,:ESTOQUE_FISCAL,:COD_TRIB,:COD_TRIB_ENT,:SIT_TRIB,:DT_CADASTRO,:FLG_ATIVADO,:FLG_ESTOQUE,:FLG_TIPO,:LOCALIZACAO,:OBSERVACAO,:OBSERVACAO2,:DT_ALTERACAO,:TEMPO_REAL,:NCM,:COD_CSOSN, 
:CONV_PRECO,:CST_PIS,:CST_COFINS,:COD_SUBGRUPO,:COD_SUBSUBGRUPO,:ESTOQUE1,:ESTOQUE2,:ESTOQUE3,:ESTOQUE4,:ESTOQUE5,:PORC_PIS,:PORC_COFINS,:OBS_ADICIONAL,:DT_VALIDADE,:PORC_IPI,:PORC_MVA,:PESO_BRUTO, 
:PESO_LIQUIDO,:FOTO,:ANEXO,:COD_ANP,:LOCALIZACAO2,:ETIQUETA,:COD_CEST,
:COD_EMPRESA,:PORC_DESC,:FLG_DESC,:ESTOQUE_MAXIMO,:ESTOQUE_DEMANDA_MEDIA,:ESTOQUE_TEMPO_RESUPRI,:ESTOQUE_INTERVALO_RESUPRI,:COD_DESP,:COD_MARCA,:FLG_SITE,:FLG_BALANCA,
:SITE_COMPRIMENTO,:SITE_LARGURA,:SITE_ALTURA,:SITE_DESCRICAO,:SITE_SYNC,:SITE_COD,:PORC_REDBASE,:PONTOS,:LOCALIZACAO21,:LOCALIZACAO22,:LOCALIZACAO31,:LOCALIZACAO32,:LOCALIZACAO41, 
:LOCALIZACAO42,:LOCALIZACAO51,:LOCALIZACAO52,:PORC_FCP, :FLG_TRIBUTO, :PORC_OFERTA);
if (OPERACAO = 2) then
update PRODUTO set
NOME = :NOME,
COD_GRUPO = :COD_GRUPO,
COD_FORNECEDOR = :COD_FORNECEDOR,
MARCA = :MARCA,
UNIDADE_ESTOQUE = :UNIDADE_ESTOQUE,
UNIDADE_CONVERSAO = :UNIDADE_CONVERSAO,
QTD_EMBALAGEM = :QTD_EMBALAGEM,
PORC_LUCRO_V = :PORC_LUCRO_V,
PORC_LUCRO_P = :PORC_LUCRO_P,
PORC_ICMS_ISS = :PORC_ICMS_ISS,
PORC_COMISSAO = :PORC_COMISSAO,
COD_CST = :COD_CST,
ESTOQUE_INICIAL = :ESTOQUE_INICIAL,
ESTOQUE_MINIMO = :ESTOQUE_MINIMO, 
ESTOQUE_ATUAL = :ESTOQUE_ATUAL,
ESTOQUE_FISCAL = :ESTOQUE_FISCAL, 
COD_TRIB = :COD_TRIB,
COD_TRIB_ENT = :COD_TRIB_ENT,
SIT_TRIB = :SIT_TRIB,
DT_CADASTRO = :DT_CADASTRO,
FLG_ATIVADO = :FLG_ATIVADO,
FLG_ESTOQUE = :FLG_ESTOQUE,
FLG_TIPO = :FLG_TIPO,
LOCALIZACAO = :LOCALIZACAO,
OBSERVACAO = :OBSERVACAO,
OBSERVACAO2 = :OBSERVACAO2,
DT_ALTERACAO = :DT_ALTERACAO,
TEMPO_REAL = :TEMPO_REAL,
NCM = :NCM,
COD_CSOSN = :COD_CSOSN, 
CONV_PRECO = :CONV_PRECO,
CST_PIS = :CST_PIS,
CST_COFINS = :CST_COFINS,
COD_SUBGRUPO = :COD_SUBGRUPO,
COD_SUBSUBGRUPO = :COD_SUBSUBGRUPO,
ESTOQUE1 = :ESTOQUE1,
ESTOQUE2 = :ESTOQUE2,
ESTOQUE3 = :ESTOQUE3,
ESTOQUE4 = :ESTOQUE4,
ESTOQUE5 = :ESTOQUE5,
PORC_PIS = :PORC_PIS,
PORC_COFINS = :PORC_COFINS,
OBS_ADICIONAL = :OBS_ADICIONAL,
DT_VALIDADE = :DT_VALIDADE,
PORC_IPI = :PORC_IPI,
PORC_MVA = :PORC_MVA,
PESO_BRUTO = :PESO_BRUTO,
PESO_LIQUIDO = :PESO_LIQUIDO,
FOTO = :FOTO,
ANEXO = :ANEXO,
COD_ANP = :COD_ANP,
LOCALIZACAO2 = :LOCALIZACAO2,
ETIQUETA = :ETIQUETA,
COD_CEST = :COD_CEST,
COD_EMPRESA = :COD_EMPRESA,
PORC_DESC = :PORC_DESC,
FLG_DESC = :FLG_DESC,
ESTOQUE_MAXIMO = :ESTOQUE_MAXIMO,
ESTOQUE_DEMANDA_MEDIA = :ESTOQUE_DEMANDA_MEDIA,
ESTOQUE_TEMPO_RESUPRI = :ESTOQUE_TEMPO_RESUPRI,
ESTOQUE_INTERVALO_RESUPRI = :ESTOQUE_INTERVALO_RESUPRI,
COD_DESP = :COD_DESP,
COD_MARCA = :COD_MARCA,
FLG_SITE = :FLG_SITE,
FLG_BALANCA = :FLG_BALANCA,
SITE_COMPRIMENTO = :SITE_COMPRIMENTO,
SITE_LARGURA = :SITE_LARGURA,
SITE_ALTURA = :SITE_ALTURA,
SITE_DESCRICAO = :SITE_DESCRICAO,
SITE_SYNC = :SITE_SYNC,
SITE_COD = :SITE_COD,
PORC_REDBASE = :PORC_REDBASE,
PONTOS = :PONTOS,
LOCALIZACAO21 = :LOCALIZACAO21,
LOCALIZACAO22 = :LOCALIZACAO22,
LOCALIZACAO31 = :LOCALIZACAO31,
LOCALIZACAO32 = :LOCALIZACAO32,
LOCALIZACAO41 = :LOCALIZACAO41,
LOCALIZACAO42 = :LOCALIZACAO42,
LOCALIZACAO51 = :LOCALIZACAO51,
LOCALIZACAO52 = :LOCALIZACAO52,
PORC_FCP = :PORC_FCP,
FLG_TRIBUTO = :FLG_TRIBUTO,
PORC_OFERTA = :PORC_OFERTA
where (CODIGO = :CODIGO);
if (OPERACAO = 3) then
delete from PRODUTO 
where (CODIGO = :CODIGO);
suspend;
end
^

ALTER TABLE PROD_UNID
ADD SITE_COD INTEGER
^

create or alter procedure P_PROD_UNID (
    OPERACAO integer,
    CODIGO integer,
    COD_PROD integer,
    COD_UNID integer,
    COD_COR integer,
    ESTOQUE numeric(15,3),
    ESTOQUE_FISCAL numeric(15,3),
    PR_CUSTO numeric(15,2),
    PR_VISTA numeric(15,2),
    PR_PRAZO numeric(15,2),
    COD_BARRA varchar(60),
    DATA date,
    ESTOQUE1 numeric(15,3),
    ESTOQUE2 numeric(15,3),
    ESTOQUE3 numeric(15,3),
    ESTOQUE4 numeric(15,3),
    ESTOQUE5 numeric(15,3),
    REFERENCIA varchar(20),
    SITE_COD integer,
    PORC_OFERTA numeric(15,2))
as
begin
  if (operacao = 1) then
     insert into PROD_UNID (CODIGO, COD_PROD, COD_UNID, COD_COR, ESTOQUE, ESTOQUE_FISCAL, PR_CUSTO, PR_VISTA, PR_PRAZO, COD_BARRA, DATA, ESTOQUE1, ESTOQUE2, ESTOQUE3, ESTOQUE4, ESTOQUE5, REFERENCIA, SITE_COD, PORC_OFERTA)
     values (:CODIGO, :COD_PROD, :COD_UNID, :COD_COR, :ESTOQUE, :ESTOQUE_FISCAL, :PR_CUSTO, :PR_VISTA, :PR_PRAZO, :COD_BARRA, :DATA, :ESTOQUE1, :ESTOQUE2, :ESTOQUE3, :ESTOQUE4, :ESTOQUE5, :REFERENCIA, :SITE_COD, :PORC_OFERTA);

  if (operacao = 2) then
     update PROD_UNID set
     COD_PROD = :COD_PROD,
     COD_UNID = :COD_UNID,
     COD_COR = :COD_COR,
     ESTOQUE = :ESTOQUE,
     ESTOQUE_FISCAL = :ESTOQUE_FISCAL,
     PR_CUSTO = :PR_CUSTO,
     PR_VISTA = :PR_VISTA,
     PR_PRAZO = :PR_PRAZO,
     COD_BARRA = :COD_BARRA,
     DATA = :DATA,
     ESTOQUE1 = :ESTOQUE1,
     ESTOQUE2 = :ESTOQUE2,
     ESTOQUE3 = :ESTOQUE3,
     ESTOQUE4 = :ESTOQUE4,
     ESTOQUE5 = :ESTOQUE5,
     REFERENCIA = :REFERENCIA,
     SITE_COD = : SITE_COD,
     PORC_OFERTA = :PORC_OFERTA
     where (CODIGO = :CODIGO);

  if (operacao = 3) then
     delete from PROD_UNID
     where (CODIGO = :CODIGO);

  suspend;
end

^

alter table movit_aux
add COD_UNID integer,
add COD_LOTE integer

^


create or alter procedure P_MOVIT_AUX (
    OPERACAO integer,
    CODIGO integer,
    CODMOV integer,
    COD_PROD integer,
    QUANT numeric(15,3),
    VALOR numeric(15,2),
    NOME_PC varchar(60),
    ITEM integer,
    VLR_UNIT numeric(15,4),
    UNIDADE varchar(10),
    VLR_DESC numeric(15,4),
    NOME_PROD varchar(100),
    COD_UNID integer,
    COD_LOTE integer)
as
begin 
if (operacao = 1) then 
insert into MOVIT_AUX (CODIGO, CODMOV, COD_PROD, QUANT, VALOR,NOME_PC,ITEM,VLR_UNIT,UNIDADE,VLR_DESC,NOME_PROD,COD_UNID,COD_LOTE)
values (:CODIGO, :CODMOV, :COD_PROD, :QUANT, :VALOR,:NOME_PC,:ITEM,:VLR_UNIT,:UNIDADE,:VLR_DESC,:NOME_PROD,:COD_UNID,:COD_LOTE);
if (operacao = 2) then  
update MOVIT_AUX set 
CODMOV = :CODMOV,
COD_PROD = :COD_PROD, 
QUANT = :QUANT, 
VALOR = :VALOR,
NOME_PC = :NOME_PC, 
ITEM = :ITEM, 
VLR_UNIT = :VLR_UNIT, 
UNIDADE = :UNIDADE,
VLR_DESC = :VLR_DESC,
NOME_PROD = :NOME_PROD,
COD_UNID = :COD_UNID,
COD_LOTE = :COD_LOTE
where (CODIGO = :CODIGO); 
if (operacao = 3) then 
delete from MOVIT_AUX 
where (CODIGO = :CODIGO); 
suspend; 
end


^

ALTER TABLE PRODUTO
ADD EXIBE_FICHA CHAR(1)
DEFAULT 'N' 

^

update produto set exibe_ficha = 'N'

^

create or alter procedure P_PRODUTO (
    OPERACAO integer,
    CODIGO integer,
    NOME varchar(60),
    COD_GRUPO integer,
    COD_FORNECEDOR integer,
    MARCA varchar(200),
    UNIDADE_ESTOQUE varchar(10),
    UNIDADE_CONVERSAO varchar(10),
    QTD_EMBALAGEM numeric(15,4),
    PORC_LUCRO_V numeric(15,2),
    PORC_LUCRO_P numeric(15,2),
    PORC_ICMS_ISS numeric(15,2),
    PORC_COMISSAO integer,
    COD_CST varchar(10),
    ESTOQUE_INICIAL numeric(15,3),
    ESTOQUE_MINIMO numeric(15,3),
    ESTOQUE_ATUAL numeric(15,3),
    ESTOQUE_FISCAL numeric(15,3),
    COD_TRIB integer,
    COD_TRIB_ENT integer,
    SIT_TRIB varchar(2),
    DT_CADASTRO date,
    FLG_ATIVADO char(1),
    FLG_ESTOQUE char(1),
    FLG_TIPO char(1),
    LOCALIZACAO varchar(60),
    OBSERVACAO varchar(100),
    OBSERVACAO2 varchar(100),
    DT_ALTERACAO date,
    TEMPO_REAL time,
    NCM varchar(20),
    COD_CSOSN integer,
    CONV_PRECO numeric(15,3),
    CST_PIS varchar(3),
    CST_COFINS varchar(3),
    COD_SUBGRUPO integer,
    COD_SUBSUBGRUPO integer,
    ESTOQUE1 numeric(15,3),
    ESTOQUE2 numeric(15,3),
    ESTOQUE3 numeric(15,3),
    ESTOQUE4 numeric(15,3),
    ESTOQUE5 numeric(15,3),
    PORC_PIS numeric(15,2),
    PORC_COFINS numeric(15,2),
    OBS_ADICIONAL varchar(3000),
    DT_VALIDADE date,
    PORC_IPI numeric(15,2),
    PORC_MVA numeric(15,2),
    PESO_BRUTO numeric(15,3),
    PESO_LIQUIDO numeric(15,3),
    FOTO varchar(200),
    ANEXO varchar(100),
    COD_ANP varchar(10),
    LOCALIZACAO2 varchar(60),
    ETIQUETA integer,
    COD_CEST varchar(7),
    COD_EMPRESA integer,
    PORC_DESC numeric(15,2),
    FLG_DESC char(1),
    ESTOQUE_MAXIMO numeric(15,3),
    ESTOQUE_DEMANDA_MEDIA numeric(15,3),
    ESTOQUE_TEMPO_RESUPRI numeric(15,3),
    ESTOQUE_INTERVALO_RESUPRI numeric(15,3),
    COD_DESP integer,
    COD_MARCA integer,
    FLG_SITE char(1),
    FLG_BALANCA char(1),
    SITE_COMPRIMENTO numeric(15,2),
    SITE_LARGURA numeric(15,2),
    SITE_ALTURA numeric(15,2),
    SITE_DESCRICAO varchar(9999),
    SITE_SYNC char(1),
    SITE_COD integer,
    PORC_REDBASE numeric(15,2),
    PONTOS numeric(15,4),
    LOCALIZACAO21 varchar(60),
    LOCALIZACAO22 varchar(60),
    LOCALIZACAO31 varchar(60),
    LOCALIZACAO32 varchar(60),
    LOCALIZACAO41 varchar(60),
    LOCALIZACAO42 varchar(60),
    LOCALIZACAO51 varchar(60),
    LOCALIZACAO52 varchar(60),
    PORC_FCP numeric(15,2),
    FLG_TRIBUTO char(1),
    PORC_OFERTA numeric(15,2),
    EXIBE_FICHA char(1)
    )
as
begin
if (OPERACAO = 1) then
insert into PRODUTO (CODIGO,NOME,COD_GRUPO,COD_FORNECEDOR,MARCA,UNIDADE_ESTOQUE,UNIDADE_CONVERSAO,QTD_EMBALAGEM,PORC_LUCRO_V,PORC_LUCRO_P,PORC_ICMS_ISS,PORC_COMISSAO,
COD_CST,ESTOQUE_INICIAL,ESTOQUE_MINIMO,ESTOQUE_ATUAL,ESTOQUE_FISCAL,COD_TRIB,COD_TRIB_ENT,SIT_TRIB,DT_CADASTRO,FLG_ATIVADO,FLG_ESTOQUE,FLG_TIPO,LOCALIZACAO,OBSERVACAO,
OBSERVACAO2,DT_ALTERACAO,TEMPO_REAL,NCM,COD_CSOSN,CONV_PRECO,CST_PIS,CST_COFINS,COD_SUBGRUPO,COD_SUBSUBGRUPO,ESTOQUE1,ESTOQUE2,ESTOQUE3,ESTOQUE4,ESTOQUE5,PORC_PIS,PORC_COFINS,
OBS_ADICIONAL,DT_VALIDADE,PORC_IPI,PORC_MVA,PESO_BRUTO,PESO_LIQUIDO,FOTO,ANEXO,COD_ANP,LOCALIZACAO2,ETIQUETA,COD_CEST,COD_EMPRESA,PORC_DESC,FLG_DESC,ESTOQUE_MAXIMO,ESTOQUE_DEMANDA_MEDIA,
ESTOQUE_TEMPO_RESUPRI,ESTOQUE_INTERVALO_RESUPRI,COD_DESP,COD_MARCA,FLG_SITE,FLG_BALANCA,SITE_COMPRIMENTO,SITE_LARGURA,SITE_ALTURA,SITE_DESCRICAO,SITE_SYNC,SITE_COD,PORC_REDBASE,PONTOS,
LOCALIZACAO21,LOCALIZACAO22,LOCALIZACAO31,LOCALIZACAO32,LOCALIZACAO41,LOCALIZACAO42,LOCALIZACAO51,LOCALIZACAO52, PORC_FCP, FLG_TRIBUTO,PORC_OFERTA,EXIBE_FICHA)
values (:CODIGO,:NOME,:COD_GRUPO,:COD_FORNECEDOR,:MARCA,:UNIDADE_ESTOQUE,:UNIDADE_CONVERSAO,:QTD_EMBALAGEM,:PORC_LUCRO_V,:PORC_LUCRO_P,:PORC_ICMS_ISS,:PORC_COMISSAO,:COD_CST,:ESTOQUE_INICIAL,:ESTOQUE_MINIMO,
:ESTOQUE_ATUAL,:ESTOQUE_FISCAL,:COD_TRIB,:COD_TRIB_ENT,:SIT_TRIB,:DT_CADASTRO,:FLG_ATIVADO,:FLG_ESTOQUE,:FLG_TIPO,:LOCALIZACAO,:OBSERVACAO,:OBSERVACAO2,:DT_ALTERACAO,:TEMPO_REAL,:NCM,:COD_CSOSN, 
:CONV_PRECO,:CST_PIS,:CST_COFINS,:COD_SUBGRUPO,:COD_SUBSUBGRUPO,:ESTOQUE1,:ESTOQUE2,:ESTOQUE3,:ESTOQUE4,:ESTOQUE5,:PORC_PIS,:PORC_COFINS,:OBS_ADICIONAL,:DT_VALIDADE,:PORC_IPI,:PORC_MVA,:PESO_BRUTO, 
:PESO_LIQUIDO,:FOTO,:ANEXO,:COD_ANP,:LOCALIZACAO2,:ETIQUETA,:COD_CEST,
:COD_EMPRESA,:PORC_DESC,:FLG_DESC,:ESTOQUE_MAXIMO,:ESTOQUE_DEMANDA_MEDIA,:ESTOQUE_TEMPO_RESUPRI,:ESTOQUE_INTERVALO_RESUPRI,:COD_DESP,:COD_MARCA,:FLG_SITE,:FLG_BALANCA,
:SITE_COMPRIMENTO,:SITE_LARGURA,:SITE_ALTURA,:SITE_DESCRICAO,:SITE_SYNC,:SITE_COD,:PORC_REDBASE,:PONTOS,:LOCALIZACAO21,:LOCALIZACAO22,:LOCALIZACAO31,:LOCALIZACAO32,:LOCALIZACAO41, 
:LOCALIZACAO42,:LOCALIZACAO51,:LOCALIZACAO52,:PORC_FCP, :FLG_TRIBUTO, :PORC_OFERTA, :EXIBE_FICHA);
if (OPERACAO = 2) then
update PRODUTO set
NOME = :NOME,
COD_GRUPO = :COD_GRUPO,
COD_FORNECEDOR = :COD_FORNECEDOR,
MARCA = :MARCA,
UNIDADE_ESTOQUE = :UNIDADE_ESTOQUE,
UNIDADE_CONVERSAO = :UNIDADE_CONVERSAO,
QTD_EMBALAGEM = :QTD_EMBALAGEM,
PORC_LUCRO_V = :PORC_LUCRO_V,
PORC_LUCRO_P = :PORC_LUCRO_P,
PORC_ICMS_ISS = :PORC_ICMS_ISS,
PORC_COMISSAO = :PORC_COMISSAO,
COD_CST = :COD_CST,
ESTOQUE_INICIAL = :ESTOQUE_INICIAL,
ESTOQUE_MINIMO = :ESTOQUE_MINIMO, 
ESTOQUE_ATUAL = :ESTOQUE_ATUAL,
ESTOQUE_FISCAL = :ESTOQUE_FISCAL, 
COD_TRIB = :COD_TRIB,
COD_TRIB_ENT = :COD_TRIB_ENT,
SIT_TRIB = :SIT_TRIB,
DT_CADASTRO = :DT_CADASTRO,
FLG_ATIVADO = :FLG_ATIVADO,
FLG_ESTOQUE = :FLG_ESTOQUE,
FLG_TIPO = :FLG_TIPO,
LOCALIZACAO = :LOCALIZACAO,
OBSERVACAO = :OBSERVACAO,
OBSERVACAO2 = :OBSERVACAO2,
DT_ALTERACAO = :DT_ALTERACAO,
TEMPO_REAL = :TEMPO_REAL,
NCM = :NCM,
COD_CSOSN = :COD_CSOSN, 
CONV_PRECO = :CONV_PRECO,
CST_PIS = :CST_PIS,
CST_COFINS = :CST_COFINS,
COD_SUBGRUPO = :COD_SUBGRUPO,
COD_SUBSUBGRUPO = :COD_SUBSUBGRUPO,
ESTOQUE1 = :ESTOQUE1,
ESTOQUE2 = :ESTOQUE2,
ESTOQUE3 = :ESTOQUE3,
ESTOQUE4 = :ESTOQUE4,
ESTOQUE5 = :ESTOQUE5,
PORC_PIS = :PORC_PIS,
PORC_COFINS = :PORC_COFINS,
OBS_ADICIONAL = :OBS_ADICIONAL,
DT_VALIDADE = :DT_VALIDADE,
PORC_IPI = :PORC_IPI,
PORC_MVA = :PORC_MVA,
PESO_BRUTO = :PESO_BRUTO,
PESO_LIQUIDO = :PESO_LIQUIDO,
FOTO = :FOTO,
ANEXO = :ANEXO,
COD_ANP = :COD_ANP,
LOCALIZACAO2 = :LOCALIZACAO2,
ETIQUETA = :ETIQUETA,
COD_CEST = :COD_CEST,
COD_EMPRESA = :COD_EMPRESA,
PORC_DESC = :PORC_DESC,
FLG_DESC = :FLG_DESC,
ESTOQUE_MAXIMO = :ESTOQUE_MAXIMO,
ESTOQUE_DEMANDA_MEDIA = :ESTOQUE_DEMANDA_MEDIA,
ESTOQUE_TEMPO_RESUPRI = :ESTOQUE_TEMPO_RESUPRI,
ESTOQUE_INTERVALO_RESUPRI = :ESTOQUE_INTERVALO_RESUPRI,
COD_DESP = :COD_DESP,
COD_MARCA = :COD_MARCA,
FLG_SITE = :FLG_SITE,
FLG_BALANCA = :FLG_BALANCA,
SITE_COMPRIMENTO = :SITE_COMPRIMENTO,
SITE_LARGURA = :SITE_LARGURA,
SITE_ALTURA = :SITE_ALTURA,
SITE_DESCRICAO = :SITE_DESCRICAO,
SITE_SYNC = :SITE_SYNC,
SITE_COD = :SITE_COD,
PORC_REDBASE = :PORC_REDBASE,
PONTOS = :PONTOS,
LOCALIZACAO21 = :LOCALIZACAO21,
LOCALIZACAO22 = :LOCALIZACAO22,
LOCALIZACAO31 = :LOCALIZACAO31,
LOCALIZACAO32 = :LOCALIZACAO32,
LOCALIZACAO41 = :LOCALIZACAO41,
LOCALIZACAO42 = :LOCALIZACAO42,
LOCALIZACAO51 = :LOCALIZACAO51,
LOCALIZACAO52 = :LOCALIZACAO52,
PORC_FCP = :PORC_FCP,
FLG_TRIBUTO = :FLG_TRIBUTO,
PORC_OFERTA = :PORC_OFERTA,
EXIBE_FICHA = :EXIBE_FICHA
where (CODIGO = :CODIGO);
if (OPERACAO = 3) then
delete from PRODUTO 
where (CODIGO = :CODIGO);
suspend;
end

^

update RDB$FIELDS set
RDB$FIELD_LENGTH = 400,
RDB$CHARACTER_LENGTH = 400
where RDB$FIELD_NAME = (
SELECT RDB$FIELD_SOURCE FROM RDB$RELATION_FIELDS
WHERE (RDB$FIELD_NAME = 'CAMINHO_EXE')
AND (RDB$RELATION_NAME = 'PARAMETROS'))
^

update movto set TIPO_RECEB = 7
where 
tipo_receb = 6
and exists (select codigo from empresa where cnpj = '17.827.707/0001-79')
^

ALTER TABLE GRUPO
ADD TITULO VARCHAR(30),
ADD DESCRICAO VARCHAR(60),
ADD COD_SITE INTEGER
^

CREATE OR ALTER PROCEDURE P_GRUPO (
    OPERACAO INTEGER,
    CODIGO INTEGER,
    NOME VARCHAR(60),
    COD_CST VARCHAR(10),
    PORC_ICMS_ISS NUMERIC(15,2),
    PORC_LUCRO_V NUMERIC(15,2),
    PORC_LUCRO_P NUMERIC(15,2),
    QTD_DECIMAL INTEGER,
    PORC_COMISSAO NUMERIC(15,2),
    TITULO VARCHAR(30),
    DESCRICAO VARCHAR(60),
    COD_SITE INTEGER)
AS
BEGIN
IF (OPERACAO = 1) THEN
INSERT INTO GRUPO (CODIGO, NOME, COD_CST, PORC_ICMS_ISS, PORC_LUCRO_V, PORC_LUCRO_P, QTD_DECIMAL, PORC_COMISSAO, TITULO, DESCRICAO, COD_SITE)
 VALUES (:CODIGO, :NOME, :COD_CST, :PORC_ICMS_ISS, :PORC_LUCRO_V, :PORC_LUCRO_P, :QTD_DECIMAL, :PORC_COMISSAO, :TITULO, :DESCRICAO, :COD_SITE);
IF (OPERACAO = 2) THEN
UPDATE GRUPO SET
NOME = :NOME,
COD_CST = :COD_CST,
PORC_ICMS_ISS = :PORC_ICMS_ISS,
PORC_LUCRO_V = :PORC_LUCRO_V,
PORC_LUCRO_P = :PORC_LUCRO_P,
QTD_DECIMAL = :QTD_DECIMAL,
PORC_COMISSAO = :PORC_COMISSAO,
TITULO = :TITULO,
DESCRICAO = :DESCRICAO,
COD_SITE = :COD_SITE
WHERE (CODIGO = :CODIGO); 
IF (OPERACAO = 3) THEN
DELETE FROM GRUPO
WHERE (CODIGO = :CODIGO);
SUSPEND; 
END
^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0134','VENDAS','SAIDAS','FLG_SERIE','SERIE PADRAO','0','0;15;52','N')
^
update configuracao set nome_tela = 'VENDAS' where nome_tela = 'LANCAMENTO DE VENDA'
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0134','VENDAS','SAIDAS','FLG_CARTAO','EMITIR SAT DE TODA VENDA EM CARTAO','NAO','SIM;NAO','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('PRODUTO','PRODUTOS','CADASTROS','REPLICAR','PERMITE REPLICAR CADASTRO','NAO','SIM;NAO','N')
^
update configuracao set valor = 'SIM'
where (campo = 'REPLICAR') and (cod_tela = 'PRODUTO')
and exists (select codigo from empresa where (nivel = 10) or (nivel = 14) or (nivel = 90)
or (nivel = 91) or (nivel = 98) or (nivel = 99) or (nivel = 111) or (nivel = 128)
or (nivel = 136) or (nivel = 148) or (nivel = 156) or (nivel = 158)
or (cnpj = '09.345.352/0001-53') or (cnpj = '18.179.484/0002-24') or (cnpj = '55.862.031/0001-43'))
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('PRODUTO','PRODUTOS','CADASTROS','REPLICAR','PERMITE REPLICAR CADASTRO','NAO','SIM;NAO','N')
^

ALTER TABLE MAO_OBRA
ADD SITE_SYNC CHAR(1),
ADD SITE_COD INTEGER
^

insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('PRODUTO','PRODUTOS','CADASTROS','API PRODUTO','PERMITE CADASTRO POR API','NAO','SIM;NAO','N')
^
ALTER TABLE EMPRESA
ADD LOGO_VENDA BLOB SUB_TYPE 0 SEGMENT SIZE 80
^
ALTER TABLE EMPRESA
ADD LOGO_TELA BLOB SUB_TYPE 0 SEGMENT SIZE 80
^
ALTER TABLE EMPRESA
ADD LOGO_ICONE BLOB SUB_TYPE 0 SEGMENT SIZE 80
^
create or alter procedure P_EMPRESA (
    OPERACAO integer,
    CODIGO integer,
    RAZAO_SOCIAL varchar(60),
    FANTASIA varchar(60),
    ENDERECO varchar(60),
    BAIRRO varchar(60),
    COD_CID integer,
    CEP varchar(10),
    FONE varchar(20),
    FAX varchar(20),
    E_MAIL varchar(60),
    CONTATO varchar(20),
    CNPJ varchar(20),
    INSC_EST varchar(20),
    INSC_MUN varchar(20),
    COD_CLIENTE integer,
    COD_MOTORISTA integer,
    COD_TRIB_VENDA integer,
    COD_PRODUTO integer,
    COD_ENT_ESTOQ integer,
    COD_SAI_ESTOQ integer,
    NIVEL integer,
    FINANCEIRO char(1),
    ATUALIZA_PRECO char(1),
    FLG_JUROS char(1),
    PRAZO_JUROS integer,
    PORC_JUROS numeric(15,2),
    FLG_IMPRESSAO char(1),
    FLG_CAIXA char(1),
    SENHAX varchar(10),
    SENHAX2 varchar(10),
    COMISSAO_VEND numeric(15,3),
    COMISSAO_INSTAL numeric(15,3),
    FLG_BOLETO char(1),
    COD_PRODUTO2 integer,
    SENHAX3 varchar(10),
    FLG_NFE char(1),
    FLG_SIMPLES char(1),
    CNAE varchar(10),
    SMS_USUARIO varchar(20),
    SMS_SENHA varchar(20),
    CONSULTA_CODIGO varchar(10),
    CONSULTA_SENHA varchar(10),
    EMAIL_LOGIN varchar(50),
    EMAIL_SENHA varchar(30),
    EMAIL_SMTP varchar(30),
    EMAIL_PORTA varchar(5),
    EMAIL_SSL char(1),
    EMAIL_TLS char(1),
    FLG_FISCAL char(1),
    PORC_CHPRE numeric(15,2),
    OBSERV_PEDIDO varchar(60),
    PORC_MULTA numeric(15,2),
    FOTO_TELA blob sub_type 0 segment size 80,
    CREDITO_ICMS numeric(15,2),
    LOGOTIPO blob sub_type 0 segment size 80,
    LOGO_VENDA blob sub_type 0 segment size 80,
    LOGO_TELA blob sub_type 0 segment size 80,
    LOGO_ICONE blob sub_type 0 segment size 80
    )
as
begin  
if (operacao = 1) then  
insert into EMPRESA (CODIGO,RAZAO_SOCIAL,FANTASIA,ENDERECO,BAIRRO,COD_CID,CEP,FONE,FAX,E_MAIL,CONTATO,CNPJ,INSC_EST,INSC_MUN,COD_CLIENTE,COD_MOTORISTA,COD_TRIB_VENDA,COD_PRODUTO,COD_ENT_ESTOQ,COD_SAI_ESTOQ,NIVEL,FINANCEIRO,ATUALIZA_PRECO,FLG_JUROS,
PRAZO_JUROS,PORC_JUROS,FLG_IMPRESSAO,FLG_CAIXA,SENHAX,SENHAX2,COMISSAO_VEND,COMISSAO_INSTAL,FLG_BOLETO,COD_PRODUTO2,SENHAX3,FLG_NFE,FLG_SIMPLES,CNAE,SMS_USUARIO,SMS_SENHA,CONSULTA_CODIGO,CONSULTA_SENHA,EMAIL_LOGIN,EMAIL_SENHA,EMAIL_SMTP,
EMAIL_PORTA,EMAIL_SSL,EMAIL_TLS,FLG_FISCAL,PORC_CHPRE,OBSERV_PEDIDO,PORC_MULTA,FOTO_TELA,CREDITO_ICMS,LOGOTIPO,LOGO_VENDA,LOGO_TELA,LOGO_ICONE) 
values (:CODIGO,:RAZAO_SOCIAL,:FANTASIA,:ENDERECO,:BAIRRO,:COD_CID,:CEP,:FONE,:FAX,:E_MAIL,:CONTATO,:CNPJ,:INSC_EST,:INSC_MUN,:COD_CLIENTE,:COD_MOTORISTA,:COD_TRIB_VENDA,:COD_PRODUTO,:COD_ENT_ESTOQ,:COD_SAI_ESTOQ,:NIVEL,:FINANCEIRO,
:ATUALIZA_PRECO,:FLG_JUROS,:PRAZO_JUROS,:PORC_JUROS,:FLG_IMPRESSAO,:FLG_CAIXA,:SENHAX,:SENHAX2,:COMISSAO_VEND,:COMISSAO_INSTAL,:FLG_BOLETO,:COD_PRODUTO2,:SENHAX3,:FLG_NFE,:FLG_SIMPLES,:CNAE,:SMS_USUARIO,:SMS_SENHA,:CONSULTA_CODIGO,
:CONSULTA_SENHA,:EMAIL_LOGIN,:EMAIL_SENHA,:EMAIL_SMTP,:EMAIL_PORTA,:EMAIL_SSL,:EMAIL_TLS,:FLG_FISCAL,:PORC_CHPRE,:OBSERV_PEDIDO,:PORC_MULTA,:FOTO_TELA,:CREDITO_ICMS,:LOGOTIPO,:LOGO_VENDA,:LOGO_TELA,:LOGO_ICONE); 
if (operacao = 2) then  
update EMPRESA set      
RAZAO_SOCIAL = :RAZAO_SOCIAL,  
FANTASIA = :FANTASIA,   
ENDERECO = :ENDERECO, 
BAIRRO = :BAIRRO,     
COD_CID = :COD_CID, 
CEP = :CEP,    
FONE = :FONE,   
FAX = :FAX,    
E_MAIL = :E_MAIL, 
CONTATO = :CONTATO,  
CNPJ = :CNPJ,  
INSC_EST = :INSC_EST,  
INSC_MUN = :INSC_MUN,    
COD_CLIENTE = :COD_CLIENTE,    
COD_MOTORISTA = :COD_MOTORISTA,   
COD_TRIB_VENDA = :COD_TRIB_VENDA, 
COD_PRODUTO = :COD_PRODUTO,   
COD_ENT_ESTOQ = :COD_ENT_ESTOQ,  
COD_SAI_ESTOQ = :COD_SAI_ESTOQ,  
NIVEL = :NIVEL,  
FINANCEIRO = :FINANCEIRO,   
ATUALIZA_PRECO = :ATUALIZA_PRECO, 
FLG_JUROS = :FLG_JUROS,  
PRAZO_JUROS = :PRAZO_JUROS, 
PORC_JUROS = :PORC_JUROS, 
FLG_IMPRESSAO = :FLG_IMPRESSAO, 
FLG_CAIXA = :FLG_CAIXA,  
SENHAX = :SENHAX,   
SENHAX2 = :SENHAX2,   
COMISSAO_VEND = :COMISSAO_VEND,  
COMISSAO_INSTAL = :COMISSAO_INSTAL,  
FLG_BOLETO = :FLG_BOLETO,  
COD_PRODUTO2 = :COD_PRODUTO2, 
SENHAX3 = :SENHAX3, 
FLG_NFE = :FLG_NFE, 
FLG_SIMPLES = :FLG_SIMPLES, 
CNAE = :CNAE,       
SMS_USUARIO = :SMS_USUARIO,  
SMS_SENHA = :SMS_SENHA, 
CONSULTA_CODIGO = :CONSULTA_CODIGO, 
CONSULTA_SENHA = :CONSULTA_SENHA, 
EMAIL_LOGIN = :EMAIL_LOGIN, 
EMAIL_SENHA = :EMAIL_SENHA,  
EMAIL_SMTP = :EMAIL_SMTP,   
EMAIL_PORTA = :EMAIL_PORTA,  
EMAIL_SSL = : EMAIL_SSL,    
EMAIL_TLS = : EMAIL_TLS,    
FLG_FISCAL = :FLG_FISCAL,
PORC_CHPRE = :PORC_CHPRE,
OBSERV_PEDIDO = :OBSERV_PEDIDO, 
PORC_MULTA = :PORC_MULTA,  
FOTO_TELA = :FOTO_TELA,
CREDITO_ICMS = :CREDITO_ICMS,
LOGOTIPO = :LOGOTIPO,
LOGO_VENDA = :LOGO_VENDA,
LOGO_TELA = :LOGO_TELA,
LOGO_ICONE = :LOGO_ICONE
where (CODIGO = :CODIGO); 
 if (operacao = 3) then   
delete from EMPRESA    
where (CODIGO = :CODIGO); 
suspend;    
end
^
ALTER TABLE PARAMETROS
ADD FLG_REVENDA CHAR(1)
DEFAULT 'N'
^
UPDATE PARAMETROS SET FLG_REVENDA = 'N'
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0134','VENDAS','SAIDAS','PARCELA FIXA','PARCELAS FIXAS À PRAZO','DESATIVADO','DESATIVADO;0;15;30;45;60;75;90','N')
^
ALTER TABLE PARAMETROS
ADD MARGEM_DIREITANFE VARCHAR(2)
^
ALTER TABLE PARAMETROS
ADD MARGEM_ESQUERDANFE VARCHAR(2)
^
ALTER TABLE EMPRESA
ADD SERIE_VENDA INTEGER
^
ALTER TABLE EMPRESA
ADD SERIE_COMPRA INTEGER
^
create or alter procedure P_EMPRESA (
    OPERACAO integer,
    CODIGO integer,
    RAZAO_SOCIAL varchar(60),
    FANTASIA varchar(60),
    ENDERECO varchar(60),
    BAIRRO varchar(60),
    COD_CID integer,
    CEP varchar(10),
    FONE varchar(20),
    FAX varchar(20),
    E_MAIL varchar(60),
    CONTATO varchar(20),
    CNPJ varchar(20),
    INSC_EST varchar(20),
    INSC_MUN varchar(20),
    COD_CLIENTE integer,
    COD_MOTORISTA integer,
    COD_TRIB_VENDA integer,
    COD_PRODUTO integer,
    COD_ENT_ESTOQ integer,
    COD_SAI_ESTOQ integer,
    NIVEL integer,
    FINANCEIRO char(1),
    ATUALIZA_PRECO char(1),
    FLG_JUROS char(1),
    PRAZO_JUROS integer,
    PORC_JUROS numeric(15,2),
    FLG_IMPRESSAO char(1),
    FLG_CAIXA char(1),
    SENHAX varchar(10),
    SENHAX2 varchar(10),
    COMISSAO_VEND numeric(15,3),
    COMISSAO_INSTAL numeric(15,3),
    FLG_BOLETO char(1),
    COD_PRODUTO2 integer,
    SENHAX3 varchar(10),
    FLG_NFE char(1),
    FLG_SIMPLES char(1),
    CNAE varchar(10),
    SMS_USUARIO varchar(20),
    SMS_SENHA varchar(20),
    CONSULTA_CODIGO varchar(10),
    CONSULTA_SENHA varchar(10),
    EMAIL_LOGIN varchar(50),
    EMAIL_SENHA varchar(30),
    EMAIL_SMTP varchar(30),
    EMAIL_PORTA varchar(5),
    EMAIL_SSL char(1),
    EMAIL_TLS char(1),
    FLG_FISCAL char(1),
    PORC_CHPRE numeric(15,2),
    OBSERV_PEDIDO varchar(60),
    PORC_MULTA numeric(15,2),
    FOTO_TELA blob sub_type 0 segment size 80,
    CREDITO_ICMS numeric(15,2),
    LOGOTIPO blob sub_type 0 segment size 80,
    LOGO_VENDA blob sub_type 0 segment size 80,
    LOGO_TELA blob sub_type 0 segment size 80,
    LOGO_ICONE blob sub_type 0 segment size 80,
    SERIE_VENDA INTEGER,
    SERIE_COMPRA INTEGER
    )
as
begin  
if (operacao = 1) then  
insert into EMPRESA (CODIGO,RAZAO_SOCIAL,FANTASIA,ENDERECO,BAIRRO,COD_CID,CEP,FONE,FAX,E_MAIL,CONTATO,CNPJ,INSC_EST,INSC_MUN,COD_CLIENTE,COD_MOTORISTA,COD_TRIB_VENDA,COD_PRODUTO,COD_ENT_ESTOQ,COD_SAI_ESTOQ,NIVEL,FINANCEIRO,ATUALIZA_PRECO,FLG_JUROS,
PRAZO_JUROS,PORC_JUROS,FLG_IMPRESSAO,FLG_CAIXA,SENHAX,SENHAX2,COMISSAO_VEND,COMISSAO_INSTAL,FLG_BOLETO,COD_PRODUTO2,SENHAX3,FLG_NFE,FLG_SIMPLES,CNAE,SMS_USUARIO,SMS_SENHA,CONSULTA_CODIGO,CONSULTA_SENHA,EMAIL_LOGIN,EMAIL_SENHA,EMAIL_SMTP,
EMAIL_PORTA,EMAIL_SSL,EMAIL_TLS,FLG_FISCAL,PORC_CHPRE,OBSERV_PEDIDO,PORC_MULTA,FOTO_TELA,CREDITO_ICMS,LOGOTIPO,LOGO_VENDA,LOGO_TELA,LOGO_ICONE,SERIE_VENDA, SERIE_COMPRA)
values (:CODIGO,:RAZAO_SOCIAL,:FANTASIA,:ENDERECO,:BAIRRO,:COD_CID,:CEP,:FONE,:FAX,:E_MAIL,:CONTATO,:CNPJ,:INSC_EST,:INSC_MUN,:COD_CLIENTE,:COD_MOTORISTA,:COD_TRIB_VENDA,:COD_PRODUTO,:COD_ENT_ESTOQ,:COD_SAI_ESTOQ,:NIVEL,:FINANCEIRO,
:ATUALIZA_PRECO,:FLG_JUROS,:PRAZO_JUROS,:PORC_JUROS,:FLG_IMPRESSAO,:FLG_CAIXA,:SENHAX,:SENHAX2,:COMISSAO_VEND,:COMISSAO_INSTAL,:FLG_BOLETO,:COD_PRODUTO2,:SENHAX3,:FLG_NFE,:FLG_SIMPLES,:CNAE,:SMS_USUARIO,:SMS_SENHA,:CONSULTA_CODIGO,
:CONSULTA_SENHA,:EMAIL_LOGIN,:EMAIL_SENHA,:EMAIL_SMTP,:EMAIL_PORTA,:EMAIL_SSL,:EMAIL_TLS,:FLG_FISCAL,:PORC_CHPRE,:OBSERV_PEDIDO,:PORC_MULTA,:FOTO_TELA,:CREDITO_ICMS,:LOGOTIPO,:LOGO_VENDA,:LOGO_TELA,:LOGO_ICONE,:SERIE_VENDA,:SERIE_COMPRA); 
if (operacao = 2) then  
update EMPRESA set      
RAZAO_SOCIAL = :RAZAO_SOCIAL,  
FANTASIA = :FANTASIA,   
ENDERECO = :ENDERECO, 
BAIRRO = :BAIRRO,     
COD_CID = :COD_CID, 
CEP = :CEP,    
FONE = :FONE,   
FAX = :FAX,    
E_MAIL = :E_MAIL, 
CONTATO = :CONTATO,  
CNPJ = :CNPJ,  
INSC_EST = :INSC_EST,  
INSC_MUN = :INSC_MUN,    
COD_CLIENTE = :COD_CLIENTE,    
COD_MOTORISTA = :COD_MOTORISTA,   
COD_TRIB_VENDA = :COD_TRIB_VENDA, 
COD_PRODUTO = :COD_PRODUTO,   
COD_ENT_ESTOQ = :COD_ENT_ESTOQ,  
COD_SAI_ESTOQ = :COD_SAI_ESTOQ,  
NIVEL = :NIVEL,  
FINANCEIRO = :FINANCEIRO,   
ATUALIZA_PRECO = :ATUALIZA_PRECO, 
FLG_JUROS = :FLG_JUROS,  
PRAZO_JUROS = :PRAZO_JUROS, 
PORC_JUROS = :PORC_JUROS, 
FLG_IMPRESSAO = :FLG_IMPRESSAO, 
FLG_CAIXA = :FLG_CAIXA,  
SENHAX = :SENHAX,   
SENHAX2 = :SENHAX2,   
COMISSAO_VEND = :COMISSAO_VEND,  
COMISSAO_INSTAL = :COMISSAO_INSTAL,  
FLG_BOLETO = :FLG_BOLETO,  
COD_PRODUTO2 = :COD_PRODUTO2, 
SENHAX3 = :SENHAX3, 
FLG_NFE = :FLG_NFE, 
FLG_SIMPLES = :FLG_SIMPLES, 
CNAE = :CNAE,       
SMS_USUARIO = :SMS_USUARIO,  
SMS_SENHA = :SMS_SENHA, 
CONSULTA_CODIGO = :CONSULTA_CODIGO, 
CONSULTA_SENHA = :CONSULTA_SENHA, 
EMAIL_LOGIN = :EMAIL_LOGIN, 
EMAIL_SENHA = :EMAIL_SENHA,  
EMAIL_SMTP = :EMAIL_SMTP,   
EMAIL_PORTA = :EMAIL_PORTA,  
EMAIL_SSL = : EMAIL_SSL,    
EMAIL_TLS = : EMAIL_TLS,    
FLG_FISCAL = :FLG_FISCAL,
PORC_CHPRE = :PORC_CHPRE,
OBSERV_PEDIDO = :OBSERV_PEDIDO, 
PORC_MULTA = :PORC_MULTA,  
FOTO_TELA = :FOTO_TELA,
CREDITO_ICMS = :CREDITO_ICMS,
LOGOTIPO = :LOGOTIPO,
LOGO_VENDA = :LOGO_VENDA,
LOGO_TELA = :LOGO_TELA,
LOGO_ICONE = :LOGO_ICONE,
SERIE_VENDA = :SERIE_VENDA,
SERIE_COMPRA = :SERIE_COMPRA
where (CODIGO = :CODIGO); 
 if (operacao = 3) then   
delete from EMPRESA    
where (CODIGO = :CODIGO); 
suspend;    
end
^
CREATE OR ALTER procedure P_MOVIT (
    OPERACAO integer,
    CODMOV integer,
    ITEM integer,
    COD_PROD integer,
    QUANT numeric(15,3),
    QUANT_NF numeric(15,3),
    VLR_UNIT numeric(15,4),
    PRECO_NF numeric(15,4),
    VLR_TOTAL numeric(15,2),
    TOTAL_NF numeric(15,2),
    PORC_QUANT numeric(15,2),
    PORC_PRECO numeric(15,2),
    UNIDADE varchar(10),
    COD_TRIB integer,
    COD_CFOP varchar(7),
    OBSERV varchar(100),
    BASE_ICMS numeric(15,2),
    TAXA_ICMS numeric(15,2),
    VLR_ICMS numeric(15,2),
    BASE_SUBST numeric(15,2),
    TAXA_SUBST numeric(15,2),
    VLR_SUBST numeric(15,2),
    VLR_IPI numeric(15,2),
    TAXA_IPI numeric(15,2),
    VLR_ISS numeric(15,2),
    TAXA_ISS numeric(15,2),
    DIFER_ICMS numeric(15,2),
    COD_VENDEDOR integer,
    COD_INSTALADOR integer,
    COD_UNID integer,
    OBSERV2 varchar(60),
    OBSERV3 varchar(60),
    OBSERV4 varchar(60),
    OBSERV5 varchar(60),
    OBSERV6 varchar(60),
    OBSERV7 varchar(60),
    COD_FORPROD integer,
    DATA date,
    VLR_IMPORT numeric(15,2),
    BASE_IMPORT numeric(15,2),
    COD_LOTE integer,
    ACRESCIMO numeric(15,2),
    DESCONTO numeric(15,2),
    OBS_ADICIONAL blob sub_type 0 segment size 80,
    COD_TRIB_REGRA integer,
    CST_ICMS varchar(20),
    CSOSN varchar(20),
    TAXA_MVA numeric(15,2),
    CST_PIS varchar(10),
    CST_COFINS varchar(10),
    TAXA_PIS numeric(15,2),
    TAXA_COFINS numeric(15,2),
    CST_IPI varchar(10),
    VLR_PIS numeric(15,2),
    VLR_COFINS numeric(15,2),
    RED_BASE_ICMS numeric(15,2),
    RED_BASE_SUBST numeric(15,2),
    TAXA_FCP_ICMS numeric(15,2),
    TAXA_FCP_SUBST numeric(15,2),
    BASE_PIS numeric(15,2),
    BASE_COFINS numeric(15,2),
    MOD_SUBST varchar(30),
    ORIG_CST varchar(50),
    PISCOF_ST char(1))
as
begin  
 if (operacao = 1) then  
 insert into MOVIT (CODMOV,ITEM,COD_PROD,QUANT,QUANT_NF,VLR_UNIT,PRECO_NF,VLR_TOTAL,TOTAL_NF,PORC_QUANT,PORC_PRECO,UNIDADE,COD_TRIB,COD_CFOP,OBSERV,  
BASE_ICMS,TAXA_ICMS,VLR_ICMS,BASE_SUBST,TAXA_SUBST,VLR_SUBST,VLR_IPI,TAXA_IPI,VLR_ISS,TAXA_ISS,DIFER_ICMS,COD_VENDEDOR,COD_INSTALADOR,COD_UNID,OBSERV2,    
OBSERV3,OBSERV4,OBSERV5,OBSERV6,OBSERV7,COD_FORPROD,DATA,VLR_IMPORT,BASE_IMPORT,COD_LOTE,ACRESCIMO,DESCONTO,OBS_ADICIONAL,COD_TRIB_REGRA,CST_ICMS,CSOSN,TAXA_MVA,CST_PIS,CST_COFINS,TAXA_PIS,TAXA_COFINS,CST_IPI,VLR_PIS,VLR_COFINS,RED_BASE_ICMS,RED_BASE_SUBST,TAXA_FCP_ICMS,TAXA_FCP_SUBST,BASE_PIS,BASE_COFINS,MOD_SUBST,ORIG_CST, PISCOF_ST)
 values (:CODMOV,:ITEM,:COD_PROD,:QUANT,:QUANT_NF,:VLR_UNIT,:PRECO_NF,:VLR_TOTAL,:TOTAL_NF,:PORC_QUANT,:PORC_PRECO,:UNIDADE,:COD_TRIB,:COD_CFOP,   
:OBSERV,:BASE_ICMS,:TAXA_ICMS,:VLR_ICMS,:BASE_SUBST,:TAXA_SUBST,:VLR_SUBST,:VLR_IPI,:TAXA_IPI,:VLR_ISS,:TAXA_ISS,:DIFER_ICMS,:COD_VENDEDOR,:COD_INSTALADOR,    
:COD_UNID,:OBSERV2,:OBSERV3,:OBSERV4,:OBSERV5,:OBSERV6,:OBSERV7,:COD_FORPROD,:DATA,:VLR_IMPORT,:BASE_IMPORT,:COD_LOTE,:ACRESCIMO,:DESCONTO,:OBS_ADICIONAL,:COD_TRIB_REGRA,:CST_ICMS,:CSOSN,:TAXA_MVA,:CST_PIS,:CST_COFINS,:TAXA_PIS,:TAXA_COFINS,:CST_IPI,:VLR_PIS,:VLR_COFINS,:RED_BASE_ICMS,:RED_BASE_SUBST,:TAXA_FCP_ICMS,:TAXA_FCP_SUBST,:BASE_PIS,:BASE_COFINS,:MOD_SUBST,:ORIG_CST, :PISCOF_ST);
 if (operacao = 2) then  
update MOVIT set 
COD_PROD = :COD_PROD,
QUANT = :QUANT,
QUANT_NF = :QUANT_NF,
VLR_UNIT = :VLR_UNIT,
PRECO_NF = :PRECO_NF,
VLR_TOTAL = :VLR_TOTAL,
TOTAL_NF = :TOTAL_NF,
PORC_QUANT = :PORC_QUANT,
PORC_PRECO = :PORC_PRECO,
UNIDADE = :UNIDADE,
COD_TRIB = :COD_TRIB,
COD_CFOP = :COD_CFOP,
OBSERV = :OBSERV,
BASE_ICMS = :BASE_ICMS,
TAXA_ICMS = :TAXA_ICMS,
VLR_ICMS = :VLR_ICMS,
BASE_SUBST = :BASE_SUBST,
TAXA_SUBST = :TAXA_SUBST,
VLR_SUBST = :VLR_SUBST,
VLR_IPI = :VLR_IPI,
TAXA_IPI = :TAXA_IPI,
VLR_ISS = :VLR_ISS,
TAXA_ISS = :TAXA_ISS,
DIFER_ICMS = :DIFER_ICMS,
COD_VENDEDOR = :COD_VENDEDOR,
COD_INSTALADOR = :COD_INSTALADOR,
COD_UNID = :COD_UNID,
OBSERV2 = :OBSERV2,
OBSERV3 = :OBSERV3,
OBSERV4 = :OBSERV4,
OBSERV5 = :OBSERV5,
OBSERV6 = :OBSERV6,
OBSERV7 = :OBSERV7,
COD_FORPROD = :COD_FORPROD,
DATA = :DATA,
VLR_IMPORT = :VLR_IMPORT,
BASE_IMPORT = :BASE_IMPORT, 
COD_LOTE = :COD_LOTE,
ACRESCIMO = :ACRESCIMO,
DESCONTO = :DESCONTO,
OBS_ADICIONAL = :OBS_ADICIONAL,
COD_TRIB_REGRA = :COD_TRIB_REGRA,
CST_ICMS = :CST_ICMS,
CSOSN = :CSOSN,
TAXA_MVA = :TAXA_MVA,
CST_PIS = :CST_PIS,
CST_COFINS = :CST_COFINS,
TAXA_PIS = :TAXA_PIS,
TAXA_COFINS = :TAXA_COFINS,
CST_IPI = :CST_IPI,
VLR_PIS = :VLR_PIS,
VLR_COFINS = :VLR_COFINS,
RED_BASE_ICMS = :RED_BASE_ICMS,
RED_BASE_SUBST = :RED_BASE_SUBST,
TAXA_FCP_ICMS = :TAXA_FCP_ICMS,
TAXA_FCP_SUBST = :TAXA_FCP_SUBST,
BASE_PIS = :BASE_PIS,
BASE_COFINS = :BASE_COFINS,
MOD_SUBST = :MOD_SUBST,
ORIG_CST = :ORIG_CST,
PISCOF_ST = :PISCOF_ST
where (CODMOV = :CODMOV)
and (ITEM = :ITEM);
if (operacao = 3) then 
delete from MOVIT      
where (CODMOV = :CODMOV)  
and (ITEM = :ITEM);  
suspend;    
end
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0120','EMISSAO NFE','NFE','FLG_DATA','DATA DE SAIDA A SER UTILIZADA','NF_DATA','DATE;DATA;NF_DATA','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0011','BAIXA RECEBER','CONTAS A RECEBER','EXTRATO','UTILIZAR NOVO EXTRATO DE PAGAMENTO','NAO','SIM;NAO','N')
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO) 
VALUES ('SG_0013', 'BAIXA PAGAR', 'CONTAS A PAGAR', 'IMPRESSAO', 'IMPRESSAO DE PAGAMENTO', 'NAO', 'SIM;NAO', 'N');
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0057','IMPRESSAO VENDA','SAIDAS','FLG_OBSERV','PERGUNTAR SE IMPRIME OBS','NAO','SIM;NAO','N')
^
create or alter procedure P_FINANC_CONTAS (
    OPERACAO integer,
    CODIGO integer,
    NOME varchar(60),
    NRO_BANCO varchar(5),
    AGENCIA varchar(10),
    CONTA varchar(10),
    OBSERV varchar(60),
    FLG_ATIVADO char(1),
    FLG_CONCILIACAO char(1),
    AGENCIA_DIGITO varchar(1),
    CONTA_DIGITO varchar(1),
    TITULAR varchar(100),
    TITULAR_CPFCNPJ varchar(18),
    TIPO char(1),
    TAMANHO_MAX_NOSSONRO smallint,
    COD_CEDENTE varchar(20),
    MSG_LOCALPGTO varchar(200),
    NRO_CARTEIRA integer,
    NRO_MODALIDADE integer,
    NRO_CONVENIO varchar(20),
    FLG_BOLETO char(1),
    CNAB varchar(3),
    FLG_ACEITE char(1),
    INSTRUCAO1 varchar(60),
    INSTRUCAO2 varchar(60),
    INSTRUCAO3 varchar(60),
    PORC_MULTA numeric(15,2),
    PORC_JUROS numeric(15,2),
    PIX_QRCODE blob sub_type 0 segment size 80,
    PIX_CHAVE varchar(32),
    FLG_PROTESTO char(1))
as
begin 
if (operacao = 1) then 
insert into FINANC_CONTAS (CODIGO,NOME,NRO_BANCO,AGENCIA,CONTA,OBSERV,FLG_ATIVADO,FLG_CONCILIACAO,AGENCIA_DIGITO,CONTA_DIGITO,TITULAR,TITULAR_CPFCNPJ,TIPO,TAMANHO_MAX_NOSSONRO,COD_CEDENTE, 
MSG_LOCALPGTO,NRO_CARTEIRA,NRO_MODALIDADE,NRO_CONVENIO,FLG_BOLETO,CNAB,FLG_ACEITE,INSTRUCAO1,INSTRUCAO2,INSTRUCAO3,PORC_MULTA,PORC_JUROS,PIX_QRCODE,PIX_CHAVE,FLG_PROTESTO)
values (:CODIGO,:NOME,:NRO_BANCO,:AGENCIA,:CONTA,:OBSERV,:FLG_ATIVADO,:FLG_CONCILIACAO,:AGENCIA_DIGITO,:CONTA_DIGITO,:TITULAR,:TITULAR_CPFCNPJ,:TIPO,:TAMANHO_MAX_NOSSONRO,:COD_CEDENTE, 
:MSG_LOCALPGTO,:NRO_CARTEIRA,:NRO_MODALIDADE,:NRO_CONVENIO,:FLG_BOLETO,:CNAB,:FLG_ACEITE,:INSTRUCAO1,:INSTRUCAO2,:INSTRUCAO3,:PORC_MULTA,:PORC_JUROS,:PIX_QRCODE,:PIX_CHAVE,:FLG_PROTESTO);
if (operacao = 2) then  
update FINANC_CONTAS set  
NOME = :NOME, 
NRO_BANCO = :NRO_BANCO, 
AGENCIA = :AGENCIA, 
CONTA = :CONTA, 
OBSERV = :OBSERV, 
FLG_ATIVADO = :FLG_ATIVADO, 
FLG_CONCILIACAO = :FLG_CONCILIACAO, 
AGENCIA_DIGITO = : AGENCIA_DIGITO, 
CONTA_DIGITO  = :CONTA_DIGITO, 
TITULAR  = :TITULAR, 
TITULAR_CPFCNPJ   = :TITULAR_CPFCNPJ, 
TIPO  = :TIPO, 
TAMANHO_MAX_NOSSONRO  = :TAMANHO_MAX_NOSSONRO, 
COD_CEDENTE  = :COD_CEDENTE, 
MSG_LOCALPGTO  = :MSG_LOCALPGTO, 
NRO_CARTEIRA  = :NRO_CARTEIRA, 
NRO_MODALIDADE  = :NRO_MODALIDADE, 
NRO_CONVENIO = :NRO_CONVENIO, 
FLG_BOLETO  = :FLG_BOLETO, 
CNAB = :CNAB, 
FLG_ACEITE = :FLG_ACEITE, 
INSTRUCAO1 = :INSTRUCAO1, 
INSTRUCAO2 = INSTRUCAO2, 
INSTRUCAO3 = INSTRUCAO3, 
PORC_MULTA = :PORC_MULTA, 
PORC_JUROS = :PORC_JUROS, 
PIX_QRCODE = :PIX_QRCODE, 
PIX_CHAVE = :PIX_CHAVE,
FLG_PROTESTO = :FLG_PROTESTO
where (CODIGO = :CODIGO); 
if (operacao = 3) then 
delete from FINANC_CONTAS 
where (CODIGO = :CODIGO); 
suspend; 
end
^

INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO) VALUES ('SG_0032', 'PRODUTOS', 'CADASTROS', 'ETIQUETA', 'EXIBIR CODBARRA', 'NAO', 'SIM;NAO', 'N');
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito) values ('SG_0134','VENDAS','SAIDAS','PESQ_NOME','PERMITE PESQUISAR PRODUTO PELO NOME','SIM','SIM;NAO','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','FINALIZACAO DE VENDA','SAIDAS','FORMA_PAG_P','FORMA DE PAGAMENTO PADRAO','0 - DINHEIRO','0 - DINHEIRO;1 - PRAZO;2 - CHEQUE VISTA;3 - CHEQUE PRE;4 - CARTAO;8 - PIX;','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0037','ROMANEIO','SAIDAS','FLG_ALFAB','IMPRESSÃO DO ROMANEIO EM ORDEM ALFABETICA','NAO','SIM;NAO','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','FINALIZACAO DE VENDA','SAIDAS','PARCELA_PRE','CHEQUE PRE PARCELAR','NAO','SIM;NAO','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0011','BAIXA RECEBER','CONTAS A RECEBER','FLG_CARTAO','DESEJA CONTROLAR CARTAO NA BAIXA','SIM','SIM;NAO','S')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','VENDAS','SAIDAS','ACRESCIMO','PEDIR SENHA CASO ACRESCIMO FOR MAIOR QUE','999999','','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito) 
values ('RECEBER','RECEBER','CONTAS A RECEBER','FLG_JUROS','QUAL DATA USAR PARA CALCULAR JUROS','PAGAMENTO','VENCIMENTO;PAGAMENTO','N')
^
insert into configuracao(COD_TELA,NOME_TELA,MENU,CAMPO,DESCRICAO,VALOR,VALIDO,FLG_RESTRITO)
values('VENDA','VENDAS','SAIDAS','SAT','TIRAR SAT APENAS QUANDO FOR VENDA COM CARTAO OU CPF/CNPJ', 'NAO', 'SIM;NAO', 'N');
^
insert into configuracao(COD_TELA,NOME_TELA,MENU,CAMPO,DESCRICAO,VALOR,VALIDO,FLG_RESTRITO)
values('VENDA','VENDAS','SAIDAS','NFP','PERGUNTA NA TELA DE VENDA P/ COLOCAR NFP', 'NAO', 'SIM;NAO', 'N');
^
insert into configuracao(COD_TELA,NOME_TELA,MENU,CAMPO,DESCRICAO,VALOR,VALIDO,FLG_RESTRITO)
values('PRODUTO','PRODUTOS','CADASTROS','COTACAO','EXIBIR APENAS PRODUTOS MARCADOS P/COTACAO', 'NAO', 'SIM;NAO', 'N');
^
ALTER TABLE PRODUTO
ADD FLG_COTACAO CHAR(1)
DEFAULT 'N' 
^
create or alter procedure P_PRODUTO (
    OPERACAO integer,
    CODIGO integer,
    NOME varchar(60),
    COD_GRUPO integer,
    COD_FORNECEDOR integer,
    MARCA varchar(200),
    UNIDADE_ESTOQUE varchar(10),
    UNIDADE_CONVERSAO varchar(10),
    QTD_EMBALAGEM numeric(15,4),
    PORC_LUCRO_V numeric(15,2),
    PORC_LUCRO_P numeric(15,2),
    PORC_ICMS_ISS numeric(15,2),
    PORC_COMISSAO integer,
    COD_CST varchar(10),
    ESTOQUE_INICIAL numeric(15,3),
    ESTOQUE_MINIMO numeric(15,3),
    ESTOQUE_ATUAL numeric(15,3),
    ESTOQUE_FISCAL numeric(15,3),
    COD_TRIB integer,
    COD_TRIB_ENT integer,
    SIT_TRIB varchar(2),
    DT_CADASTRO date,
    FLG_ATIVADO char(1),
    FLG_ESTOQUE char(1),
    FLG_TIPO char(1),
    LOCALIZACAO varchar(60),
    OBSERVACAO varchar(100),
    OBSERVACAO2 varchar(100),
    DT_ALTERACAO date,
    TEMPO_REAL time,
    NCM varchar(20),
    COD_CSOSN integer,
    CONV_PRECO numeric(15,3),
    CST_PIS varchar(3),
    CST_COFINS varchar(3),
    COD_SUBGRUPO integer,
    COD_SUBSUBGRUPO integer,
    ESTOQUE1 numeric(15,3),
    ESTOQUE2 numeric(15,3),
    ESTOQUE3 numeric(15,3),
    ESTOQUE4 numeric(15,3),
    ESTOQUE5 numeric(15,3),
    PORC_PIS numeric(15,2),
    PORC_COFINS numeric(15,2),
    OBS_ADICIONAL varchar(3000),
    DT_VALIDADE date,
    PORC_IPI numeric(15,2),
    PORC_MVA numeric(15,2),
    PESO_BRUTO numeric(15,3),
    PESO_LIQUIDO numeric(15,3),
    FOTO varchar(200),
    ANEXO varchar(100),
    COD_ANP varchar(10),
    LOCALIZACAO2 varchar(60),
    ETIQUETA integer,
    COD_CEST varchar(7),
    COD_EMPRESA integer,
    PORC_DESC numeric(15,2),
    FLG_DESC char(1),
    ESTOQUE_MAXIMO numeric(15,3),
    ESTOQUE_DEMANDA_MEDIA numeric(15,3),
    ESTOQUE_TEMPO_RESUPRI numeric(15,3),
    ESTOQUE_INTERVALO_RESUPRI numeric(15,3),
    COD_DESP integer,
    COD_MARCA integer,
    FLG_SITE char(1),
    FLG_BALANCA char(1),
    SITE_COMPRIMENTO numeric(15,2),
    SITE_LARGURA numeric(15,2),
    SITE_ALTURA numeric(15,2),
    SITE_DESCRICAO varchar(9999),
    SITE_SYNC char(1),
    SITE_COD integer,
    PORC_REDBASE numeric(15,2),
    PONTOS numeric(15,4),
    LOCALIZACAO21 varchar(60),
    LOCALIZACAO22 varchar(60),
    LOCALIZACAO31 varchar(60),
    LOCALIZACAO32 varchar(60),
    LOCALIZACAO41 varchar(60),
    LOCALIZACAO42 varchar(60),
    LOCALIZACAO51 varchar(60),
    LOCALIZACAO52 varchar(60),
    PORC_FCP numeric(15,2),
    FLG_TRIBUTO char(1),
    PORC_OFERTA numeric(15,2),
    EXIBE_FICHA char(1),
    FLG_COTACAO char(1))
as
begin
if (OPERACAO = 1) then
insert into PRODUTO (CODIGO,NOME,COD_GRUPO,COD_FORNECEDOR,MARCA,UNIDADE_ESTOQUE,UNIDADE_CONVERSAO,QTD_EMBALAGEM,PORC_LUCRO_V,PORC_LUCRO_P,PORC_ICMS_ISS,PORC_COMISSAO,
COD_CST,ESTOQUE_INICIAL,ESTOQUE_MINIMO,ESTOQUE_ATUAL,ESTOQUE_FISCAL,COD_TRIB,COD_TRIB_ENT,SIT_TRIB,DT_CADASTRO,FLG_ATIVADO,FLG_ESTOQUE,FLG_TIPO,LOCALIZACAO,OBSERVACAO,
OBSERVACAO2,DT_ALTERACAO,TEMPO_REAL,NCM,COD_CSOSN,CONV_PRECO,CST_PIS,CST_COFINS,COD_SUBGRUPO,COD_SUBSUBGRUPO,ESTOQUE1,ESTOQUE2,ESTOQUE3,ESTOQUE4,ESTOQUE5,PORC_PIS,PORC_COFINS,
OBS_ADICIONAL,DT_VALIDADE,PORC_IPI,PORC_MVA,PESO_BRUTO,PESO_LIQUIDO,FOTO,ANEXO,COD_ANP,LOCALIZACAO2,ETIQUETA,COD_CEST,COD_EMPRESA,PORC_DESC,FLG_DESC,ESTOQUE_MAXIMO,ESTOQUE_DEMANDA_MEDIA,
ESTOQUE_TEMPO_RESUPRI,ESTOQUE_INTERVALO_RESUPRI,COD_DESP,COD_MARCA,FLG_SITE,FLG_BALANCA,SITE_COMPRIMENTO,SITE_LARGURA,SITE_ALTURA,SITE_DESCRICAO,SITE_SYNC,SITE_COD,PORC_REDBASE,PONTOS,
LOCALIZACAO21,LOCALIZACAO22,LOCALIZACAO31,LOCALIZACAO32,LOCALIZACAO41,LOCALIZACAO42,LOCALIZACAO51,LOCALIZACAO52, PORC_FCP, FLG_TRIBUTO,PORC_OFERTA,EXIBE_FICHA, FLG_COTACAO)
values (:CODIGO,:NOME,:COD_GRUPO,:COD_FORNECEDOR,:MARCA,:UNIDADE_ESTOQUE,:UNIDADE_CONVERSAO,:QTD_EMBALAGEM,:PORC_LUCRO_V,:PORC_LUCRO_P,:PORC_ICMS_ISS,:PORC_COMISSAO,:COD_CST,:ESTOQUE_INICIAL,:ESTOQUE_MINIMO,
:ESTOQUE_ATUAL,:ESTOQUE_FISCAL,:COD_TRIB,:COD_TRIB_ENT,:SIT_TRIB,:DT_CADASTRO,:FLG_ATIVADO,:FLG_ESTOQUE,:FLG_TIPO,:LOCALIZACAO,:OBSERVACAO,:OBSERVACAO2,:DT_ALTERACAO,:TEMPO_REAL,:NCM,:COD_CSOSN, 
:CONV_PRECO,:CST_PIS,:CST_COFINS,:COD_SUBGRUPO,:COD_SUBSUBGRUPO,:ESTOQUE1,:ESTOQUE2,:ESTOQUE3,:ESTOQUE4,:ESTOQUE5,:PORC_PIS,:PORC_COFINS,:OBS_ADICIONAL,:DT_VALIDADE,:PORC_IPI,:PORC_MVA,:PESO_BRUTO, 
:PESO_LIQUIDO,:FOTO,:ANEXO,:COD_ANP,:LOCALIZACAO2,:ETIQUETA,:COD_CEST,
:COD_EMPRESA,:PORC_DESC,:FLG_DESC,:ESTOQUE_MAXIMO,:ESTOQUE_DEMANDA_MEDIA,:ESTOQUE_TEMPO_RESUPRI,:ESTOQUE_INTERVALO_RESUPRI,:COD_DESP,:COD_MARCA,:FLG_SITE,:FLG_BALANCA,
:SITE_COMPRIMENTO,:SITE_LARGURA,:SITE_ALTURA,:SITE_DESCRICAO,:SITE_SYNC,:SITE_COD,:PORC_REDBASE,:PONTOS,:LOCALIZACAO21,:LOCALIZACAO22,:LOCALIZACAO31,:LOCALIZACAO32,:LOCALIZACAO41, 
:LOCALIZACAO42,:LOCALIZACAO51,:LOCALIZACAO52,:PORC_FCP, :FLG_TRIBUTO, :PORC_OFERTA, :EXIBE_FICHA, :FLG_COTACAO);
if (OPERACAO = 2) then
update PRODUTO set
NOME = :NOME,
COD_GRUPO = :COD_GRUPO,
COD_FORNECEDOR = :COD_FORNECEDOR,
MARCA = :MARCA,
UNIDADE_ESTOQUE = :UNIDADE_ESTOQUE,
UNIDADE_CONVERSAO = :UNIDADE_CONVERSAO,
QTD_EMBALAGEM = :QTD_EMBALAGEM,
PORC_LUCRO_V = :PORC_LUCRO_V,
PORC_LUCRO_P = :PORC_LUCRO_P,
PORC_ICMS_ISS = :PORC_ICMS_ISS,
PORC_COMISSAO = :PORC_COMISSAO,
COD_CST = :COD_CST,
ESTOQUE_INICIAL = :ESTOQUE_INICIAL,
ESTOQUE_MINIMO = :ESTOQUE_MINIMO, 
ESTOQUE_ATUAL = :ESTOQUE_ATUAL,
ESTOQUE_FISCAL = :ESTOQUE_FISCAL, 
COD_TRIB = :COD_TRIB,
COD_TRIB_ENT = :COD_TRIB_ENT,
SIT_TRIB = :SIT_TRIB,
DT_CADASTRO = :DT_CADASTRO,
FLG_ATIVADO = :FLG_ATIVADO,
FLG_ESTOQUE = :FLG_ESTOQUE,
FLG_TIPO = :FLG_TIPO,
LOCALIZACAO = :LOCALIZACAO,
OBSERVACAO = :OBSERVACAO,
OBSERVACAO2 = :OBSERVACAO2,
DT_ALTERACAO = :DT_ALTERACAO,
TEMPO_REAL = :TEMPO_REAL,
NCM = :NCM,
COD_CSOSN = :COD_CSOSN, 
CONV_PRECO = :CONV_PRECO,
CST_PIS = :CST_PIS,
CST_COFINS = :CST_COFINS,
COD_SUBGRUPO = :COD_SUBGRUPO,
COD_SUBSUBGRUPO = :COD_SUBSUBGRUPO,
ESTOQUE1 = :ESTOQUE1,
ESTOQUE2 = :ESTOQUE2,
ESTOQUE3 = :ESTOQUE3,
ESTOQUE4 = :ESTOQUE4,
ESTOQUE5 = :ESTOQUE5,
PORC_PIS = :PORC_PIS,
PORC_COFINS = :PORC_COFINS,
OBS_ADICIONAL = :OBS_ADICIONAL,
DT_VALIDADE = :DT_VALIDADE,
PORC_IPI = :PORC_IPI,
PORC_MVA = :PORC_MVA,
PESO_BRUTO = :PESO_BRUTO,
PESO_LIQUIDO = :PESO_LIQUIDO,
FOTO = :FOTO,
ANEXO = :ANEXO,
COD_ANP = :COD_ANP,
LOCALIZACAO2 = :LOCALIZACAO2,
ETIQUETA = :ETIQUETA,
COD_CEST = :COD_CEST,
COD_EMPRESA = :COD_EMPRESA,
PORC_DESC = :PORC_DESC,
FLG_DESC = :FLG_DESC,
ESTOQUE_MAXIMO = :ESTOQUE_MAXIMO,
ESTOQUE_DEMANDA_MEDIA = :ESTOQUE_DEMANDA_MEDIA,
ESTOQUE_TEMPO_RESUPRI = :ESTOQUE_TEMPO_RESUPRI,
ESTOQUE_INTERVALO_RESUPRI = :ESTOQUE_INTERVALO_RESUPRI,
COD_DESP = :COD_DESP,
COD_MARCA = :COD_MARCA,
FLG_SITE = :FLG_SITE,
FLG_BALANCA = :FLG_BALANCA,
SITE_COMPRIMENTO = :SITE_COMPRIMENTO,
SITE_LARGURA = :SITE_LARGURA,
SITE_ALTURA = :SITE_ALTURA,
SITE_DESCRICAO = :SITE_DESCRICAO,
SITE_SYNC = :SITE_SYNC,
SITE_COD = :SITE_COD,
PORC_REDBASE = :PORC_REDBASE,
PONTOS = :PONTOS,
LOCALIZACAO21 = :LOCALIZACAO21,
LOCALIZACAO22 = :LOCALIZACAO22,
LOCALIZACAO31 = :LOCALIZACAO31,
LOCALIZACAO32 = :LOCALIZACAO32,
LOCALIZACAO41 = :LOCALIZACAO41,
LOCALIZACAO42 = :LOCALIZACAO42,
LOCALIZACAO51 = :LOCALIZACAO51,
LOCALIZACAO52 = :LOCALIZACAO52,
PORC_FCP = :PORC_FCP,
FLG_TRIBUTO = :FLG_TRIBUTO,
PORC_OFERTA = :PORC_OFERTA,
EXIBE_FICHA = :EXIBE_FICHA,
FLG_COTACAO = :FLG_COTACAO
where (CODIGO = :CODIGO);
if (OPERACAO = 3) then
delete from PRODUTO 
where (CODIGO = :CODIGO);
suspend;
end
^
CREATE TABLE PROD_PERDA (
    CODIGO INTEGER NOT NULL,
    COD_PROD INTEGER,
    COD_FUNC INTEGER,
    OBSERV VARCHAR(100),
    QUANT NUMERIC(15,2),
    DT_FABRICACAO DATE,
    DT_DESCARTE DATE)

^
ALTER TABLE PROD_PERDA ADD CONSTRAINT PK_PROD_PERDA PRIMARY KEY (CODIGO);
^
alter table prod_perda add Constraint FK_PROD foreign key (COD_PROD) references PRODUTO (CODIGO);
^
alter table prod_perda add Constraint FK_FUNC foreign key (COD_FUNC) references FUNCIONARIO (CODIGO);
^
CREATE OR ALTER TRIGGER TRG_PROD_PERDA FOR PROD_PERDA
ACTIVE BEFORE INSERT POSITION 0
AS
declare variable cod integer;
begin
 select max(CODIGO) from PROD_PERDA into :cod;
if (cod is null) then cod = 0;
new.codigo = cod + 1;
end
^
create or alter procedure P_PROD_PERDA (
    OPERACAO integer,
    CODIGO integer,
    COD_FUNC integer,
    COD_PROD integer,
    DT_DESCARTE Date,
    DT_FABRICACAO date, 
    OBSERV varchar(100),
    QUANT numeric(15,2)
    )
as
begin
  if (operacao = 1) then
     insert into PROD_PERDA (CODIGO,COD_FUNC,COD_PROD,DT_DESCARTE,DT_FABRICACAO,OBSERV,QUANT)
     values (:CODIGO,:COD_FUNC,:COD_PROD,:DT_DESCARTE,:DT_FABRICACAO,:OBSERV,:QUANT);

  if (operacao = 2) then
     update PROD_PERDA set
     CODIGO = :CODIGO,
     COD_FUNC = :COD_FUNC,
     COD_PROD = :COD_PROD,
     DT_DESCARTE = :DT_DESCARTE,
     DT_FABRICACAO = :DT_FABRICACAO,
     OBSERV = :OBSERV,
     QUANT = :QUANT
     where (CODIGO = :CODIGO);

  if (operacao = 3) then
     delete from PROD_PERDA
     where (CODIGO = :CODIGO);

  suspend;
end
^
insert into configuracao(COD_TELA,NOME_TELA,MENU,CAMPO,DESCRICAO,VALOR,VALIDO,FLG_RESTRITO)
values('COMPRA','LANCAMENTOS','ENTRADAS','RELACIONADOS','ATUALIZAR PREÇO DE PRODUTOS RELACIONADOS', 'NAO', 'SIM;NAO', 'N');
^
insert into configuracao(COD_TELA,NOME_TELA,MENU,CAMPO,DESCRICAO,VALOR,VALIDO,FLG_RESTRITO)
values('COMPRA','LANCAMENTOS','ENTRADAS','TIMER_PRECO','AGENDAR HORARIO P/ ATUALIZAR PRECO DE XMLS DE ENTRADA', 'NAO', 'SIM;NAO', 'N');
^
ALTER TABLE PRECO
ADD VLR_PENDENTE BLOB SUB_TYPE 1 SEGMENT SIZE 4096
^
ALTER TABLE PRECO
ADD DT_AGENDADO TIMESTAMP
^
create or alter procedure P_PRECO (
    OPERACAO integer,
    CODIGO integer,
    COD_PROD integer,
    CODMOV integer,
    DT_INI date,
    DT_FIM date,
    PR_CUSTO numeric(15,2),
    PR_CUSTOF numeric(15,2),
    PR_CONCORRENTE numeric(15,2),
    PR_VISTA numeric(15,2),
    PR_PRAZO numeric(15,2),
    OBSERVACAO varchar(100),
    DT_ALTERACAO date,
    PR_CUSTO_MEDIO numeric(15,2),
    VLR_PENDENTE blob SUB_TYPE 1 SEGMENT SIZE 4096,
    DT_AGENDADO timestamp)
as
begin  
IF (OPERACAO = 1) THEN  
INSERT INTO PRECO (CODIGO,COD_PROD,CODMOV,DT_INI,DT_FIM,PR_CUSTO,PR_CUSTOF,PR_CONCORRENTE,PR_VISTA,PR_PRAZO,OBSERVACAO,DT_ALTERACAO,PR_CUSTO_MEDIO,VLR_PENDENTE,DT_AGENDADO)
VALUES (:CODIGO,:COD_PROD,:CODMOV,:DT_INI,:DT_FIM,:PR_CUSTO,:PR_CUSTOF,:PR_CONCORRENTE,:PR_VISTA,:PR_PRAZO,:OBSERVACAO,:DT_ALTERACAO,:PR_CUSTO_MEDIO,:VLR_PENDENTE,:DT_AGENDADO);
IF (OPERACAO = 2) THEN 
UPDATE PRECO SET 
COD_PROD = :COD_PROD, 
CODMOV = :CODMOV,  
DT_INI = :DT_INI, 
DT_FIM = :DT_FIM,   
PR_CUSTO = :PR_CUSTO, 
PR_CUSTOF = :PR_CUSTOF,  
PR_CONCORRENTE = :PR_CONCORRENTE, 
PR_VISTA = :PR_VISTA, 
PR_PRAZO = :PR_PRAZO, 
OBSERVACAO = :OBSERVACAO, 
DT_ALTERACAO = :DT_ALTERACAO, 
PR_CUSTO_MEDIO = :PR_CUSTO_MEDIO,
VLR_PENDENTE = :VLR_PENDENTE,
DT_AGENDADO = :DT_AGENDADO
WHERE (CODIGO = :CODIGO); 
IF (OPERACAO = 3) THEN 
DELETE FROM PRECO  
WHERE (CODIGO = :CODIGO); 
suspend;
end
^
CREATE TABLE MOVIT_VOUCHER (
    CODMOV     INTEGER NOT NULL,
    ITEM       INTEGER NOT NULL,
    COD_PROD   INTEGER NOT NULL,
    VLR_UNIT   NUMERIC(15,2),
    VLR_TOTAL  NUMERIC(15,2),
    QUANT      NUMERIC(15,3)
)
^
ALTER TABLE MOVIT_VOUCHER ADD CONSTRAINT PK_MOVIT_VOUCHER PRIMARY KEY (CODMOV, ITEM);
^
ALTER TABLE MOVIT_VOUCHER ADD CONSTRAINT FK_MOVIT_VOUCHER_1 FOREIGN KEY (CODMOV) REFERENCES MOVTO_VOUCHER (CODIGO);
^
ALTER TABLE MOVIT_VOUCHER ADD CONSTRAINT FK_MOVIT_VOUCHER_2 FOREIGN KEY (COD_PROD) REFERENCES PRODUTO (CODIGO);
^
create or alter procedure P_MOVIT_VOUCHER (
    OPERACAO integer,
    CODMOV integer,
    ITEM integer,
    COD_PROD integer,
    VLR_UNIT numeric(15,2),
    VLR_TOTAL numeric(15,2),
    QUANT numeric(15,3))
as
begin
  if (operacao = 1) then
    insert into movit_voucher (codmov,item,cod_prod,vlr_unit,vlr_total,quant)
    values (:codmov,:item,:cod_prod,:vlr_unit,:vlr_total,:quant);

  if (operacao = 2) then
    update movit_voucher set 
      cod_prod = :cod_prod,
      vlr_unit = :vlr_unit,
      vlr_total = :vlr_total,
      quant = :quant
    where
    (codmov = :codmov) and (item = :item);
  if (operacao = 3) then
    delete from movit_voucher
    where (codmov = :codmov) and (item = :item);
end
^
CREATE TABLE MOVTO_VOUCHER (
    CODIGO     INTEGER NOT NULL,
    CODMOV     INTEGER,
    DATA       DATE,
    DATA_FIM   DATE,
    VLR_TOTAL  NUMERIC(15,2),
    OBSERV     VARCHAR(200),
    COD_FUNC   INTEGER,
    FLG_TIPO   CHAR(1),
    COD_CLI    INTEGER
)
^
ALTER TABLE MOVTO_VOUCHER ADD CONSTRAINT PK_MOVTO_VOUCHER PRIMARY KEY (CODIGO);
^
ALTER TABLE MOVTO_VOUCHER ADD CONSTRAINT FK_MOVTO_VOUCHER_1 FOREIGN KEY (CODMOV) REFERENCES MOVTO (CODIGO);
^
ALTER TABLE MOVTO_VOUCHER ADD CONSTRAINT FK_MOVTO_VOUCHER_2 FOREIGN KEY (COD_FUNC) REFERENCES FUNCIONARIO (CODIGO);
^
ALTER TABLE MOVTO_VOUCHER ADD CONSTRAINT FK_MOVTO_VOUCHER_3 FOREIGN KEY (COD_CLI) REFERENCES CLIENTE (CODIGO);
^
create or alter procedure P_MOVTO_VOUCHER (
    OPERACAO integer,
    CODIGO integer,
    CODMOV integer,
    DATA date,
    DATA_FIM date,
    VLR_TOTAL numeric(15,2),
    OBSERV varchar(200),
    COD_FUNC integer,
    FLG_TIPO char(1),
    COD_CLI integer)
as
begin
  if (operacao = 1) then
    insert into movto_voucher (codigo,codmov,data,data_fim,vlr_total,observ,cod_func,flg_tipo,cod_cli)
    values (:codigo,:codmov,:data,:data_fim,:vlr_total,:observ,:cod_func,:flg_tipo,:cod_cli);
  if (operacao = 2) then
    update movto_voucher
    set codmov = :codmov,
        data = :data,
        data_fim = :data_fim,
        vlr_total = :vlr_total,
        observ = :observ,
        cod_func = :cod_func,
        flg_tipo = :flg_tipo,
        cod_cli = :cod_cli
    where (codigo = :codigo);
  if (operacao = 3) then
    delete from movto_voucher
    where (codigo = :codigo);
end
^

^
CREATE OR ALTER TRIGGER TRG_MOV_VOUCHER FOR movto_voucher
ACTIVE BEFORE INSERT POSITION 0
AS
declare variable cod integer;
begin
  select max(CODIGO) from movto_voucher into :cod;

  if (cod is null) then cod = 0;

  new.codigo = cod + 1;
end
^
CREATE OR ALTER TRIGGER TRG_MOVIT_VOUCHER FOR MOVIT_VOUCHER
ACTIVE BEFORE INSERT POSITION 0
AS
DECLARE VARIABLE ITEM INTEGER;
begin
   SELECT MAX(ITEM) FROM MOVIT_VOUCHER
   WHERE (CODMOV = new.CODMOV)
   INTO :ITEM;

   IF (ITEM IS NULL) THEN
     ITEM = 0;

   NEW.ITEM = ITEM + 1;
end
^
insert into configuracao(COD_TELA,NOME_TELA,MENU,CAMPO,DESCRICAO,VALOR,VALIDO,FLG_RESTRITO)
values('VENDA','VENDAS','SAIDAS','VOUCHER','HABILITAR ENTRADA DE CUPOM DE VOUCHER', 'NAO', 'SIM;NAO', 'N');
^
insert into configuracao(COD_TELA,NOME_TELA,MENU,CAMPO,DESCRICAO,VALOR,VALIDO,FLG_RESTRITO)
values('PRODUTO','PRODUTOS','CADASTROS','PROMO','HABILITAR CADASTRO DE PRECOS PROMOCIONAIS', 'NAO', 'SIM;NAO', 'N');
^
insert into configuracao(COD_TELA,NOME_TELA,MENU,CAMPO,DESCRICAO,VALOR,VALIDO,FLG_RESTRITO)
values('HOOK','CONFIGURACOES','PRINCIPAL','HOOKJANELA','UTILIZAR HOOK DE JANELA', 'SIM', 'SIM;NAO', 'S');
^
ALTER TABLE PRECO
ADD FLG_PROMO CHAR(1)
DEFAULT 'N' 
^
ALTER TABLE PRECO
ADD DT_INIP TIMESTAMP
^
ALTER TABLE PRECO
ADD DT_FIMP TIMESTAMP
^
ALTER TABLE PRECO
ADD COD_PRECO INTEGER
^
create or alter procedure P_PRECO (
    OPERACAO integer,
    CODIGO integer,
    COD_PROD integer,
    CODMOV integer,
    DT_INI date,
    DT_FIM date,
    PR_CUSTO numeric(15,2),
    PR_CUSTOF numeric(15,2),
    PR_CONCORRENTE numeric(15,2),
    PR_VISTA numeric(15,2),
    PR_PRAZO numeric(15,2),
    OBSERVACAO varchar(100),
    DT_ALTERACAO date,
    PR_CUSTO_MEDIO numeric(15,2),
    VLR_PENDENTE blob sub_type 1 segment size 4096,
    DT_AGENDADO timestamp,
    FLG_PROMO char(1),
    DT_INIP timestamp,
    DT_FIMP timestamp,
    COD_PRECO integer)
as
begin  
IF (OPERACAO = 1) THEN  
INSERT INTO PRECO (CODIGO,COD_PROD,CODMOV,DT_INI,DT_FIM,PR_CUSTO,PR_CUSTOF,PR_CONCORRENTE,PR_VISTA,PR_PRAZO,OBSERVACAO,DT_ALTERACAO,PR_CUSTO_MEDIO,VLR_PENDENTE,DT_AGENDADO,FLG_PROMO,DT_INIP,DT_FIMP,COD_PRECO)
VALUES (:CODIGO,:COD_PROD,:CODMOV,:DT_INI,:DT_FIM,:PR_CUSTO,:PR_CUSTOF,:PR_CONCORRENTE,:PR_VISTA,:PR_PRAZO,:OBSERVACAO,:DT_ALTERACAO,:PR_CUSTO_MEDIO,:VLR_PENDENTE,:DT_AGENDADO,:FLG_PROMO,:DT_INIP,:DT_FIMP,:COD_PRECO);
IF (OPERACAO = 2) THEN 
UPDATE PRECO SET 
COD_PROD = :COD_PROD, 
CODMOV = :CODMOV,  
DT_INI = :DT_INI, 
DT_FIM = :DT_FIM,   
PR_CUSTO = :PR_CUSTO, 
PR_CUSTOF = :PR_CUSTOF,  
PR_CONCORRENTE = :PR_CONCORRENTE, 
PR_VISTA = :PR_VISTA, 
PR_PRAZO = :PR_PRAZO, 
OBSERVACAO = :OBSERVACAO, 
DT_ALTERACAO = :DT_ALTERACAO, 
PR_CUSTO_MEDIO = :PR_CUSTO_MEDIO,
VLR_PENDENTE = :VLR_PENDENTE,
DT_AGENDADO = :DT_AGENDADO,
FLG_PROMO = :FLG_PROMO,
DT_INIP = :DT_INIP,
DT_FIMP = :DT_FIMP,
COD_PRECO = :COD_PRECO
WHERE (CODIGO = :CODIGO); 
IF (OPERACAO = 3) THEN 
DELETE FROM PRECO  
WHERE (CODIGO = :CODIGO); 
suspend;
end
^
insert into configuracao(COD_TELA,NOME_TELA,MENU,CAMPO,DESCRICAO,VALOR,VALIDO,FLG_RESTRITO)
values('HOOK','CONFIGURACOES','PRINCIPAL','ANALYTICS','INFORMACOES ANALYTICS', 'SIM', 'SIM;NAO', 'S');
^
insert into configuracao(COD_TELA,NOME_TELA,MENU,CAMPO,DESCRICAO,VALOR,VALIDO,FLG_RESTRITO)
values('SG_10','CONFIGURACOES','PRINCIPAL','DLG_VENDA','BUSCAR VENDAS ATE DETERMINADO ANO', '9999', '', 'N');
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0011','BAIXA RECEBER','CONTAS A RECEBER','FLG_DESCONTO','DESEJA ADICIONAR O DESCONTO POR ADIANTAMENTO','NAO','SIM;NAO','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0011','BAIXA RECEBER','CONTAS A RECEBER','DESCONTO','VALOR DESCONTO POR DIA DO ADIANTAMENTO','999999','','N')
^
CREATE INDEX IDX_MOVRECEBER ON RECEBER (CODMOV);
^
ALTER TABLE PARAMETROS
ADD ULT_CONSULTA TIMESTAMP
^
CREATE INDEX IDX_NFECHAVE ON MOVTO (NFE_CHAVE);
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','ORDEM SERVICO','SAIDAS','DLG_OS','HABILITAR DLG_OS NOVA?','SIM','SIM;NAO','N')
^
ALTER TABLE PARAMETROS
ADD DT_EXE VARCHAR(20)
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','VENDAS','SAIDAS','RG_ORDEM','ORDEM DE PESQUISA DLG DE VENDA','3','1;2;3;4;5;6;7;8','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','VENDAS','SAIDAS','RG_ORDEM','ORDEM DE PESQUISA DLG DE VENDA','3','1;2;3;4;5;6;7;8','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','VENDAS','SAIDAS','EXCLUIR','PEDIR SENHA PARA EXCLUIR VENDA','NAO','SIM;NAO','N')
^
insert into configuracao(COD_TELA,NOME_TELA,MENU,CAMPO,DESCRICAO,VALOR,VALIDO,FLG_RESTRITO)
values('XPOCK','XPOCK','CONFIG XPOCK','IMP_LIMITE','IMPRIMIR LIMITE NA VIA DO ENTREGADOR', 'NAO', 'SIM;NAO', 'S')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','VENDAS','SAIDAS','FLG_CLI_PRZ','QUANDO SELECIONAR CLIENTE FORMA DE RECEBIMENTO A PRAZO','SIM','SIM;NAO','N')
^
update EMPRESA set SERIE_VENDA = 2 where nivel in (15,21,64,82);
^
update EMPRESA set SERIE_VENDA = 608 where CNPJ = '38.482.059/0001-36';
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0072','EMISSAO NFE','NFE','FAT_DADOS','DADOS DO PEDIDO DE COMPRA','NAO','SIM;NAO','N')
^
update configuracao set valor = 'SIM'
where (campo = 'FAT_DADOS') and (cod_tela = 'SG_0072')
and exists (select codigo from empresa where cnpj in (
'33.010.786/0001-87',
'33.010.786/0109-05',
'33.010.786/0110-30',
'33.010.786/0113-83',
'56.813.280/0002-92',
'33.010.786/0001-87',
'33.010.786/0109-05',
'33.010.786/0110-30',
'33.010.786/0113-83',
'56.813.280/0002-92',
'41.534.737/0001-71'))
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('RECEBER','RECEBER','CONTAS A RECEBER','EXIBE_TROCO','GERAR TROCO NO RECEBIMENTO, DESABILITA A FUNÇÃO DE GERAR CRÉDITO','NAO','SIM;NAO','N')
^
update configuracao set valor = 'SIM'
where (campo = 'EXIBE_TROCO') and (cod_tela = 'RECEBER')
and exists (select codigo from empresa where cnpj = '27.990.988/0001-30')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0134','VENDAS','SAIDAS','SENHA','PEDIR SENHA ANTES DE FINALIZAR VENDA','NAO','NAO;SENHA;DLG','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('RECEBER','RECEBER','CONTAS A RECEBER','PREVIEW','MOSTRAR PREVIEW NO EXTRATO DE CONTAS A RECEBER','SIM','SIM;NAO','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0134','VENDAS','SAIDAS','EST_ORC','BAIXAR ESTOQUE DE ORCAMENTO','NAO','SIM;NAO','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0134','VENDAS','SAIDAS','AGRUPAR','AGRUPAR PRODUTOS REPETIDOS','NAO','SIM;NAO','N')
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('SG_0072', 'EMISSAO NFE', 'NFE', 'PLACA', 'INSERIR PLACA NA OBS DA NOTA', 'NAO', 'SIM;NAO', 'N');
^
update CONFIGURACAO set VALOR = 'SIM' where (COD_TELA = 'SG_0072' and CAMPO = 'PLACA')
AND EXISTS(select 1 from empresa where CNPJ = '28.172.456/0001-58')  --Bean
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('VENDA', 'VENDAS', 'SAIDAS', 'PESQ_PLACA', 'CADASTRAR VENDA A PARTIR DA PESQUISA POR PLACA', 'NAO', 'SIM;NAO', 'N')
^
update CONFIGURACAO set VALOR = 'SIM'
where (COD_TELA = 'VENDA' and CAMPO = 'PESQ_PLACA')
and EXISTS (select 1 from empresa where CNPJ = '28.172.456/0001-58')
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO) VALUES ('VENDA', 'VENDAS', 'SAIDAS', 'LISTBOX', 'PASSAR PELA QUANTIDADE APOS ESCOLHER PRODUTO', 'SIM', 'SIM;NAO', 'N');
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0134','VENDAS','SAIDAS','PROD_BALANCA','PASSAR PELA QUANTIDADE QUANDO FOR PRODUTO DE BALANCA MAS SEM LER CODIGO DE BARRAS','SIM','SIM;NAO','N')
^
ALTER TABLE EMPRESA
ADD FLG_MATERA CHAR(1),
ADD MATERA_CONTA VARCHAR(40),
ADD MATERA_CHAVE VARCHAR(40)
^
ALTER TABLE PAGAR
ADD COD_REPARCELA INTEGER
^
update RDB$RELATION_FIELDS set
RDB$NULL_FLAG = NULL
where (RDB$FIELD_NAME = 'CRED_DEB') and
(RDB$RELATION_NAME = 'PAGAR')
^
create or alter procedure P_PAGAR (
    OPERACAO integer,
    CODIGO integer,
    PARCELA integer,
    CODMOV integer,
    COD_FOR integer,
    DT_COMPRA date,
    DT_VENCTO date,
    VLR_PARC numeric(15,2),
    VLR_ACRES numeric(15,2),
    VLR_DESC numeric(15,2),
    SALDO numeric(15,2),
    HISTORICO varchar(100),
    DOCUMENTO varchar(20),
    SERIE varchar(3),
    COD_BANCO integer,
    COD_CAIXA integer,
    COD_DESP integer,
    COD_EMPRESA integer,
    CRED_DEB char(1),
    COD_REPARCELA integer)
as
begin
  IF (OPERACAO = 1) THEN
    INSERT INTO PAGAR (CODIGO,PARCELA,CODMOV,COD_FOR,DT_COMPRA,DT_VENCTO,VLR_PARC,VLR_ACRES,VLR_DESC,SALDO,HISTORICO,DOCUMENTO,SERIE,COD_BANCO,COD_CAIXA,COD_DESP,COD_EMPRESA,CRED_DEB,COD_REPARCELA)
    VALUES (:CODIGO,:PARCELA,:CODMOV,:COD_FOR,:DT_COMPRA,:DT_VENCTO,:VLR_PARC,:VLR_ACRES,:VLR_DESC,:SALDO,:HISTORICO,:DOCUMENTO,:SERIE,:COD_BANCO,:COD_CAIXA,:COD_DESP,:COD_EMPRESA,:CRED_DEB,:COD_REPARCELA);

  IF (OPERACAO = 2) THEN
    UPDATE PAGAR SET
    PARCELA = :PARCELA,
    CODMOV = :CODMOV,
    COD_FOR = :COD_FOR,
    DT_COMPRA = :DT_COMPRA,
    DT_VENCTO = :DT_VENCTO,
    VLR_PARC = :VLR_PARC,
    VLR_ACRES = :VLR_ACRES,
    VLR_DESC = :VLR_DESC,
    SALDO = :SALDO,
    HISTORICO = :HISTORICO,
    DOCUMENTO = :DOCUMENTO,
    SERIE = :SERIE,
    COD_BANCO = :COD_BANCO,
    COD_CAIXA = :COD_CAIXA,
    COD_DESP = :COD_DESP,
    COD_EMPRESA = :COD_EMPRESA,
    CRED_DEB = :CRED_DEB,
    COD_REPARCELA = :COD_REPARCELA
    WHERE (CODIGO = :CODIGO);

  IF (OPERACAO = 3) THEN
    DELETE FROM PAGAR
    WHERE (CODIGO = :CODIGO);

  suspend;
end
^
CREATE TABLE REPARCELA_PAG (
    CODIGO       INTEGER NOT NULL,
    COD_ANT      INTEGER NOT NULL,
    COD_NOVO     INTEGER NOT NULL,
    COD_FOR      INTEGER NOT NULL,
    AGRUPA       INTEGER NOT NULL,
    COD_FUNC     INTEGER NOT NULL,
    DT_CADASTRO  DATE NOT NULL
)
^
ALTER TABLE REPARCELA_PAG ADD CONSTRAINT PK_REPARCELA_PAG PRIMARY KEY (CODIGO)
^
ALTER TABLE REPARCELA_PAG ADD CONSTRAINT FK_REPARCELA_PAG_1 FOREIGN KEY (COD_ANT) REFERENCES PAGAR (CODIGO) ON DELETE CASCADE;
^
ALTER TABLE REPARCELA_PAG ADD CONSTRAINT FK_REPARCELA_PAG_2 FOREIGN KEY (COD_NOVO) REFERENCES PAGAR (CODIGO) ON DELETE CASCADE;
^
ALTER TABLE REPARCELA_PAG ADD CONSTRAINT FK_REPARCELA_PAG_3 FOREIGN KEY (COD_FUNC) REFERENCES FUNCIONARIO (CODIGO) ON DELETE CASCADE;
^
ALTER TABLE REPARCELA_PAG ADD CONSTRAINT FK_REPARCELA_PAG_4 FOREIGN KEY (COD_FOR) REFERENCES FORNECEDOR (CODIGO) ON DELETE CASCADE;
^
CREATE OR ALTER TRIGGER TRG_REPARCELA_PAG FOR REPARCELA_PAG
ACTIVE BEFORE INSERT POSITION 0
AS 
declare variable cod integer; 
begin 
select max(CODIGO) from REPARCELA_PAG into :cod;
if (cod is null) then cod = 0; 
new.codigo = cod + 1; 
end
^
create or alter procedure P_REPARCELA_PAG (
    OPERACAO integer,
    CODIGO integer,
    COD_ANT integer,
    COD_NOVO integer,
    COD_FOR integer,
    AGRUPA integer,
    COD_FUNC integer,
    DT_CADASTRO date)
as
begin 
if (operacao = 1) then 
insert into REPARCELA_PAG (CODIGO,COD_ANT,COD_NOVO,COD_FOR,AGRUPA,COD_FUNC,DT_CADASTRO)
values (:CODIGO,:COD_ANT,:COD_NOVO,:COD_FOR,:AGRUPA,:COD_FUNC,:DT_CADASTRO);
if (operacao = 2) then
update REPARCELA_PAG set
COD_ANT = :COD_ANT,
COD_NOVO = :COD_NOVO, 
COD_FOR = :COD_FOR,
AGRUPA = :AGRUPA,
COD_FUNC = :COD_FUNC,
DT_CADASTRO = :DT_CADASTRO
where (CODIGO = :CODIGO);
if (operacao = 3) then 
delete from REPARCELA_PAG
where (CODIGO = :CODIGO); 
suspend;
end
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('RECEBER', 'RECEBER', 'CONTAS A RECEBER', 'FLG_COMP_PAG', 'HABILITAR ATALHO PARA IMPRIMIR COMPROVANTE DE PAGAMENTO', 'NAO', 'SIM;NAO', 'S');
^
create or alter procedure P_EMPRESA (
    OPERACAO integer,
    CODIGO integer,
    RAZAO_SOCIAL varchar(60),
    FANTASIA varchar(60),
    ENDERECO varchar(60),
    BAIRRO varchar(60),
    COD_CID integer,
    CEP varchar(10),
    FONE varchar(20),
    FAX varchar(20),
    E_MAIL varchar(60),
    CONTATO varchar(20),
    CNPJ varchar(20),
    INSC_EST varchar(20),
    INSC_MUN varchar(20),
    COD_CLIENTE integer,
    COD_MOTORISTA integer,
    COD_TRIB_VENDA integer,
    COD_PRODUTO integer,
    COD_ENT_ESTOQ integer,
    COD_SAI_ESTOQ integer,
    NIVEL integer,
    FINANCEIRO char(1),
    ATUALIZA_PRECO char(1),
    FLG_JUROS char(1),
    PRAZO_JUROS integer,
    PORC_JUROS numeric(15,2),
    FLG_IMPRESSAO char(1),
    FLG_CAIXA char(1),
    SENHAX varchar(10),
    SENHAX2 varchar(10),
    COMISSAO_VEND numeric(15,3),
    COMISSAO_INSTAL numeric(15,3),
    FLG_BOLETO char(1),
    COD_PRODUTO2 integer,
    SENHAX3 varchar(10),
    FLG_NFE char(1),
    FLG_SIMPLES char(1),
    CNAE varchar(10),
    SMS_USUARIO varchar(20),
    SMS_SENHA varchar(20),
    CONSULTA_CODIGO varchar(10),
    CONSULTA_SENHA varchar(10),
    EMAIL_LOGIN varchar(50),
    EMAIL_SENHA varchar(30),
    EMAIL_SMTP varchar(30),
    EMAIL_PORTA varchar(5),
    EMAIL_SSL char(1),
    EMAIL_TLS char(1),
    FLG_FISCAL char(1),
    PORC_CHPRE numeric(15,2),
    OBSERV_PEDIDO varchar(60),
    PORC_MULTA numeric(15,2),
    FOTO_TELA blob sub_type 0 segment size 80,
    CREDITO_ICMS numeric(15,2),
    LOGOTIPO blob sub_type 0 segment size 80,
    LOGO_VENDA blob sub_type 0 segment size 80,
    LOGO_TELA blob sub_type 0 segment size 80,
    LOGO_ICONE blob sub_type 0 segment size 80,
    SERIE_VENDA integer,
    SERIE_COMPRA integer,
    FLG_MATERA char(1),
    MATERA_CONTA varchar(40),
    MATERA_CHAVE varchar(40))
as
begin  
if (operacao = 1) then  
insert into EMPRESA (CODIGO,RAZAO_SOCIAL,FANTASIA,ENDERECO,BAIRRO,COD_CID,CEP,FONE,FAX,E_MAIL,CONTATO,CNPJ,INSC_EST,INSC_MUN,COD_CLIENTE,COD_MOTORISTA,COD_TRIB_VENDA,COD_PRODUTO,COD_ENT_ESTOQ,COD_SAI_ESTOQ,NIVEL,FINANCEIRO,ATUALIZA_PRECO,FLG_JUROS,
PRAZO_JUROS,PORC_JUROS,FLG_IMPRESSAO,FLG_CAIXA,SENHAX,SENHAX2,COMISSAO_VEND,COMISSAO_INSTAL,FLG_BOLETO,COD_PRODUTO2,SENHAX3,FLG_NFE,FLG_SIMPLES,CNAE,SMS_USUARIO,SMS_SENHA,CONSULTA_CODIGO,CONSULTA_SENHA,EMAIL_LOGIN,EMAIL_SENHA,EMAIL_SMTP,
EMAIL_PORTA,EMAIL_SSL,EMAIL_TLS,FLG_FISCAL,PORC_CHPRE,OBSERV_PEDIDO,PORC_MULTA,FOTO_TELA,CREDITO_ICMS,LOGOTIPO,LOGO_VENDA,LOGO_TELA,LOGO_ICONE,SERIE_VENDA, SERIE_COMPRA,FLG_MATERA,MATERA_CONTA,MATERA_CHAVE)
values (:CODIGO,:RAZAO_SOCIAL,:FANTASIA,:ENDERECO,:BAIRRO,:COD_CID,:CEP,:FONE,:FAX,:E_MAIL,:CONTATO,:CNPJ,:INSC_EST,:INSC_MUN,:COD_CLIENTE,:COD_MOTORISTA,:COD_TRIB_VENDA,:COD_PRODUTO,:COD_ENT_ESTOQ,:COD_SAI_ESTOQ,:NIVEL,:FINANCEIRO,
:ATUALIZA_PRECO,:FLG_JUROS,:PRAZO_JUROS,:PORC_JUROS,:FLG_IMPRESSAO,:FLG_CAIXA,:SENHAX,:SENHAX2,:COMISSAO_VEND,:COMISSAO_INSTAL,:FLG_BOLETO,:COD_PRODUTO2,:SENHAX3,:FLG_NFE,:FLG_SIMPLES,:CNAE,:SMS_USUARIO,:SMS_SENHA,:CONSULTA_CODIGO,
:CONSULTA_SENHA,:EMAIL_LOGIN,:EMAIL_SENHA,:EMAIL_SMTP,:EMAIL_PORTA,:EMAIL_SSL,:EMAIL_TLS,:FLG_FISCAL,:PORC_CHPRE,:OBSERV_PEDIDO,:PORC_MULTA,:FOTO_TELA,:CREDITO_ICMS,:LOGOTIPO,:LOGO_VENDA,:LOGO_TELA,:LOGO_ICONE,:SERIE_VENDA,:SERIE_COMPRA,:FLG_MATERA,:MATERA_CONTA,:MATERA_CHAVE);
if (operacao = 2) then  
update EMPRESA set      
RAZAO_SOCIAL = :RAZAO_SOCIAL,  
FANTASIA = :FANTASIA,   
ENDERECO = :ENDERECO, 
BAIRRO = :BAIRRO,     
COD_CID = :COD_CID, 
CEP = :CEP,    
FONE = :FONE,   
FAX = :FAX,    
E_MAIL = :E_MAIL, 
CONTATO = :CONTATO,  
CNPJ = :CNPJ,  
INSC_EST = :INSC_EST,  
INSC_MUN = :INSC_MUN,    
COD_CLIENTE = :COD_CLIENTE,    
COD_MOTORISTA = :COD_MOTORISTA,   
COD_TRIB_VENDA = :COD_TRIB_VENDA, 
COD_PRODUTO = :COD_PRODUTO,   
COD_ENT_ESTOQ = :COD_ENT_ESTOQ,  
COD_SAI_ESTOQ = :COD_SAI_ESTOQ,  
NIVEL = :NIVEL,  
FINANCEIRO = :FINANCEIRO,   
ATUALIZA_PRECO = :ATUALIZA_PRECO, 
FLG_JUROS = :FLG_JUROS,  
PRAZO_JUROS = :PRAZO_JUROS, 
PORC_JUROS = :PORC_JUROS, 
FLG_IMPRESSAO = :FLG_IMPRESSAO, 
FLG_CAIXA = :FLG_CAIXA,  
SENHAX = :SENHAX,   
SENHAX2 = :SENHAX2,   
COMISSAO_VEND = :COMISSAO_VEND,  
COMISSAO_INSTAL = :COMISSAO_INSTAL,  
FLG_BOLETO = :FLG_BOLETO,  
COD_PRODUTO2 = :COD_PRODUTO2, 
SENHAX3 = :SENHAX3, 
FLG_NFE = :FLG_NFE, 
FLG_SIMPLES = :FLG_SIMPLES, 
CNAE = :CNAE,       
SMS_USUARIO = :SMS_USUARIO,  
SMS_SENHA = :SMS_SENHA, 
CONSULTA_CODIGO = :CONSULTA_CODIGO, 
CONSULTA_SENHA = :CONSULTA_SENHA, 
EMAIL_LOGIN = :EMAIL_LOGIN, 
EMAIL_SENHA = :EMAIL_SENHA,  
EMAIL_SMTP = :EMAIL_SMTP,   
EMAIL_PORTA = :EMAIL_PORTA,  
EMAIL_SSL = : EMAIL_SSL,    
EMAIL_TLS = : EMAIL_TLS,    
FLG_FISCAL = :FLG_FISCAL,
PORC_CHPRE = :PORC_CHPRE,
OBSERV_PEDIDO = :OBSERV_PEDIDO, 
PORC_MULTA = :PORC_MULTA,  
FOTO_TELA = :FOTO_TELA,
CREDITO_ICMS = :CREDITO_ICMS,
LOGOTIPO = :LOGOTIPO,
LOGO_VENDA = :LOGO_VENDA,
LOGO_TELA = :LOGO_TELA,
LOGO_ICONE = :LOGO_ICONE,
SERIE_VENDA = :SERIE_VENDA,
SERIE_COMPRA = :SERIE_COMPRA,
FLG_MATERA = :FLG_MATERA,
MATERA_CONTA = :MATERA_CONTA,
MATERA_CHAVE = :MATERA_CHAVE
where (CODIGO = :CODIGO); 
 if (operacao = 3) then   
delete from EMPRESA    
where (CODIGO = :CODIGO); 
suspend;    
end
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','VENDAS','SAIDAS','ALTERA_PRECO','PERMITE TROCAR PREÇO A VISTA/PREÇO A PRAZO','SIM','SIM;NAO','N')
^
update configuracao set valor = 'NAO'
where (campo = 'ALTERA_PRECO') and (cod_tela = 'VENDA')
and exists (select codigo from empresa where nivel in (
5, 6, 28, 35, 42, 50, 75, 76, 77,
79, 99, 108, 113, 133, 138, 141,
142, 146, 149, 150, 151, 157)
and cnpj not in (
'09.354.068/0001-43',
'21.626.343/0001-36',
'41.561.455/0001-63',
'42.272.459/0001-94',
'43.877.063/0001-33',
'45.146.934/0001-74',
'31.015.257/0001-40',
'46.918.568/0001-97',
'55.477.419/0001-20'))
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','VENDAS','SAIDAS','FLG_SAT_API','ATIVAÇÃO DA API DO SAT','NAO','SIM;NAO','S')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','VENDAS','SAIDAS','HOST_SAT_API','IP ONDE ESTA RODANDO A API','localhost','','S')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('PRODUTO','PRODUTOS','CADASTROS','TIPO_MOVIMENTO','EXIBIR ENTRADA/SAIDA/AMBOS NO CAMPO DE MOVIMENTOS','AMBOS','AMBOS;ENTRADAS;SAIDAS','N')
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('VENDA', 'VENDAS', 'SAIDAS', 'SENHA_FUNC', 'PEDIR SENHA AO TROCAR DE FUNCIONARIO', 'NAO', 'SIM;NAO', 'N');
^
update CONFIGURACAO set valor = 'SIM'
where (cod_tela = 'VENDA' and campo = 'SENHA_FUNC') and
exists (select cnpj from empresa where NIVEL in (5,1,77,76,111,136,13,10,50,91,156))
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('VENDA', 'FINALIZACAO DE VENDA', 'SAIDAS', 'SAT_PADRAO', 'SEMPRE TIRAR SAT NESSA FORMA DE PAGAMENTO', '', '0 - DINHEIRO;1 - PRAZO;2 - CHEQUE VISTA;3 - CHEQUE PRE;4 - CARTAO;8 - PIX;', 'N');
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0026','FECHAMENTO','CAIXA','TIPO_IMPRESSAO','SELECIONAR O TIPO DE IMPRESSAO DO CAIXA','FORMULARIO','FORMULARIO;BOBINA','N')
^
update configuracao set valor = 'BOBINA'
where (campo = 'TIPO_IMPRESSAO') and (cod_tela = 'SG_0026')
and exists (select codigo from empresa where nivel in (
75,81,105,108,109,126,141,147,151,154)
or cnpj in (
'50.557.164/0001-92',
'52.197.988/0001-24',
'31.583.243/0001-23',
'27.990.988/0001-30'))
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('PRODUTO','PRODUTOS','CADASTROS','APENAS_ATIVO','EXIBIR APENAS PRODUTOS ATIVOS NA DLG','N','N;S','N')
^
update configuracao set valor = 'S'
where (campo = 'APENAS_ATIVO') and (cod_tela = 'PRODUTO')
and exists (select codigo from empresa where cnpj = '32.022.111/0001-95')
^
ALTER TABLE MOVTO_OS
ADD HR_ENTRADA TIME
^
ALTER TABLE MOVTO_OS
ADD HR_SAIDA TIME
^
create or alter procedure P_MOVTO_OS (
    OPERACAO integer,
    CODIGO integer,
    CODMOV integer,
    NRO_OS integer,
    DATA_SAIDA date,
    MARCA varchar(60),
    MODELO varchar(60),
    ESNHEX varchar(60),
    FLG_BATERIA char(1),
    FLG_MESA char(1),
    FLG_CHIP char(1),
    FLG_CARTAO char(1),
    FLG_OPERADORA char(1),
    FLG_ESTADO char(1),
    GARANTIA integer,
    OBSERVACAO varchar(100),
    STATUS varchar(20),
    COD_PROD1 integer,
    COD_PROD2 integer,
    COD_PROD3 integer,
    FOTO1 varchar(200),
    FOTO2 varchar(200),
    FOTO3 varchar(200),
    FOTO4 varchar(200),
    FOTO5 varchar(200),
    COD_TECNICO integer,
    FOTO6 varchar(200),
    FOTO7 varchar(200),
    COD_STATUS integer,
    PRAZO_OS varchar(60),
    HR_ENTRADA time,
    HR_SAIDA time)
as
begin
  if (operacao = 1) then
insert into MOVTO_OS (CODIGO,CODMOV,NRO_OS,DATA_SAIDA,MARCA,MODELO,ESNHEX,FLG_BATERIA,FLG_MESA,FLG_CHIP,FLG_CARTAO,FLG_OPERADORA,FLG_ESTADO,GARANTIA,OBSERVACAO,STATUS,COD_PROD1,
COD_PROD2,COD_PROD3,FOTO1,FOTO2,FOTO3,FOTO4,FOTO5,COD_TECNICO,FOTO6,FOTO7, COD_STATUS, PRAZO_OS, HR_ENTRADA, HR_SAIDA)
  values (:CODIGO,:CODMOV,:NRO_OS,:DATA_SAIDA,:MARCA,:MODELO,:ESNHEX,:FLG_BATERIA,:FLG_MESA,:FLG_CHIP,:FLG_CARTAO,:FLG_OPERADORA,:FLG_ESTADO,:GARANTIA,:OBSERVACAO,:STATUS,
:cod_prod1,:cod_prod2,:COD_PROD3,:FOTO1,:FOTO2,:FOTO3,:FOTO4,:FOTO5,:COD_TECNICO,:FOTO6,:FOTO7, :COD_STATUS, :PRAZO_OS, :HR_ENTRADA, :HR_SAIDA);
 if (operacao = 2) then
 update MOVTO_OS set 
 CODMOV = :CODMOV, 
 NRO_OS = :NRO_OS,   
 DATA_SAIDA = :DATA_SAIDA,  
 MARCA = :MARCA, 
 MODELO = :MODELO,  
 ESNHEX = :ESNHEX, 
 FLG_BATERIA = :FLG_BATERIA, 
 FLG_MESA = :FLG_MESA, 
 FLG_CHIP = :FLG_CHIP,  
 FLG_CARTAO = :FLG_CARTAO, 
 FLG_OPERADORA = :FLG_OPERADORA, 
 FLG_ESTADO = :FLG_ESTADO, 
 GARANTIA = :GARANTIA, 
 OBSERVACAO = :OBSERVACAO, 
 STATUS = :STATUS, 
 COD_PROD1 = :cod_prod1, 
 COD_PROD2 = :cod_prod2, 
 COD_PROD3 = :cod_prod3, 
 FOTO1 = :FOTO1, 
 FOTO2 = :FOTO2, 
 FOTO3 = :FOTO3, 
 FOTO4 = :FOTO4, 
 FOTO5 = :FOTO5, 
 COD_TECNICO = :COD_TECNICO, 
 FOTO6 = :FOTO6, 
 FOTO7 = :FOTO7,
 COD_STATUS = :COD_STATUS,
 PRAZO_OS = :PRAZO_OS,
 HR_ENTRADA = :HR_ENTRADA,
 HR_SAIDA = :HR_SAIDA 
    WHERE (CODIGO = :CODIGO);
  if (operacao = 3) then
     delete from MOVTO_OS
     where (CODIGO = :CODIGO);
  suspend;
end
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('RECEBER','RECEBER','CONTAS A RECEBER','FLG_IMP_ABERTO','PERGUNTAR PERIODO AO IMPRIMIR CONTAS EM ABERTO','N','N;S','N')
^
update configuracao set valor = 'S'
where (campo = 'FLG_IMP_ABERTO') and (cod_tela = 'RECEBER')
and exists (select codigo from empresa where cnpj = '21.743.689/0001-14')
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('VENDA', 'VENDAS', 'SAIDAS', 'TROCAR_FUNC', 'PODER TROCAR FUNCIONARIO DA VENDA', 'SIM', 'SIM;NAO', 'N');
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('VENDA', 'VENDAS', 'SAIDAS', 'FUNC_VINCULADO', 'PUXAR SOMENTE O FUNCIONARIO ESPECIFICO PARA AQUELE CLIENTE', 'NAO', 'SIM;NAO', 'N');
^
update configuracao set valor = 'SIM'
where (campo = 'TROCAR_FUNC') and (cod_tela = 'VENDA')
and exists (select codigo from empresa where cnpj = '15.141.668/0001-26')
^
update configuracao set valor = 'SIM'
where (campo = 'FUNC_VINCULADO') and (cod_tela = 'VENDA')
and exists (select codigo from empresa where (nivel = 13 or cnpj in ('15.141.668/0001-26','06.000.808/0001-55','41.390.901/0001-14')))
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0000','CONFIGURACOES','PRINCIPAL','EXIBE_META','EXIBE META DOS FUNCIONARIOS NA ABERTURA DO SISTEMA','NAO','SIM;NAO','N')
^
update configuracao set valor = 'SIM'
where (campo = 'EXIBE_META') and (cod_tela = 'SG_0000')
and exists (select codigo from empresa where cnpj = '15.141.668/0001-26' or nivel in (25,30))
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('SG_0000','CONFIGURACOES','PRINCIPAL','EXIBE_VISITAS','EXIBE VISITAS DOS FUNCIONARIOS NA ABERTURA DO SISTEMA','NAO','SIM;NAO','N')
^
update configuracao set valor = 'SIM'
where (campo = 'EXIBE_VISITAS') and (cod_tela = 'SG_0000')
and exists (select codigo from empresa where cnpj = '15.141.668/0001-26')
^
update RDB$FIELDS set
RDB$FIELD_TYPE = 37,
RDB$FIELD_LENGTH = 20,
RDB$CHARACTER_LENGTH = 20,
RDB$CHARACTER_SET_ID = 0,
RDB$COLLATION_ID = 0
where RDB$FIELD_NAME = 'RDB$14455'
^
update RDB$FIELDS set
RDB$FIELD_TYPE = 37,
RDB$FIELD_LENGTH = 20,
RDB$CHARACTER_LENGTH = 20,
RDB$CHARACTER_SET_ID = 0,
RDB$COLLATION_ID = 0
where RDB$FIELD_NAME = 'RDB$14456'
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','VENDAS','SAIDAS','NOVO_LOGIN','NOVO LOGIN AO FECHAR TELA DE VENDA','NAO','SIM;NAO','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','VENDAS','SAIDAS','FUNC_CAIXA','CAIXA SOMENTE AO FUNCIONARIO ESPECIFICO','NAO','SIM;NAO','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','VENDAS','SAIDAS','BAIXA_CONDICIONAL','BAIXAR ESTOQUE QUANDO FOR VENDA CONDICIONAL','NAO','SIM;NAO','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('RECEBER','RECEBER','CONTAS A RECEBER','LIBERAR_NIVEL','LIBERAR FUNCOES PARA DETERMINADO NIVEL','','1;2;3;4;5;6','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','VENDAS','SAIDAS','CAIXA_ATUAL','LIBERAR VENDAS APENAS QUANDO CAIXA FOR DO DIA ATUAL','NAO','SIM;NAO','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','VENDAS','SAIDAS','TROCAR_CAIXA','TROCA CAIXA REFERENTE AO FUNCIONARIO LOGADO','NAO','SIM;NAO','N')
^
insert into configuracao (cod_tela,nome_tela,menu,campo,descricao,valor,valido,flg_restrito)
values ('VENDA','VENDAS','SAIDAS','VENDEDOR','SELECIONAR VENDEDOR AO FINALIZAR VENDA','NAO','SIM;NAO','N')
^
update configuracao set cod_tela = 'SG_0011', nome_tela = 'BAIXA RECEBER', 
descricao = 'GERAR TROCO NO RECEBIMENTO, DESABILITA A FUNCAO DE GERAR CREDITO' where campo = 'EXIBE_TROCO'
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('COMPRA', 'LANCAMENTOS', 'ENTRADAS', 'QTD_ETIQUETA', 'PERGUNTAR A QUANTIDADE DE ETIQUETA', 'SIM', 'SIM;NAO', 'N');
^
CREATE TABLE TRAY (
    CODIGO          INTEGER NOT NULL PRIMARY KEY,
    STORE           VARCHAR(100),
    ACCESS_TOKEN    VARCHAR(500),
    REFRESH_TOKEN   VARCHAR(500),
    DT_EXP_ACCESS   TIMESTAMP,
    DT_EXP_REFRESH  TIMESTAMP,
    DT_ATIVACAO     TIMESTAMP,
    HOST            VARCHAR(500),
    ADM_USER        VARCHAR(500),
    API_ADDRESS     VARCHAR(500),
    CODE            VARCHAR(500),
    BEFOR           VARCHAR(500),
    USER_ID         INTEGER,
    STORE_PLAN      INTEGER,
    TOKEN           VARCHAR(1000)
)
^
alter table parametros
    add CAMINHO_FTP varchar(200)
^
ALTER TABLE PRODUTO
ADD SITE_DESC BLOB SUB_TYPE 1 SEGMENT SIZE 4096
^
create or alter procedure P_PRODUTO (
    OPERACAO integer,
    CODIGO integer,
    NOME varchar(60),
    COD_GRUPO integer,
    COD_FORNECEDOR integer,
    MARCA varchar(200),
    UNIDADE_ESTOQUE varchar(10),
    UNIDADE_CONVERSAO varchar(10),
    QTD_EMBALAGEM numeric(15,4),
    PORC_LUCRO_V numeric(15,2),
    PORC_LUCRO_P numeric(15,2),
    PORC_ICMS_ISS numeric(15,2),
    PORC_COMISSAO integer,
    COD_CST varchar(10),
    ESTOQUE_INICIAL numeric(15,3),
    ESTOQUE_MINIMO numeric(15,3),
    ESTOQUE_ATUAL numeric(15,3),
    ESTOQUE_FISCAL numeric(15,3),
    COD_TRIB integer,
    COD_TRIB_ENT integer,
    SIT_TRIB varchar(2),
    DT_CADASTRO date,
    FLG_ATIVADO char(1),
    FLG_ESTOQUE char(1),
    FLG_TIPO char(1),
    LOCALIZACAO varchar(60),
    OBSERVACAO varchar(100),
    OBSERVACAO2 varchar(100),
    DT_ALTERACAO date,
    TEMPO_REAL time,
    NCM varchar(20),
    COD_CSOSN integer,
    CONV_PRECO numeric(15,3),
    CST_PIS varchar(3),
    CST_COFINS varchar(3),
    COD_SUBGRUPO integer,
    COD_SUBSUBGRUPO integer,
    ESTOQUE1 numeric(15,3),
    ESTOQUE2 numeric(15,3),
    ESTOQUE3 numeric(15,3),
    ESTOQUE4 numeric(15,3),
    ESTOQUE5 numeric(15,3),
    PORC_PIS numeric(15,2),
    PORC_COFINS numeric(15,2),
    OBS_ADICIONAL varchar(3000),
    DT_VALIDADE date,
    PORC_IPI numeric(15,2),
    PORC_MVA numeric(15,2),
    PESO_BRUTO numeric(15,3),
    PESO_LIQUIDO numeric(15,3),
    FOTO varchar(200),
    ANEXO varchar(100),
    COD_ANP varchar(10),
    LOCALIZACAO2 varchar(60),
    ETIQUETA integer,
    COD_CEST varchar(7),
    COD_EMPRESA integer,
    PORC_DESC numeric(15,2),
    FLG_DESC char(1),
    ESTOQUE_MAXIMO numeric(15,3),
    ESTOQUE_DEMANDA_MEDIA numeric(15,3),
    ESTOQUE_TEMPO_RESUPRI numeric(15,3),
    ESTOQUE_INTERVALO_RESUPRI numeric(15,3),
    COD_DESP integer,
    COD_MARCA integer,
    FLG_SITE char(1),
    FLG_BALANCA char(1),
    SITE_COMPRIMENTO numeric(15,2),
    SITE_LARGURA numeric(15,2),
    SITE_ALTURA numeric(15,2),
    SITE_DESCRICAO varchar(9999),
    SITE_SYNC char(1),
    SITE_COD integer,
    PORC_REDBASE numeric(15,2),
    PONTOS numeric(15,4),
    LOCALIZACAO21 varchar(60),
    LOCALIZACAO22 varchar(60),
    LOCALIZACAO31 varchar(60),
    LOCALIZACAO32 varchar(60),
    LOCALIZACAO41 varchar(60),
    LOCALIZACAO42 varchar(60),
    LOCALIZACAO51 varchar(60),
    LOCALIZACAO52 varchar(60),
    PORC_FCP numeric(15,2),
    FLG_TRIBUTO char(1),
    PORC_OFERTA numeric(15,2),
    EXIBE_FICHA char(1),
    FLG_COTACAO char(1),
    SITE_DESC blob SUB_TYPE 1 SEGMENT SIZE 4096)
as
begin
if (OPERACAO = 1) then
insert into PRODUTO (CODIGO,NOME,COD_GRUPO,COD_FORNECEDOR,MARCA,UNIDADE_ESTOQUE,UNIDADE_CONVERSAO,QTD_EMBALAGEM,PORC_LUCRO_V,PORC_LUCRO_P,PORC_ICMS_ISS,PORC_COMISSAO,
COD_CST,ESTOQUE_INICIAL,ESTOQUE_MINIMO,ESTOQUE_ATUAL,ESTOQUE_FISCAL,COD_TRIB,COD_TRIB_ENT,SIT_TRIB,DT_CADASTRO,FLG_ATIVADO,FLG_ESTOQUE,FLG_TIPO,LOCALIZACAO,OBSERVACAO,
OBSERVACAO2,DT_ALTERACAO,TEMPO_REAL,NCM,COD_CSOSN,CONV_PRECO,CST_PIS,CST_COFINS,COD_SUBGRUPO,COD_SUBSUBGRUPO,ESTOQUE1,ESTOQUE2,ESTOQUE3,ESTOQUE4,ESTOQUE5,PORC_PIS,PORC_COFINS,
OBS_ADICIONAL,DT_VALIDADE,PORC_IPI,PORC_MVA,PESO_BRUTO,PESO_LIQUIDO,FOTO,ANEXO,COD_ANP,LOCALIZACAO2,ETIQUETA,COD_CEST,COD_EMPRESA,PORC_DESC,FLG_DESC,ESTOQUE_MAXIMO,ESTOQUE_DEMANDA_MEDIA,
ESTOQUE_TEMPO_RESUPRI,ESTOQUE_INTERVALO_RESUPRI,COD_DESP,COD_MARCA,FLG_SITE,FLG_BALANCA,SITE_COMPRIMENTO,SITE_LARGURA,SITE_ALTURA,SITE_DESCRICAO,SITE_SYNC,SITE_COD,PORC_REDBASE,PONTOS,
LOCALIZACAO21,LOCALIZACAO22,LOCALIZACAO31,LOCALIZACAO32,LOCALIZACAO41,LOCALIZACAO42,LOCALIZACAO51,LOCALIZACAO52, PORC_FCP, FLG_TRIBUTO,PORC_OFERTA,EXIBE_FICHA, FLG_COTACAO, SITE_DESC)
values (:CODIGO,:NOME,:COD_GRUPO,:COD_FORNECEDOR,:MARCA,:UNIDADE_ESTOQUE,:UNIDADE_CONVERSAO,:QTD_EMBALAGEM,:PORC_LUCRO_V,:PORC_LUCRO_P,:PORC_ICMS_ISS,:PORC_COMISSAO,:COD_CST,:ESTOQUE_INICIAL,:ESTOQUE_MINIMO,
:ESTOQUE_ATUAL,:ESTOQUE_FISCAL,:COD_TRIB,:COD_TRIB_ENT,:SIT_TRIB,:DT_CADASTRO,:FLG_ATIVADO,:FLG_ESTOQUE,:FLG_TIPO,:LOCALIZACAO,:OBSERVACAO,:OBSERVACAO2,:DT_ALTERACAO,:TEMPO_REAL,:NCM,:COD_CSOSN, 
:CONV_PRECO,:CST_PIS,:CST_COFINS,:COD_SUBGRUPO,:COD_SUBSUBGRUPO,:ESTOQUE1,:ESTOQUE2,:ESTOQUE3,:ESTOQUE4,:ESTOQUE5,:PORC_PIS,:PORC_COFINS,:OBS_ADICIONAL,:DT_VALIDADE,:PORC_IPI,:PORC_MVA,:PESO_BRUTO, 
:PESO_LIQUIDO,:FOTO,:ANEXO,:COD_ANP,:LOCALIZACAO2,:ETIQUETA,:COD_CEST,
:COD_EMPRESA,:PORC_DESC,:FLG_DESC,:ESTOQUE_MAXIMO,:ESTOQUE_DEMANDA_MEDIA,:ESTOQUE_TEMPO_RESUPRI,:ESTOQUE_INTERVALO_RESUPRI,:COD_DESP,:COD_MARCA,:FLG_SITE,:FLG_BALANCA,
:SITE_COMPRIMENTO,:SITE_LARGURA,:SITE_ALTURA,:SITE_DESCRICAO,:SITE_SYNC,:SITE_COD,:PORC_REDBASE,:PONTOS,:LOCALIZACAO21,:LOCALIZACAO22,:LOCALIZACAO31,:LOCALIZACAO32,:LOCALIZACAO41, 
:LOCALIZACAO42,:LOCALIZACAO51,:LOCALIZACAO52,:PORC_FCP, :FLG_TRIBUTO, :PORC_OFERTA, :EXIBE_FICHA, :FLG_COTACAO, :SITE_DESC);
if (OPERACAO = 2) then
update PRODUTO set
NOME = :NOME,
COD_GRUPO = :COD_GRUPO,
COD_FORNECEDOR = :COD_FORNECEDOR,
MARCA = :MARCA,
UNIDADE_ESTOQUE = :UNIDADE_ESTOQUE,
UNIDADE_CONVERSAO = :UNIDADE_CONVERSAO,
QTD_EMBALAGEM = :QTD_EMBALAGEM,
PORC_LUCRO_V = :PORC_LUCRO_V,
PORC_LUCRO_P = :PORC_LUCRO_P,
PORC_ICMS_ISS = :PORC_ICMS_ISS,
PORC_COMISSAO = :PORC_COMISSAO,
COD_CST = :COD_CST,
ESTOQUE_INICIAL = :ESTOQUE_INICIAL,
ESTOQUE_MINIMO = :ESTOQUE_MINIMO, 
ESTOQUE_ATUAL = :ESTOQUE_ATUAL,
ESTOQUE_FISCAL = :ESTOQUE_FISCAL, 
COD_TRIB = :COD_TRIB,
COD_TRIB_ENT = :COD_TRIB_ENT,
SIT_TRIB = :SIT_TRIB,
DT_CADASTRO = :DT_CADASTRO,
FLG_ATIVADO = :FLG_ATIVADO,
FLG_ESTOQUE = :FLG_ESTOQUE,
FLG_TIPO = :FLG_TIPO,
LOCALIZACAO = :LOCALIZACAO,
OBSERVACAO = :OBSERVACAO,
OBSERVACAO2 = :OBSERVACAO2,
DT_ALTERACAO = :DT_ALTERACAO,
TEMPO_REAL = :TEMPO_REAL,
NCM = :NCM,
COD_CSOSN = :COD_CSOSN, 
CONV_PRECO = :CONV_PRECO,
CST_PIS = :CST_PIS,
CST_COFINS = :CST_COFINS,
COD_SUBGRUPO = :COD_SUBGRUPO,
COD_SUBSUBGRUPO = :COD_SUBSUBGRUPO,
ESTOQUE1 = :ESTOQUE1,
ESTOQUE2 = :ESTOQUE2,
ESTOQUE3 = :ESTOQUE3,
ESTOQUE4 = :ESTOQUE4,
ESTOQUE5 = :ESTOQUE5,
PORC_PIS = :PORC_PIS,
PORC_COFINS = :PORC_COFINS,
OBS_ADICIONAL = :OBS_ADICIONAL,
DT_VALIDADE = :DT_VALIDADE,
PORC_IPI = :PORC_IPI,
PORC_MVA = :PORC_MVA,
PESO_BRUTO = :PESO_BRUTO,
PESO_LIQUIDO = :PESO_LIQUIDO,
FOTO = :FOTO,
ANEXO = :ANEXO,
COD_ANP = :COD_ANP,
LOCALIZACAO2 = :LOCALIZACAO2,
ETIQUETA = :ETIQUETA,
COD_CEST = :COD_CEST,
COD_EMPRESA = :COD_EMPRESA,
PORC_DESC = :PORC_DESC,
FLG_DESC = :FLG_DESC,
ESTOQUE_MAXIMO = :ESTOQUE_MAXIMO,
ESTOQUE_DEMANDA_MEDIA = :ESTOQUE_DEMANDA_MEDIA,
ESTOQUE_TEMPO_RESUPRI = :ESTOQUE_TEMPO_RESUPRI,
ESTOQUE_INTERVALO_RESUPRI = :ESTOQUE_INTERVALO_RESUPRI,
COD_DESP = :COD_DESP,
COD_MARCA = :COD_MARCA,
FLG_SITE = :FLG_SITE,
FLG_BALANCA = :FLG_BALANCA,
SITE_COMPRIMENTO = :SITE_COMPRIMENTO,
SITE_LARGURA = :SITE_LARGURA,
SITE_ALTURA = :SITE_ALTURA,
SITE_DESCRICAO = :SITE_DESCRICAO,
SITE_SYNC = :SITE_SYNC,
SITE_COD = :SITE_COD,
PORC_REDBASE = :PORC_REDBASE,
PONTOS = :PONTOS,
LOCALIZACAO21 = :LOCALIZACAO21,
LOCALIZACAO22 = :LOCALIZACAO22,
LOCALIZACAO31 = :LOCALIZACAO31,
LOCALIZACAO32 = :LOCALIZACAO32,
LOCALIZACAO41 = :LOCALIZACAO41,
LOCALIZACAO42 = :LOCALIZACAO42,
LOCALIZACAO51 = :LOCALIZACAO51,
LOCALIZACAO52 = :LOCALIZACAO52,
PORC_FCP = :PORC_FCP,
FLG_TRIBUTO = :FLG_TRIBUTO,
PORC_OFERTA = :PORC_OFERTA,
EXIBE_FICHA = :EXIBE_FICHA,
FLG_COTACAO = :FLG_COTACAO,
SITE_DESC  = :SITE_DESC
where (CODIGO = :CODIGO);
if (OPERACAO = 3) then
delete from PRODUTO 
where (CODIGO = :CODIGO);
suspend;
end
^
ALTER TABLE CAD_PARCELA
ADD COD_CARTAO INTEGER
^
ALTER TABLE CAD_PARCELA
ADD CONSTRAINT FK_CAD_PARCELA_1
FOREIGN KEY (COD_CARTAO)
REFERENCES CARTAO(CODIGO)
^
create or alter procedure P_CADPARC (
    OPERACAO integer,
    CODIGO integer,
    TIPO_RECEB integer,
    NOME varchar(60),
    PARC_INI integer,
    PARC_FIM integer,
    PORC_FIXO numeric(15,2),
    PORC_MES numeric(15,2),
    OBSERV varchar(60),
    COD_CARTAO integer)
as
begin
if (operacao = 1) then
insert into CAD_PARCELA (CODIGO,TIPO_RECEB,NOME,PARC_INI,PARC_FIM,PORC_FIXO,PORC_MES,OBSERV,COD_CARTAO)
values (:CODIGO,:TIPO_RECEB,:NOME,:PARC_INI,:PARC_FIM,:PORC_FIXO,:PORC_MES,:OBSERV,:COD_CARTAO);
if (operacao = 2) then 
update CAD_PARCELA set 
TIPO_RECEB = :TIPO_RECEB,
NOME = :NOME,
PARC_INI = :PARC_INI, 
PARC_FIM = :PARC_FIM,
PORC_FIXO = :PORC_FIXO, 
PORC_MES = :PORC_MES,
OBSERV = :OBSERV,
COD_CARTAO = :COD_CARTAO
where (CODIGO = :CODIGO);
if (operacao = 3) then
delete from CAD_PARCELA 
where (CODIGO = :CODIGO); 
suspend;
end
^


ALTER TABLE CHEQUE
ADD CODMOV INTEGER
^

ALTER TABLE CHEQUE
ADD CONSTRAINT FK_CHEQUE_1
FOREIGN KEY (CODMOV)
REFERENCES MOVTO(CODIGO)
^
create or alter procedure P_CHEQUE (
    OPERACAO integer,
    CODIGO integer,
    NRO_CHEQUE integer,
    COD_AGENCIA integer,
    NRO_CONTA varchar(10),
    FLG_CHEQUE char(1),
    DT_EMISSAO date,
    DT_VENCTO date,
    DIAS_PRAZO integer,
    VALOR numeric(15,2),
    FLG_PESSOA char(1),
    EMITENTE varchar(60),
    CNPJ_CPF varchar(20),
    IE_RG varchar(20),
    TELEFONE varchar(20),
    FLG_DEVOLVIDO char(1),
    REPASSADO varchar(60),
    COD_CLI integer,
    OBSERVACAO varchar(100),
    DT_REPASSADO date,
    COD_EMPRESA integer,
    ENDERECO varchar(100),
    BAIRRO varchar(100),
    COD_FUNC integer,
    DT_TROCA date,
    TAXA_TROCA numeric(15,2),
    OBS_TROCA varchar(60),
    AGRUPA_TROCA integer,
    CODMOV integer)
as
begin 
 if (operacao = 1) then 
 insert into cheque (codigo,nro_cheque,cod_agencia,nro_conta,flg_cheque,dt_emissao,dt_vencto,dias_prazo,valor,flg_pessoa,emitente,cnpj_cpf,ie_rg,telefone,flg_devolvido,repassado,cod_cli,observacao,dt_repassado,
 cod_empresa,endereco,bairro,cod_func,dt_troca,taxa_troca,obs_troca,agrupa_troca, CODMOV)
 values(:codigo,:nro_cheque,:cod_agencia,:nro_conta,:flg_cheque,:dt_emissao,:dt_vencto,:dias_prazo,:valor,:flg_pessoa,:emitente,:cnpj_cpf,:ie_rg,:telefone,:flg_devolvido,:repassado,:cod_cli,:observacao,:dt_repassado,
 :cod_empresa,:endereco,:bairro,:cod_func,:dt_troca,:taxa_troca,:obs_troca,:agrupa_troca, :CODMOV);
 if (operacao = 2) then 
 update cheque set 
 nro_cheque = :nro_cheque,
 cod_agencia = :cod_agencia,
 nro_conta = :nro_conta, 
 flg_cheque = :flg_cheque,
 dt_emissao = :dt_emissao,
 dt_vencto = :dt_vencto, 
 dias_prazo = :dias_prazo,
 valor = :valor, 
 flg_pessoa = :flg_pessoa,
 emitente = :emitente,
 cnpj_cpf = :cnpj_cpf,
 ie_rg = :ie_rg,
 telefone = :telefone,
 flg_devolvido = :flg_devolvido, 
 repassado = :repassado,
 cod_cli = :cod_cli,
 observacao = :observacao, 
 dt_repassado = :dt_repassado,
 cod_empresa = :cod_empresa,
 endereco = :endereco,
 bairro =: bairro,
 cod_func = :cod_func,
 dt_troca = :dt_troca,
 taxa_troca = :taxa_troca,
 obs_troca = :obs_troca,
 agrupa_troca = :agrupa_troca,
 CODMOV = :CODMOV
 where (codigo = :codigo);
 if (operacao = 3) then 
 delete from cheque
 where (codigo = :codigo); 
 suspend; 
 end
 ^ 
alter table empresa
    add nfse_senha varchar(100),
    add nfse_chave varchar(200),
    add nfse_codcid integer,
    add nfse_aliquota numeric(15,2),
    add nfse_key integer
^
create or alter procedure P_EMPRESA (
    OPERACAO integer,
    CODIGO integer,
    RAZAO_SOCIAL varchar(60),
    FANTASIA varchar(60),
    ENDERECO varchar(60),
    BAIRRO varchar(60),
    COD_CID integer,
    CEP varchar(10),
    FONE varchar(20),
    FAX varchar(20),
    E_MAIL varchar(60),
    CONTATO varchar(20),
    CNPJ varchar(20),
    INSC_EST varchar(20),
    INSC_MUN varchar(20),
    COD_CLIENTE integer,
    COD_MOTORISTA integer,
    COD_TRIB_VENDA integer,
    COD_PRODUTO integer,
    COD_ENT_ESTOQ integer,
    COD_SAI_ESTOQ integer,
    NIVEL integer,
    FINANCEIRO char(1),
    ATUALIZA_PRECO char(1),
    FLG_JUROS char(1),
    PRAZO_JUROS integer,
    PORC_JUROS numeric(15,2),
    FLG_IMPRESSAO char(1),
    FLG_CAIXA char(1),
    SENHAX varchar(10),
    SENHAX2 varchar(10),
    COMISSAO_VEND numeric(15,3),
    COMISSAO_INSTAL numeric(15,3),
    FLG_BOLETO char(1),
    COD_PRODUTO2 integer,
    SENHAX3 varchar(10),
    FLG_NFE char(1),
    FLG_SIMPLES char(1),
    CNAE varchar(10),
    SMS_USUARIO varchar(20),
    SMS_SENHA varchar(20),
    CONSULTA_CODIGO varchar(10),
    CONSULTA_SENHA varchar(10),
    EMAIL_LOGIN varchar(50),
    EMAIL_SENHA varchar(30),
    EMAIL_SMTP varchar(30),
    EMAIL_PORTA varchar(5),
    EMAIL_SSL char(1),
    EMAIL_TLS char(1),
    FLG_FISCAL char(1),
    PORC_CHPRE numeric(15,2),
    OBSERV_PEDIDO varchar(60),
    PORC_MULTA numeric(15,2),
    FOTO_TELA blob sub_type 0 segment size 80,
    CREDITO_ICMS numeric(15,2),
    LOGOTIPO blob sub_type 0 segment size 80,
    LOGO_VENDA blob sub_type 0 segment size 80,
    LOGO_TELA blob sub_type 0 segment size 80,
    LOGO_ICONE blob sub_type 0 segment size 80,
    SERIE_VENDA integer,
    SERIE_COMPRA integer,
    FLG_MATERA char(1),
    MATERA_CONTA varchar(40),
    MATERA_CHAVE varchar(40),
    NFSE_SENHA varchar(100),
    NFSE_CHAVE varchar(200),
    NFSE_CODCID integer,
    NFSE_ALIQUOTA numeric(15,2),
    NFSE_KEY integer)
as
begin  
if (operacao = 1) then  
insert into EMPRESA (CODIGO,RAZAO_SOCIAL,FANTASIA,ENDERECO,BAIRRO,COD_CID,CEP,FONE,FAX,E_MAIL,CONTATO,CNPJ,INSC_EST,INSC_MUN,COD_CLIENTE,COD_MOTORISTA,COD_TRIB_VENDA,COD_PRODUTO,COD_ENT_ESTOQ,COD_SAI_ESTOQ,NIVEL,FINANCEIRO,ATUALIZA_PRECO,FLG_JUROS,
PRAZO_JUROS,PORC_JUROS,FLG_IMPRESSAO,FLG_CAIXA,SENHAX,SENHAX2,COMISSAO_VEND,COMISSAO_INSTAL,FLG_BOLETO,COD_PRODUTO2,SENHAX3,FLG_NFE,FLG_SIMPLES,CNAE,SMS_USUARIO,SMS_SENHA,CONSULTA_CODIGO,CONSULTA_SENHA,EMAIL_LOGIN,EMAIL_SENHA,EMAIL_SMTP,
EMAIL_PORTA,EMAIL_SSL,EMAIL_TLS,FLG_FISCAL,PORC_CHPRE,OBSERV_PEDIDO,PORC_MULTA,FOTO_TELA,CREDITO_ICMS,LOGOTIPO,LOGO_VENDA,LOGO_TELA,LOGO_ICONE,SERIE_VENDA, SERIE_COMPRA,FLG_MATERA,MATERA_CONTA,MATERA_CHAVE,NFSE_SENHA,NFSE_CHAVE,NFSE_CODCID,NFSE_ALIQUOTA,NFSE_KEY)
values (:CODIGO,:RAZAO_SOCIAL,:FANTASIA,:ENDERECO,:BAIRRO,:COD_CID,:CEP,:FONE,:FAX,:E_MAIL,:CONTATO,:CNPJ,:INSC_EST,:INSC_MUN,:COD_CLIENTE,:COD_MOTORISTA,:COD_TRIB_VENDA,:COD_PRODUTO,:COD_ENT_ESTOQ,:COD_SAI_ESTOQ,:NIVEL,:FINANCEIRO,
:ATUALIZA_PRECO,:FLG_JUROS,:PRAZO_JUROS,:PORC_JUROS,:FLG_IMPRESSAO,:FLG_CAIXA,:SENHAX,:SENHAX2,:COMISSAO_VEND,:COMISSAO_INSTAL,:FLG_BOLETO,:COD_PRODUTO2,:SENHAX3,:FLG_NFE,:FLG_SIMPLES,:CNAE,:SMS_USUARIO,:SMS_SENHA,:CONSULTA_CODIGO,
:CONSULTA_SENHA,:EMAIL_LOGIN,:EMAIL_SENHA,:EMAIL_SMTP,:EMAIL_PORTA,:EMAIL_SSL,:EMAIL_TLS,:FLG_FISCAL,:PORC_CHPRE,:OBSERV_PEDIDO,:PORC_MULTA,:FOTO_TELA,:CREDITO_ICMS,:LOGOTIPO,:LOGO_VENDA,:LOGO_TELA,:LOGO_ICONE,:SERIE_VENDA,:SERIE_COMPRA,:FLG_MATERA,:MATERA_CONTA,:MATERA_CHAVE,:NFSE_SENHA,:NFSE_CHAVE,:NFSE_CODCID,:NFSE_ALIQUOTA,:NFSE_KEY);
if (operacao = 2) then  
update EMPRESA set      
RAZAO_SOCIAL = :RAZAO_SOCIAL,  
FANTASIA = :FANTASIA,   
ENDERECO = :ENDERECO, 
BAIRRO = :BAIRRO,     
COD_CID = :COD_CID, 
CEP = :CEP,    
FONE = :FONE,   
FAX = :FAX,    
E_MAIL = :E_MAIL, 
CONTATO = :CONTATO,  
CNPJ = :CNPJ,  
INSC_EST = :INSC_EST,  
INSC_MUN = :INSC_MUN,    
COD_CLIENTE = :COD_CLIENTE,    
COD_MOTORISTA = :COD_MOTORISTA,   
COD_TRIB_VENDA = :COD_TRIB_VENDA, 
COD_PRODUTO = :COD_PRODUTO,   
COD_ENT_ESTOQ = :COD_ENT_ESTOQ,  
COD_SAI_ESTOQ = :COD_SAI_ESTOQ,  
NIVEL = :NIVEL,  
FINANCEIRO = :FINANCEIRO,   
ATUALIZA_PRECO = :ATUALIZA_PRECO, 
FLG_JUROS = :FLG_JUROS,  
PRAZO_JUROS = :PRAZO_JUROS, 
PORC_JUROS = :PORC_JUROS, 
FLG_IMPRESSAO = :FLG_IMPRESSAO, 
FLG_CAIXA = :FLG_CAIXA,  
SENHAX = :SENHAX,   
SENHAX2 = :SENHAX2,   
COMISSAO_VEND = :COMISSAO_VEND,  
COMISSAO_INSTAL = :COMISSAO_INSTAL,  
FLG_BOLETO = :FLG_BOLETO,  
COD_PRODUTO2 = :COD_PRODUTO2, 
SENHAX3 = :SENHAX3, 
FLG_NFE = :FLG_NFE, 
FLG_SIMPLES = :FLG_SIMPLES, 
CNAE = :CNAE,       
SMS_USUARIO = :SMS_USUARIO,  
SMS_SENHA = :SMS_SENHA, 
CONSULTA_CODIGO = :CONSULTA_CODIGO, 
CONSULTA_SENHA = :CONSULTA_SENHA, 
EMAIL_LOGIN = :EMAIL_LOGIN, 
EMAIL_SENHA = :EMAIL_SENHA,  
EMAIL_SMTP = :EMAIL_SMTP,   
EMAIL_PORTA = :EMAIL_PORTA,  
EMAIL_SSL = : EMAIL_SSL,    
EMAIL_TLS = : EMAIL_TLS,    
FLG_FISCAL = :FLG_FISCAL,
PORC_CHPRE = :PORC_CHPRE,
OBSERV_PEDIDO = :OBSERV_PEDIDO, 
PORC_MULTA = :PORC_MULTA,  
FOTO_TELA = :FOTO_TELA,
CREDITO_ICMS = :CREDITO_ICMS,
LOGOTIPO = :LOGOTIPO,
LOGO_VENDA = :LOGO_VENDA,
LOGO_TELA = :LOGO_TELA,
LOGO_ICONE = :LOGO_ICONE,
SERIE_VENDA = :SERIE_VENDA,
SERIE_COMPRA = :SERIE_COMPRA,
FLG_MATERA = :FLG_MATERA,
MATERA_CONTA = :MATERA_CONTA,
MATERA_CHAVE = :MATERA_CHAVE,
NFSE_SENHA = :NFSE_SENHA,
NFSE_CHAVE = :NFSE_CHAVE,
NFSE_CODCID = :NFSE_CODCID,
NFSE_ALIQUOTA = :NFSE_ALIQUOTA,
NFSE_KEY = :NFSE_KEY
where (CODIGO = :CODIGO); 
 if (operacao = 3) then   
delete from EMPRESA    
where (CODIGO = :CODIGO); 
suspend;    
end
^


create table MOV_NFSE(
    CODIGO int not null primary key,
    COD_OS int,
    COD_CLI int,
    COD_CNAE int,
    NRO_NFSE int,
    NRO_RPS int,
    DATA timestamp,
    DESC_SERVICO varchar(4000),
    COD_CID int,
    VLR_SERVICO numeric(15,2),
    VLR_ISS numeric(15,2),
    VLR_BASE numeric(15,2),
    VLR_DEDUCAO numeric(15,2),
    VLR_TOTAL numeric(15,2),
    VLR_PIS numeric(15,2),
    VLR_CSLL numeric(15,2),
    VLR_INSS numeric(15,2),
    VLR_COFINS numeric(15,2),
    VLR_IRRF numeric(15,2),
    VLR_OUTROS numeric(15,2),
    PORC_PIS numeric(15,2),
    PORC_CSLL numeric(15,2),
    PORC_INSS numeric(15,2),
    PORC_COFINS numeric(15,2),
    PORC_IRRF numeric(15,2),
    PORC_OUTROS numeric(15,2),
    FLG_CANCELADA char(1) default 'N',
    MOTIVO_CANCELADA varchar(500),
    RETIDO_FONTE char(1) default 'N',
    RETENCAO_OBRIGATORIA char(1) default 'N',
    CODIGO_VERIFICA varchar(60),
    STATUS VARCHAR(30)
    )
^
create table CNAE(
    CODIGO int not null primary key,
    COD_CNAE varchar(15),
    DESC_CNAE varchar(100),
    DESC_SERV varchar(400),
    COD_ITEM varchar(15),
    COD_EMPRESA int)

^
alter table mov_nfse
    add constraint fk_cliente foreign key (cod_cli) references cliente(codigo),
    add constraint fk_movos foreign key (cod_os) references movto_os(codigo),
    add constraint fk_codcnae foreign key (cod_cnae) references cnae(codigo),
    add constraint fk_codcid foreign key (cod_cid) references cidade(codigo)

^
CREATE INDEX MOV_NFSE_IDX1
ON MOV_NFSE (NRO_RPS)

^
CREATE OR ALTER TRIGGER TRG_MOV_NFSE FOR MOV_NFSE
ACTIVE BEFORE INSERT POSITION 0
AS
declare variable cod integer;
begin
  select max(CODIGO) from MOV_NFSE into :cod;

  if (cod is null) then cod = 0;

  new.codigo = cod + 1;
end
^
CREATE OR ALTER TRIGGER TRG_CNAE FOR CNAE
ACTIVE BEFORE INSERT POSITION 0
AS
declare variable cod integer;
begin
  select max(CODIGO) from CNAE into :cod;

  if (cod is null) then cod = 0;

  new.codigo = cod + 1;
end
^
alter table cnae
    add constraint fk_empresa foreign key (cod_empresa) references empresa(codigo)
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('VENDA', 'FINALIZACAO DE VENDA', 'SAIDAS', 'GRAVA_CARTAO_AUT', 'GRAVAR CARTAO AUTOMATICO', 'NAO', 'SIM;NAO', 'N');

^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('VENDA', 'FINALIZACAO DE VENDA', 'SAIDAS', 'GRAVA_CHEQUE_AUT', 'GRAVAR CHEQUE AUTOMATICO', 'NAO', 'SIM;NAO', 'N');
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('VENDA', 'CAIXA', 'CAIXA', 'VLR_DETALHADO', 'DETALHAR VALOR DE CARTAO E CHEQUE', 'NAO', 'SIM;NAO', 'N');
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('SG_0001', 'CLIENTES', 'CADASTROS', 'SENHA', 'PEDIR SENHA AO ABRIR CADASTRO DE CLIENTE', 'NAO', 'SIM;NAO', 'N');
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('PRODUTO', 'PRODUTOS', 'CADASTROS', 'INATIVAR', 'INATIVAR PRODUTOS SEM MOVIMENTO', 'NAO', 'SIM;NAO', 'N');
^
ALTER TABLE RECEBER
ADD COD_NFSE INTEGER
^
ALTER TABLE RECEBER
ADD CONSTRAINT FK_RECEBER_1
FOREIGN KEY (COD_NFSE)
REFERENCES MOV_NFSE(CODIGO)
^
create or alter procedure P_RECEBER (
    OPERACAO integer,
    CODIGO integer,
    PARCELA integer,
    CODMOV integer,
    COD_CLI integer,
    DT_VENDA date,
    DT_VENCTO date,
    VLR_PARC numeric(15,2),
    VLR_ACRES numeric(15,2),
    VLR_DESC numeric(15,2),
    SALDO numeric(15,2),
    CRED_DEB char(10),
    HISTORICO varchar(100),
    CUPOM_FISCAL integer,
    DOCUMENTO varchar(20),
    SERIE varchar(3),
    COD_CAIXA integer,
    CB_NOSSO_NRO varchar(20),
    CB_DOC_NRO integer,
    FLG_BOLETO_DESC char(1),
    FLG_PERDIDO char(1),
    OBS_COBRANCA varchar(400),
    COD_EMPRESA integer,
    DT_BOLETO date,
    FLG_REMESSA char(1),
    BCO_BOLETO_DESC integer,
    BCO_BOLETO integer,
    COD_REPARCELA integer,
    COD_SIT integer,
    COD_NFSE integer)
as
begin  
if (operacao = 1) then 
INSERT INTO RECEBER (CODIGO,PARCELA,CODMOV,COD_CLI,DT_VENDA,DT_VENCTO,VLR_PARC,VLR_ACRES,VLR_DESC,SALDO,CRED_DEB,HISTORICO,CUPOM_FISCAL,DOCUMENTO,SERIE,COD_CAIXA,CB_NOSSO_NRO,CB_DOC_NRO,
FLG_BOLETO_DESC,FLG_PERDIDO,OBS_COBRANCA,COD_EMPRESA,DT_BOLETO,FLG_REMESSA,BCO_BOLETO_DESC,BCO_BOLETO,COD_REPARCELA, COD_SIT, COD_NFSE)
VALUES (:CODIGO,:PARCELA,:CODMOV,:COD_CLI,:DT_VENDA,:DT_VENCTO,:VLR_PARC,:VLR_ACRES,:VLR_DESC,:SALDO,:CRED_DEB,:HISTORICO,:CUPOM_FISCAL,:DOCUMENTO,:SERIE,:COD_CAIXA,:CB_NOSSO_NRO, 
:CB_DOC_NRO,:FLG_BOLETO_DESC,:FLG_PERDIDO,:OBS_COBRANCA,:COD_EMPRESA,:DT_BOLETO,:FLG_REMESSA,:BCO_BOLETO_DESC,:BCO_BOLETO,:COD_REPARCELA, :COD_SIT, :COD_NFSE);
if (operacao = 2) then 
UPDATE RECEBER SET 
PARCELA = :PARCELA, 
CODMOV = :CODMOV, 
COD_CLI = :COD_CLI, 
DT_VENDA = :DT_VENDA, 
DT_VENCTO = :DT_VENCTO, 
VLR_PARC = :VLR_PARC, 
VLR_ACRES = :VLR_ACRES, 
VLR_DESC = :VLR_DESC, 
SALDO = :SALDO, 
CRED_DEB = :CRED_DEB, 
HISTORICO = :HISTORICO, 
CUPOM_FISCAL = :CUPOM_FISCAL, 
DOCUMENTO = :DOCUMENTO,
SERIE = :SERIE, 
COD_CAIXA = :COD_CAIXA, 
CB_NOSSO_NRO = :CB_NOSSO_NRO, 
CB_DOC_NRO = :CB_DOC_NRO, 
FLG_BOLETO_DESC = :FLG_BOLETO_DESC, 
FLG_PERDIDO = :FLG_PERDIDO, 
OBS_COBRANCA = :OBS_COBRANCA, 
COD_EMPRESA = :COD_EMPRESA, 
DT_BOLETO = :DT_BOLETO, 
FLG_REMESSA = : FLG_REMESSA, 
BCO_BOLETO_DESC = :BCO_BOLETO_DESC, 
BCO_BOLETO = :BCO_BOLETO, 
COD_REPARCELA = :COD_REPARCELA,
COD_SIT = :COD_SIT,
COD_NFSE = :COD_NFSE
WHERE (CODIGO = :CODIGO); 
if (operacao = 3) then 
delete from RECEBER 
where (CODIGO = :CODIGO); 
suspend; 
end
^

ALTER TABLE FORNECEDOR
    ADD FLG_PRODRURAL CHAR(1),
    ADD TAXA_FUNRURAL NUMERIC(15,2),
    ADD CPF_PRODRURAL VARCHAR(20),
    ADD OBS_FUNRURAL BLOB SUB_TYPE 0 SEGMENT SIZE 4096
^    
CREATE OR ALTER procedure P_FORNECEDOR (
    OPERACAO integer,
    CODIGO integer,
    NOME varchar(60),
    ENDERECO varchar(60),
    BAIRRO varchar(60),
    COD_CID integer,
    CEP varchar(10),
    CONTATO varchar(60),
    FONE varchar(20),
    FAX varchar(20),
    CELULAR varchar(20),
    CNPJ_CPF varchar(20),
    IE_RG varchar(20),
    E_MAIL varchar(60),
    CX_POSTAL varchar(10),
    OBSERVACAO varchar(100),
    FANTASIA varchar(60),
    COD_DESP integer,
    E_MAIL_NFE varchar(60),
    DT_INATIVO date,
    COD_EMPRESA integer,
    FLG_PRODRURAL char(1),
    TAXA_FUNRURAL numeric(15,2),
    CPF_PRODRURAL varchar(20),
    OBS_FUNRURAL blob sub_type 0 segment size 4096)
as
begin 
if (operacao = 1) then 
insert into FORNECEDOR (CODIGO,NOME,ENDERECO,BAIRRO,COD_CID,CEP,CONTATO,FONE,FAX,CELULAR,CNPJ_CPF,IE_RG,E_MAIL,CX_POSTAL,OBSERVACAO,FANTASIA,COD_DESP,E_MAIL_NFE,DT_INATIVO,COD_EMPRESA,FLG_PRODRURAL,TAXA_FUNRURAL,CPF_PRODRURAL,OBS_FUNRURAL )
values (:CODIGO,:NOME,:ENDERECO,:BAIRRO,:COD_CID,:CEP,:CONTATO,:FONE,:FAX,:CELULAR,:CNPJ_CPF,:IE_RG,:E_MAIL,:CX_POSTAL,:OBSERVACAO,:FANTASIA,:COD_DESP,:E_MAIL_NFE,:DT_INATIVO,:COD_EMPRESA,:FLG_PRODRURAL,:TAXA_FUNRURAL,:CPF_PRODRURAL,:OBS_FUNRURAL);
if (operacao = 2) then 
update FORNECEDOR set 
NOME = :NOME,
ENDERECO = :ENDERECO, 
BAIRRO = :BAIRRO,
COD_CID = :COD_CID, 
CEP = :CEP,
CONTATO = :CONTATO,
FONE = :FONE,
FAX = :FAX,
CELULAR = :CELULAR,
CNPJ_CPF = :CNPJ_CPF,
IE_RG = :IE_RG,
E_MAIL = :E_MAIL,
CX_POSTAL = :CX_POSTAL,
OBSERVACAO = :OBSERVACAO,
FANTASIA = :FANTASIA,
COD_DESP = :COD_DESP,
E_MAIL_NFE = :E_MAIL_NFE,
DT_INATIVO = :DT_INATIVO,
COD_EMPRESA = :COD_EMPRESA,
FLG_PRODRURAL = :FLG_PRODRURAL,
TAXA_FUNRURAL = :TAXA_FUNRURAL,
CPF_PRODRURAL = :CPF_PRODRURAL,
OBS_FUNRURAL = :OBS_FUNRURAL
where (CODIGO = :CODIGO);
if (operacao = 3) then 
delete from FORNECEDOR 
where (CODIGO = :CODIGO);
suspend;
end
^
ALTER TABLE MOVIT
ADD DT_ALTERACAO TIMESTAMP default current_timestamp
^
create or alter procedure P_MOVIT (
    OPERACAO integer,
    CODMOV integer,
    ITEM integer,
    COD_PROD integer,
    QUANT numeric(15,3),
    QUANT_NF numeric(15,3),
    VLR_UNIT numeric(15,4),
    PRECO_NF numeric(15,4),
    VLR_TOTAL numeric(15,2),
    TOTAL_NF numeric(15,2),
    PORC_QUANT numeric(15,2),
    PORC_PRECO numeric(15,2),
    UNIDADE varchar(10),
    COD_TRIB integer,
    COD_CFOP varchar(7),
    OBSERV varchar(100),
    BASE_ICMS numeric(15,2),
    TAXA_ICMS numeric(15,2),
    VLR_ICMS numeric(15,2),
    BASE_SUBST numeric(15,2),
    TAXA_SUBST numeric(15,2),
    VLR_SUBST numeric(15,2),
    VLR_IPI numeric(15,2),
    TAXA_IPI numeric(15,2),
    VLR_ISS numeric(15,2),
    TAXA_ISS numeric(15,2),
    DIFER_ICMS numeric(15,2),
    COD_VENDEDOR integer,
    COD_INSTALADOR integer,
    COD_UNID integer,
    OBSERV2 varchar(60),
    OBSERV3 varchar(60),
    OBSERV4 varchar(60),
    OBSERV5 varchar(60),
    OBSERV6 varchar(60),
    OBSERV7 varchar(60),
    COD_FORPROD integer,
    DATA date,
    VLR_IMPORT numeric(15,2),
    BASE_IMPORT numeric(15,2),
    COD_LOTE integer,
    ACRESCIMO numeric(15,2),
    DESCONTO numeric(15,2),
    OBS_ADICIONAL blob sub_type 0 segment size 80,
    COD_TRIB_REGRA integer,
    CST_ICMS varchar(20),
    CSOSN varchar(20),
    TAXA_MVA numeric(15,2),
    CST_PIS varchar(10),
    CST_COFINS varchar(10),
    TAXA_PIS numeric(15,2),
    TAXA_COFINS numeric(15,2),
    CST_IPI varchar(10),
    VLR_PIS numeric(15,2),
    VLR_COFINS numeric(15,2),
    RED_BASE_ICMS numeric(15,2),
    RED_BASE_SUBST numeric(15,2),
    TAXA_FCP_ICMS numeric(15,2),
    TAXA_FCP_SUBST numeric(15,2),
    BASE_PIS numeric(15,2),
    BASE_COFINS numeric(15,2),
    MOD_SUBST varchar(30),
    ORIG_CST varchar(50),
    PISCOF_ST char(1),
    DT_ALTERACAO timestamp)
as
begin  
 if (operacao = 1) then  
 insert into MOVIT (CODMOV,ITEM,COD_PROD,QUANT,QUANT_NF,VLR_UNIT,PRECO_NF,VLR_TOTAL,TOTAL_NF,PORC_QUANT,PORC_PRECO,UNIDADE,COD_TRIB,COD_CFOP,OBSERV,  
BASE_ICMS,TAXA_ICMS,VLR_ICMS,BASE_SUBST,TAXA_SUBST,VLR_SUBST,VLR_IPI,TAXA_IPI,VLR_ISS,TAXA_ISS,DIFER_ICMS,COD_VENDEDOR,COD_INSTALADOR,COD_UNID,OBSERV2,    
OBSERV3,OBSERV4,OBSERV5,OBSERV6,OBSERV7,COD_FORPROD,DATA,VLR_IMPORT,BASE_IMPORT,COD_LOTE,ACRESCIMO,DESCONTO,OBS_ADICIONAL,COD_TRIB_REGRA,CST_ICMS,CSOSN,TAXA_MVA,CST_PIS,CST_COFINS,TAXA_PIS,TAXA_COFINS,CST_IPI,VLR_PIS,VLR_COFINS,RED_BASE_ICMS,RED_BASE_SUBST,TAXA_FCP_ICMS,TAXA_FCP_SUBST,BASE_PIS,BASE_COFINS,MOD_SUBST,ORIG_CST, PISCOF_ST, DT_ALTERACAO)
 values (:CODMOV,:ITEM,:COD_PROD,:QUANT,:QUANT_NF,:VLR_UNIT,:PRECO_NF,:VLR_TOTAL,:TOTAL_NF,:PORC_QUANT,:PORC_PRECO,:UNIDADE,:COD_TRIB,:COD_CFOP,   
:OBSERV,:BASE_ICMS,:TAXA_ICMS,:VLR_ICMS,:BASE_SUBST,:TAXA_SUBST,:VLR_SUBST,:VLR_IPI,:TAXA_IPI,:VLR_ISS,:TAXA_ISS,:DIFER_ICMS,:COD_VENDEDOR,:COD_INSTALADOR,    
:COD_UNID,:OBSERV2,:OBSERV3,:OBSERV4,:OBSERV5,:OBSERV6,:OBSERV7,:COD_FORPROD,:DATA,:VLR_IMPORT,:BASE_IMPORT,:COD_LOTE,:ACRESCIMO,:DESCONTO,:OBS_ADICIONAL,:COD_TRIB_REGRA,:CST_ICMS,:CSOSN,:TAXA_MVA,:CST_PIS,:CST_COFINS,:TAXA_PIS,:TAXA_COFINS,:CST_IPI,:VLR_PIS,:VLR_COFINS,:RED_BASE_ICMS,:RED_BASE_SUBST,:TAXA_FCP_ICMS,:TAXA_FCP_SUBST,:BASE_PIS,:BASE_COFINS,:MOD_SUBST,:ORIG_CST, :PISCOF_ST, CURRENT_TIMESTAMP);
 if (operacao = 2) then  
update MOVIT set 
COD_PROD = :COD_PROD,
QUANT = :QUANT,
QUANT_NF = :QUANT_NF,
VLR_UNIT = :VLR_UNIT,
PRECO_NF = :PRECO_NF,
VLR_TOTAL = :VLR_TOTAL,
TOTAL_NF = :TOTAL_NF,
PORC_QUANT = :PORC_QUANT,
PORC_PRECO = :PORC_PRECO,
UNIDADE = :UNIDADE,
COD_TRIB = :COD_TRIB,
COD_CFOP = :COD_CFOP,
OBSERV = :OBSERV,
BASE_ICMS = :BASE_ICMS,
TAXA_ICMS = :TAXA_ICMS,
VLR_ICMS = :VLR_ICMS,
BASE_SUBST = :BASE_SUBST,
TAXA_SUBST = :TAXA_SUBST,
VLR_SUBST = :VLR_SUBST,
VLR_IPI = :VLR_IPI,
TAXA_IPI = :TAXA_IPI,
VLR_ISS = :VLR_ISS,
TAXA_ISS = :TAXA_ISS,
DIFER_ICMS = :DIFER_ICMS,
COD_VENDEDOR = :COD_VENDEDOR,
COD_INSTALADOR = :COD_INSTALADOR,
COD_UNID = :COD_UNID,
OBSERV2 = :OBSERV2,
OBSERV3 = :OBSERV3,
OBSERV4 = :OBSERV4,
OBSERV5 = :OBSERV5,
OBSERV6 = :OBSERV6,
OBSERV7 = :OBSERV7,
COD_FORPROD = :COD_FORPROD,
DATA = :DATA,
VLR_IMPORT = :VLR_IMPORT,
BASE_IMPORT = :BASE_IMPORT, 
COD_LOTE = :COD_LOTE,
ACRESCIMO = :ACRESCIMO,
DESCONTO = :DESCONTO,
OBS_ADICIONAL = :OBS_ADICIONAL,
COD_TRIB_REGRA = :COD_TRIB_REGRA,
CST_ICMS = :CST_ICMS,
CSOSN = :CSOSN,
TAXA_MVA = :TAXA_MVA,
CST_PIS = :CST_PIS,
CST_COFINS = :CST_COFINS,
TAXA_PIS = :TAXA_PIS,
TAXA_COFINS = :TAXA_COFINS,
CST_IPI = :CST_IPI,
VLR_PIS = :VLR_PIS,
VLR_COFINS = :VLR_COFINS,
RED_BASE_ICMS = :RED_BASE_ICMS,
RED_BASE_SUBST = :RED_BASE_SUBST,
TAXA_FCP_ICMS = :TAXA_FCP_ICMS,
TAXA_FCP_SUBST = :TAXA_FCP_SUBST,
BASE_PIS = :BASE_PIS,
BASE_COFINS = :BASE_COFINS,
MOD_SUBST = :MOD_SUBST,
ORIG_CST = :ORIG_CST,
PISCOF_ST = :PISCOF_ST,
DT_ALTERACAO = CURRENT_TIMESTAMP
where (CODMOV = :CODMOV)
and (ITEM = :ITEM);
if (operacao = 3) then 
delete from MOVIT      
where (CODMOV = :CODMOV)  
and (ITEM = :ITEM);  
suspend;    
end 
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('SG_0035', 'VENDAS', 'SAIDAS', 'ATT_PRECO', 'ATUALIZAR PRECO DE ITEM', 'SIM', 'SIM;NAO', 'N');
^
CREATE INDEX MOVTO_IDX10
ON MOVTO (PLACA)
^
CREATE DESCENDING INDEX MOVTO_IDX11
ON MOVTO (CODIGO)
^
CREATE INDEX VEICULO_IDX1
ON VEICULO (PLACA)
^
CREATE TABLE ETIQUETA (
    ID         INTEGER NOT NULL,
    DESCRICAO  VARCHAR(200),
    ETIQUETA   BLOB SUB_TYPE 1 SEGMENT SIZE 80,
    SQL        BLOB SUB_TYPE 1 SEGMENT SIZE 4096
)
^
ALTER TABLE ETIQUETA ADD CONSTRAINT PK_ETIQUETA PRIMARY KEY (ID)
^
CREATE OR ALTER TRIGGER TRG_ETIQUETA FOR ETIQUETA
ACTIVE BEFORE INSERT POSITION 0
AS
declare variable cod integer;
begin
  select max(ID) from ETIQUETA into :cod;

  if (cod is null) then cod = 0;

  new.ID = cod + 1;
end
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO) VALUES ('SG_0035', 'VENDAS', 'SAIDAS', 'ATT_PRECO', 'ATUALIZAR PRECO DE ITEM', 'NAO', 'SIM;NAO', 'N')
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO) VALUES ('VENDA', 'FINALIZACAO DE VENDA', 'SAIDAS', 'GRAVA_CARTAO_AUT', 'GRAVAR CARTAO AUTOMATICO', 'NAO', 'SIM;NAO', 'N')
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO) VALUES ('PRODUTO', 'PRODUTOS', 'CADASTROS', 'INATIVAR', 'INATIVAR PRODUTOS SEM MOVIMENTO', 'NAO', 'SIM;NAO', 'N')
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO) VALUES ('VENDA', 'FINALIZACAO DE VENDA', 'SAIDAS', 'GRAVA_CHEQUE_AUT', 'GRAVAR CHEQUE AUTOMATICO', 'NAO', 'SIM;NAO', 'N')
^
alter table TRAY
ADD HOST_MAIN VARCHAR(150),
add USER_MAIN varchar(150),
add PASS_MAIN varchar(150),
add PATH varchar(150),
add URL_MAIN varchar(150),
add FLG_ATIVO char(1)
^
Alter TABLE META
    ADD  VLR_FINAL   NUMERIC(15,2),
    ADD PORC_BONIF  NUMERIC(15,2)
^
create or alter procedure P_META (
    OPERACAO integer,
    CODIGO integer,
    COD_FUNC integer,
    ANO integer,
    MES integer,
    VALOR numeric(15,2),
    VLR_FINAL numeric(15,2),
    PORC_BONIF numeric(15,2))
as
begin
if (operacao = 1) then
insert into META (CODIGO, COD_FUNC, ANO, MES, VALOR, VLR_FINAL, PORC_BONIF)
values (:CODIGO, :COD_FUNC, :ANO, :MES, :VALOR, :VLR_FINAL, :PORC_BONIF);
if (operacao = 2) then
update META set
COD_FUNC = :COD_FUNC,
ANO = :ANO,
MES = :MES,
VALOR = :VALOR,
VLR_FINAL = :VLR_FINAL,
PORC_BONIF = :PORC_BONIF
where (CODIGO = :CODIGO);
if (operacao = 3) then
delete from META
where (CODIGO = :CODIGO);
suspend;
end
^
ALTER TABLE MOVTO
ADD NFCE_NRO INTEGER
^
ALTER TABLE MOVTO
ADD NFCE_STATUS VARCHAR(20)
^
ALTER TABLE MOVTO
ADD NFCE_CAMINHO VARCHAR(60)
^
ALTER TABLE MOVTO
ADD NFCE_CHAVE VARCHAR(60)
^
create or alter procedure P_MOVTO (
    OPERACAO integer,
    CODIGO integer,
    FLG_CODMOV integer,
    DATA date,
    NOTA_FISCAL integer,
    SERIE integer,
    CUPOM_FISCAL integer,
    NRO_ECF integer,
    DATA_SAIDA date,
    COD_CLI integer,
    COD_FOR integer,
    COD_FUNC integer,
    COD_TRIB integer,
    COD_END_CLI integer,
    VLR_DESC numeric(15,2),
    VLR_ACRES numeric(15,2),
    VLR_FRETE numeric(15,2),
    PORC_FRETE numeric(15,3),
    VLR_TOTAL numeric(15,2),
    TOTAL_NF numeric(15,2),
    TIPO_RECEB integer,
    OBSERV1 varchar(400),
    OBSERV2 varchar(100),
    OBSERV3 varchar(100),
    TRANS_NOME varchar(60),
    TRANS_END varchar(60),
    TRANS_CIDADE varchar(60),
    TRANS_CIDADEUF varchar(2),
    TRANS_PLACA varchar(10),
    TRANS_PLACAUF varchar(2),
    TRANS_FRETE integer,
    TRANS_CNPJ_CPF varchar(20),
    TRANS_IE_RG varchar(20),
    CODREC_DEVOLUCAO integer,
    COD_CAIXA integer,
    FLG_CANCEL char(1),
    MOTIVO_CANCEL varchar(60),
    NF_DATA date,
    NF_DATA_SAIDA date,
    NF_HORA time,
    NF_CPF varchar(20),
    PLACA varchar(10),
    DATA_ENTREGA date,
    FLG_ABERTO char(1),
    VLR_DINH numeric(15,2),
    VLR_CHVISTA numeric(15,2),
    VLR_CHPRE numeric(15,2),
    VLR_CARTAO numeric(15,2),
    NFE_NRO integer,
    NFE_STATUS varchar(60),
    NFE_CAMINHO varchar(60),
    NFE_CHAVE varchar(60),
    NFE_OBSERV varchar(60),
    VLR_DEBITO numeric(15,2),
    VLR_PRAZO numeric(15,2),
    VLR_OUTROS numeric(15,2),
    COD_EMPRESA integer,
    NOME_VEICULO varchar(400),
    VOL_QUANT varchar(20),
    VOL_ESPECIE varchar(20),
    VOL_MARCA varchar(20),
    VOL_NRO varchar(20),
    VOL_BRUTO varchar(20),
    VOL_LIQUIDO varchar(20),
    NFE_REF1 varchar(60),
    NFE_REF2 varchar(60),
    NFE_REF3 varchar(60),
    COD_MAO_OBRA integer,
    SAT_NRO integer,
    SAT_STATUS varchar(20),
    SAT_CAMINHO varchar(60),
    SAT_CHAVE varchar(60),
    DT_COMISSAO date,
    NF_NOME varchar(60),
    COD_CONVENIO integer,
    COD_MESA integer,
    COD_PARCELA integer,
    FLG_PRECO char(1),
    LOCAL_DESEMB varchar(200),
    UF_DESEMB varchar(2),
    NRO_DI varchar(20),
    DT_DI date,
    COD_EXPORT integer,
    COD_FABRIC integer,
    TP_TRANS integer,
    NFE_REF4 varchar(60),
    VLR_IMPORT numeric(15,2),
    OBS_ADICIONAL varchar(3000),
    FLG_PROCEDE char(1),
    ROMANEIO_NRO integer,
    ROMANEIO_DATA date,
    TOKEN varchar(256),
    CODMARKET integer,
    VLR_PIX numeric(15,2),
    NFE_DADOS blob sub_type 0 segment size 80,
    FLG_EXC char(1),
    NFE_SERIE integer,
    NFCE_NRO integer,
    NFCE_STATUS varchar(20),
    NFCE_CAMINHO varchar(60),
    NFCE_CHAVE varchar(60)
    )
as
begin
if (operacao = 1) then
insert into MOVTO (CODIGO,FLG_CODMOV,DATA,NOTA_FISCAL,SERIE,CUPOM_FISCAL,NRO_ECF,DATA_SAIDA,COD_CLI,COD_FOR,COD_FUNC,COD_TRIB,COD_END_CLI,VLR_DESC,VLR_ACRES,VLR_FRETE,PORC_FRETE,
VLR_TOTAL,TOTAL_NF,TIPO_RECEB,OBSERV1,OBSERV2,OBSERV3,TRANS_NOME,TRANS_END,TRANS_CIDADE,TRANS_CIDADEUF,TRANS_PLACA,TRANS_PLACAUF,TRANS_FRETE,TRANS_CNPJ_CPF,TRANS_IE_RG,CODREC_DEVOLUCAO,
COD_CAIXA,FLG_CANCEL,MOTIVO_CANCEL,NF_DATA,NF_DATA_SAIDA,NF_HORA,NF_CPF,PLACA,DATA_ENTREGA,FLG_ABERTO,VLR_DINH,VLR_CHVISTA,VLR_CHPRE,VLR_CARTAO,NFE_NRO,NFE_STATUS,NFE_CAMINHO,
NFE_CHAVE,NFE_OBSERV,VLR_DEBITO,VLR_PRAZO,VLR_OUTROS,COD_EMPRESA,NOME_VEICULO,VOL_QUANT,VOL_ESPECIE,VOL_MARCA,VOL_NRO,VOL_BRUTO,VOL_LIQUIDO,NFE_REF1,NFE_REF2,NFE_REF3,COD_MAO_OBRA,SAT_NRO,SAT_STATUS,SAT_CAMINHO,SAT_CHAVE,
DT_COMISSAO,NF_NOME,COD_CONVENIO,COD_MESA,COD_PARCELA,FLG_PRECO,LOCAL_DESEMB,UF_DESEMB,NRO_DI,DT_DI,COD_EXPORT,COD_FABRIC,TP_TRANS,NFE_REF4,VLR_IMPORT,OBS_ADICIONAL,FLG_PROCEDE,ROMANEIO_NRO,ROMANEIO_DATA,TOKEN, CODMARKET, VLR_PIX, NFE_DADOS, FLG_EXC, NFE_SERIE,
NFCE_NRO, NFCE_STATUS, NFCE_CAMINHO, NFCE_CHAVE)
values (:CODIGO,:FLG_CODMOV,:DATA,:NOTA_FISCAL,:SERIE,:CUPOM_FISCAL,:NRO_ECF,:DATA_SAIDA,:COD_CLI,:COD_FOR,:COD_FUNC,:COD_TRIB,:COD_END_CLI,:VLR_DESC,:VLR_ACRES,:VLR_FRETE,
:PORC_FRETE,:VLR_TOTAL,:TOTAL_NF,:TIPO_RECEB,:OBSERV1,:OBSERV2,:OBSERV3,:TRANS_NOME,:TRANS_END,:TRANS_CIDADE,:TRANS_CIDADEUF,:TRANS_PLACA,:TRANS_PLACAUF,:TRANS_FRETE,
:TRANS_CNPJ_CPF,:TRANS_IE_RG,:CODREC_DEVOLUCAO,:COD_CAIXA,:FLG_CANCEL,:MOTIVO_CANCEL,:NF_DATA,:NF_DATA_SAIDA,:NF_HORA,:NF_CPF,:PLACA,:DATA_ENTREGA,:FLG_ABERTO,
:VLR_DINH,:VLR_CHVISTA,:VLR_CHPRE,:VLR_CARTAO,:NFE_NRO,:NFE_STATUS,:NFE_CAMINHO,:NFE_CHAVE,:NFE_OBSERV,:VLR_DEBITO,:VLR_PRAZO,:VLR_OUTROS,:COD_EMPRESA,:NOME_VEICULO,
:VOL_QUANT,:VOL_ESPECIE,:VOL_MARCA,:VOL_NRO,:VOL_BRUTO,:VOL_LIQUIDO,:NFE_REF1,:NFE_REF2,:NFE_REF3,:COD_MAO_OBRA,:SAT_NRO,:SAT_STATUS,:SAT_CAMINHO,:SAT_CHAVE,:DT_COMISSAO,:NF_NOME,:COD_CONVENIO,:COD_MESA,:COD_PARCELA,:FLG_PRECO,
:LOCAL_DESEMB,:UF_DESEMB,:NRO_DI,:DT_DI,:COD_EXPORT,:COD_FABRIC,:TP_TRANS,:NFE_REF4,:VLR_IMPORT,:OBS_ADICIONAL,:FLG_PROCEDE,:ROMANEIO_NRO,:ROMANEIO_DATA,:TOKEN,:CODMARKET,:VLR_PIX, :NFE_DADOS, :FLG_EXC, :NFE_SERIE,
:NFCE_NRO,:NFCE_STATUS,:NFCE_CAMINHO, :NFCE_CHAVE);

if (operacao = 2) then
update MOVTO set
FLG_CODMOV = :FLG_CODMOV,
DATA = :DATA,
NOTA_FISCAL = :NOTA_FISCAL,
SERIE = :SERIE,
CUPOM_FISCAL = :CUPOM_FISCAL,
NRO_ECF = :NRO_ECF,
DATA_SAIDA = :DATA_SAIDA,
COD_CLI = :COD_CLI,
COD_FOR = :COD_FOR,
COD_FUNC = :COD_FUNC,
COD_TRIB = :COD_TRIB,
COD_END_CLI = :COD_END_CLI,
VLR_DESC = :VLR_DESC,
VLR_ACRES = :VLR_ACRES,
VLR_FRETE = :VLR_FRETE,
PORC_FRETE = :PORC_FRETE,
VLR_TOTAL = :VLR_TOTAL,
TOTAL_NF = :TOTAL_NF,
TIPO_RECEB = :TIPO_RECEB,
OBSERV1 = :OBSERV1,
OBSERV2 = :OBSERV2,
OBSERV3 = :OBSERV3,
TRANS_NOME = :TRANS_NOME,
TRANS_END = :TRANS_END,
TRANS_CIDADE = :TRANS_CIDADE,
TRANS_CIDADEUF = :TRANS_CIDADEUF,
TRANS_PLACA = :TRANS_PLACA,
TRANS_PLACAUF = :TRANS_PLACAUF,
TRANS_FRETE = :TRANS_FRETE,
TRANS_CNPJ_CPF = :TRANS_CNPJ_CPF,
TRANS_IE_RG = :TRANS_IE_RG,
CODREC_DEVOLUCAO = :CODREC_DEVOLUCAO,
COD_CAIXA = :COD_CAIXA,
FLG_CANCEL = :FLG_CANCEL,
MOTIVO_CANCEL = :MOTIVO_CANCEL,
NF_DATA = :NF_DATA,
NF_DATA_SAIDA = :NF_DATA_SAIDA,
NF_HORA = :NF_HORA,
NF_CPF = :NF_CPF,
PLACA = :PLACA,
DATA_ENTREGA = :DATA_ENTREGA,
FLG_ABERTO = :FLG_ABERTO,
VLR_DINH = :VLR_DINH,
VLR_CHVISTA = :VLR_CHVISTA,
VLR_CHPRE = :VLR_CHPRE,
VLR_CARTAO = :VLR_CARTAO,
NFE_NRO = :NFE_NRO,
NFE_STATUS = :NFE_STATUS,
NFE_CAMINHO = :NFE_CAMINHO,
NFE_CHAVE = :NFE_CHAVE,
NFE_OBSERV = :NFE_OBSERV,
VLR_DEBITO = :VLR_DEBITO,
VLR_PRAZO = :VLR_PRAZO,
VLR_OUTROS = :VLR_OUTROS,
COD_EMPRESA = :COD_EMPRESA,
NOME_VEICULO = :NOME_VEICULO,
VOL_QUANT = :VOL_QUANT,
VOL_ESPECIE = :VOL_ESPECIE,
VOL_MARCA = :VOL_MARCA,
VOL_NRO = :VOL_NRO,
VOL_BRUTO = :VOL_BRUTO,
VOL_LIQUIDO = :VOL_LIQUIDO,
NFE_REF1 = :NFE_REF1,
NFE_REF2 = :NFE_REF2,
NFE_REF3 = :NFE_REF3,
COD_MAO_OBRA = :COD_MAO_OBRA,
SAT_NRO = :SAT_NRO,
SAT_STATUS = :SAT_STATUS,
SAT_CAMINHO = :SAT_CAMINHO,
SAT_CHAVE = :SAT_CHAVE,
DT_COMISSAO = :DT_COMISSAO,
NF_NOME = :NF_NOME,
COD_CONVENIO = :COD_CONVENIO,
COD_MESA = :COD_MESA,
COD_PARCELA = :COD_PARCELA,
FLG_PRECO = :FLG_PRECO,
LOCAL_DESEMB  = :LOCAL_DESEMB,
UF_DESEMB = :UF_DESEMB,
NRO_DI = :NRO_DI,
DT_DI = :DT_DI,
COD_EXPORT = :COD_EXPORT,
COD_FABRIC = :COD_FABRIC,
TP_TRANS = :TP_TRANS,
NFE_REF4 = :NFE_REF4,
VLR_IMPORT = :VLR_IMPORT,
OBS_ADICIONAL = :OBS_ADICIONAL,
FLG_PROCEDE = :FLG_PROCEDE,
ROMANEIO_NRO = :ROMANEIO_NRO,
ROMANEIO_DATA = :ROMANEIO_DATA,
TOKEN = :TOKEN,
CODMARKET = :CODMARKET,
VLR_PIX = :VLR_PIX,
NFE_DADOS = :NFE_DADOS,
FLG_EXC = :FLG_EXC,
NFE_SERIE = :NFE_SERIE,
NFCE_NRO = :NFCE_NRO,
NFCE_STATUS = :NFCE_STATUS,
NFCE_CAMINHO = :NFCE_CAMINHO,
NFCE_CHAVE = :NFCE_CHAVE
where (CODIGO = :CODIGO);
if (operacao = 3) then
delete from MOVTO
where (CODIGO = :CODIGO);
suspend;
end
^
CREATE INDEX END_CLI_IDX1
ON END_CLI (COD_CLI)
^
Alter Table PRODUTO
    ADD DIAS_TROCA integer
^
create or alter procedure P_PRODUTO (
    OPERACAO integer,
    CODIGO integer,
    NOME varchar(60),
    COD_GRUPO integer,
    COD_FORNECEDOR integer,
    MARCA varchar(200),
    UNIDADE_ESTOQUE varchar(10),
    UNIDADE_CONVERSAO varchar(10),
    QTD_EMBALAGEM numeric(15,4),
    PORC_LUCRO_V numeric(15,2),
    PORC_LUCRO_P numeric(15,2),
    PORC_ICMS_ISS numeric(15,2),
    PORC_COMISSAO integer,
    COD_CST varchar(10),
    ESTOQUE_INICIAL numeric(15,3),
    ESTOQUE_MINIMO numeric(15,3),
    ESTOQUE_ATUAL numeric(15,3),
    ESTOQUE_FISCAL numeric(15,3),
    COD_TRIB integer,
    COD_TRIB_ENT integer,
    SIT_TRIB varchar(2),
    DT_CADASTRO date,
    FLG_ATIVADO char(1),
    FLG_ESTOQUE char(1),
    FLG_TIPO char(1),
    LOCALIZACAO varchar(60),
    OBSERVACAO varchar(100),
    OBSERVACAO2 varchar(100),
    DT_ALTERACAO date,
    TEMPO_REAL time,
    NCM varchar(20),
    COD_CSOSN integer,
    CONV_PRECO numeric(15,3),
    CST_PIS varchar(3),
    CST_COFINS varchar(3),
    COD_SUBGRUPO integer,
    COD_SUBSUBGRUPO integer,
    ESTOQUE1 numeric(15,3),
    ESTOQUE2 numeric(15,3),
    ESTOQUE3 numeric(15,3),
    ESTOQUE4 numeric(15,3),
    ESTOQUE5 numeric(15,3),
    PORC_PIS numeric(15,2),
    PORC_COFINS numeric(15,2),
    OBS_ADICIONAL varchar(3000),
    DT_VALIDADE date,
    PORC_IPI numeric(15,2),
    PORC_MVA numeric(15,2),
    PESO_BRUTO numeric(15,3),
    PESO_LIQUIDO numeric(15,3),
    FOTO varchar(200),
    ANEXO varchar(100),
    COD_ANP varchar(10),
    LOCALIZACAO2 varchar(60),
    ETIQUETA integer,
    COD_CEST varchar(7),
    COD_EMPRESA integer,
    PORC_DESC numeric(15,2),
    FLG_DESC char(1),
    ESTOQUE_MAXIMO numeric(15,3),
    ESTOQUE_DEMANDA_MEDIA numeric(15,3),
    ESTOQUE_TEMPO_RESUPRI numeric(15,3),
    ESTOQUE_INTERVALO_RESUPRI numeric(15,3),
    COD_DESP integer,
    COD_MARCA integer,
    FLG_SITE char(1),
    FLG_BALANCA char(1),
    SITE_COMPRIMENTO numeric(15,2),
    SITE_LARGURA numeric(15,2),
    SITE_ALTURA numeric(15,2),
    SITE_DESCRICAO varchar(9999),
    SITE_SYNC char(1),
    SITE_COD integer,
    PORC_REDBASE numeric(15,2),
    PONTOS numeric(15,4),
    LOCALIZACAO21 varchar(60),
    LOCALIZACAO22 varchar(60),
    LOCALIZACAO31 varchar(60),
    LOCALIZACAO32 varchar(60),
    LOCALIZACAO41 varchar(60),
    LOCALIZACAO42 varchar(60),
    LOCALIZACAO51 varchar(60),
    LOCALIZACAO52 varchar(60),
    PORC_FCP numeric(15,2),
    FLG_TRIBUTO char(1),
    PORC_OFERTA numeric(15,2),
    EXIBE_FICHA char(1),
    FLG_COTACAO char(1),
    SITE_DESC blob sub_type 1 segment size 4096,
    DIAS_TROCA integer)
as
begin
if (OPERACAO = 1) then
insert into PRODUTO (CODIGO,NOME,COD_GRUPO,COD_FORNECEDOR,MARCA,UNIDADE_ESTOQUE,UNIDADE_CONVERSAO,QTD_EMBALAGEM,PORC_LUCRO_V,PORC_LUCRO_P,PORC_ICMS_ISS,PORC_COMISSAO,
COD_CST,ESTOQUE_INICIAL,ESTOQUE_MINIMO,ESTOQUE_ATUAL,ESTOQUE_FISCAL,COD_TRIB,COD_TRIB_ENT,SIT_TRIB,DT_CADASTRO,FLG_ATIVADO,FLG_ESTOQUE,FLG_TIPO,LOCALIZACAO,OBSERVACAO,
OBSERVACAO2,DT_ALTERACAO,TEMPO_REAL,NCM,COD_CSOSN,CONV_PRECO,CST_PIS,CST_COFINS,COD_SUBGRUPO,COD_SUBSUBGRUPO,ESTOQUE1,ESTOQUE2,ESTOQUE3,ESTOQUE4,ESTOQUE5,PORC_PIS,PORC_COFINS,
OBS_ADICIONAL,DT_VALIDADE,PORC_IPI,PORC_MVA,PESO_BRUTO,PESO_LIQUIDO,FOTO,ANEXO,COD_ANP,LOCALIZACAO2,ETIQUETA,COD_CEST,COD_EMPRESA,PORC_DESC,FLG_DESC,ESTOQUE_MAXIMO,ESTOQUE_DEMANDA_MEDIA,
ESTOQUE_TEMPO_RESUPRI,ESTOQUE_INTERVALO_RESUPRI,COD_DESP,COD_MARCA,FLG_SITE,FLG_BALANCA,SITE_COMPRIMENTO,SITE_LARGURA,SITE_ALTURA,SITE_DESCRICAO,SITE_SYNC,SITE_COD,PORC_REDBASE,PONTOS,
LOCALIZACAO21,LOCALIZACAO22,LOCALIZACAO31,LOCALIZACAO32,LOCALIZACAO41,LOCALIZACAO42,LOCALIZACAO51,LOCALIZACAO52, PORC_FCP, FLG_TRIBUTO,PORC_OFERTA,EXIBE_FICHA, FLG_COTACAO, SITE_DESC, DIAS_TROCA)
values (:CODIGO,:NOME,:COD_GRUPO,:COD_FORNECEDOR,:MARCA,:UNIDADE_ESTOQUE,:UNIDADE_CONVERSAO,:QTD_EMBALAGEM,:PORC_LUCRO_V,:PORC_LUCRO_P,:PORC_ICMS_ISS,:PORC_COMISSAO,:COD_CST,:ESTOQUE_INICIAL,:ESTOQUE_MINIMO,
:ESTOQUE_ATUAL,:ESTOQUE_FISCAL,:COD_TRIB,:COD_TRIB_ENT,:SIT_TRIB,:DT_CADASTRO,:FLG_ATIVADO,:FLG_ESTOQUE,:FLG_TIPO,:LOCALIZACAO,:OBSERVACAO,:OBSERVACAO2,:DT_ALTERACAO,:TEMPO_REAL,:NCM,:COD_CSOSN, 
:CONV_PRECO,:CST_PIS,:CST_COFINS,:COD_SUBGRUPO,:COD_SUBSUBGRUPO,:ESTOQUE1,:ESTOQUE2,:ESTOQUE3,:ESTOQUE4,:ESTOQUE5,:PORC_PIS,:PORC_COFINS,:OBS_ADICIONAL,:DT_VALIDADE,:PORC_IPI,:PORC_MVA,:PESO_BRUTO, 
:PESO_LIQUIDO,:FOTO,:ANEXO,:COD_ANP,:LOCALIZACAO2,:ETIQUETA,:COD_CEST,
:COD_EMPRESA,:PORC_DESC,:FLG_DESC,:ESTOQUE_MAXIMO,:ESTOQUE_DEMANDA_MEDIA,:ESTOQUE_TEMPO_RESUPRI,:ESTOQUE_INTERVALO_RESUPRI,:COD_DESP,:COD_MARCA,:FLG_SITE,:FLG_BALANCA,
:SITE_COMPRIMENTO,:SITE_LARGURA,:SITE_ALTURA,:SITE_DESCRICAO,:SITE_SYNC,:SITE_COD,:PORC_REDBASE,:PONTOS,:LOCALIZACAO21,:LOCALIZACAO22,:LOCALIZACAO31,:LOCALIZACAO32,:LOCALIZACAO41, 
:LOCALIZACAO42,:LOCALIZACAO51,:LOCALIZACAO52,:PORC_FCP, :FLG_TRIBUTO, :PORC_OFERTA, :EXIBE_FICHA, :FLG_COTACAO, :SITE_DESC,:DIAS_TROCA);
if (OPERACAO = 2) then
update PRODUTO set
NOME = :NOME,
COD_GRUPO = :COD_GRUPO,
COD_FORNECEDOR = :COD_FORNECEDOR,
MARCA = :MARCA,
UNIDADE_ESTOQUE = :UNIDADE_ESTOQUE,
UNIDADE_CONVERSAO = :UNIDADE_CONVERSAO,
QTD_EMBALAGEM = :QTD_EMBALAGEM,
PORC_LUCRO_V = :PORC_LUCRO_V,
PORC_LUCRO_P = :PORC_LUCRO_P,
PORC_ICMS_ISS = :PORC_ICMS_ISS,
PORC_COMISSAO = :PORC_COMISSAO,
COD_CST = :COD_CST,
ESTOQUE_INICIAL = :ESTOQUE_INICIAL,
ESTOQUE_MINIMO = :ESTOQUE_MINIMO, 
ESTOQUE_ATUAL = :ESTOQUE_ATUAL,
ESTOQUE_FISCAL = :ESTOQUE_FISCAL, 
COD_TRIB = :COD_TRIB,
COD_TRIB_ENT = :COD_TRIB_ENT,
SIT_TRIB = :SIT_TRIB,
DT_CADASTRO = :DT_CADASTRO,
FLG_ATIVADO = :FLG_ATIVADO,
FLG_ESTOQUE = :FLG_ESTOQUE,
FLG_TIPO = :FLG_TIPO,
LOCALIZACAO = :LOCALIZACAO,
OBSERVACAO = :OBSERVACAO,
OBSERVACAO2 = :OBSERVACAO2,
DT_ALTERACAO = :DT_ALTERACAO,
TEMPO_REAL = :TEMPO_REAL,
NCM = :NCM,
COD_CSOSN = :COD_CSOSN, 
CONV_PRECO = :CONV_PRECO,
CST_PIS = :CST_PIS,
CST_COFINS = :CST_COFINS,
COD_SUBGRUPO = :COD_SUBGRUPO,
COD_SUBSUBGRUPO = :COD_SUBSUBGRUPO,
ESTOQUE1 = :ESTOQUE1,
ESTOQUE2 = :ESTOQUE2,
ESTOQUE3 = :ESTOQUE3,
ESTOQUE4 = :ESTOQUE4,
ESTOQUE5 = :ESTOQUE5,
PORC_PIS = :PORC_PIS,
PORC_COFINS = :PORC_COFINS,
OBS_ADICIONAL = :OBS_ADICIONAL,
DT_VALIDADE = :DT_VALIDADE,
PORC_IPI = :PORC_IPI,
PORC_MVA = :PORC_MVA,
PESO_BRUTO = :PESO_BRUTO,
PESO_LIQUIDO = :PESO_LIQUIDO,
FOTO = :FOTO,
ANEXO = :ANEXO,
COD_ANP = :COD_ANP,
LOCALIZACAO2 = :LOCALIZACAO2,
ETIQUETA = :ETIQUETA,
COD_CEST = :COD_CEST,
COD_EMPRESA = :COD_EMPRESA,
PORC_DESC = :PORC_DESC,
FLG_DESC = :FLG_DESC,
ESTOQUE_MAXIMO = :ESTOQUE_MAXIMO,
ESTOQUE_DEMANDA_MEDIA = :ESTOQUE_DEMANDA_MEDIA,
ESTOQUE_TEMPO_RESUPRI = :ESTOQUE_TEMPO_RESUPRI,
ESTOQUE_INTERVALO_RESUPRI = :ESTOQUE_INTERVALO_RESUPRI,
COD_DESP = :COD_DESP,
COD_MARCA = :COD_MARCA,
FLG_SITE = :FLG_SITE,
FLG_BALANCA = :FLG_BALANCA,
SITE_COMPRIMENTO = :SITE_COMPRIMENTO,
SITE_LARGURA = :SITE_LARGURA,
SITE_ALTURA = :SITE_ALTURA,
SITE_DESCRICAO = :SITE_DESCRICAO,
SITE_SYNC = :SITE_SYNC,
SITE_COD = :SITE_COD,
PORC_REDBASE = :PORC_REDBASE,
PONTOS = :PONTOS,
LOCALIZACAO21 = :LOCALIZACAO21,
LOCALIZACAO22 = :LOCALIZACAO22,
LOCALIZACAO31 = :LOCALIZACAO31,
LOCALIZACAO32 = :LOCALIZACAO32,
LOCALIZACAO41 = :LOCALIZACAO41,
LOCALIZACAO42 = :LOCALIZACAO42,
LOCALIZACAO51 = :LOCALIZACAO51,
LOCALIZACAO52 = :LOCALIZACAO52,
PORC_FCP = :PORC_FCP,
FLG_TRIBUTO = :FLG_TRIBUTO,
PORC_OFERTA = :PORC_OFERTA,
EXIBE_FICHA = :EXIBE_FICHA,
FLG_COTACAO = :FLG_COTACAO,
SITE_DESC  = :SITE_DESC,
DIAS_TROCA = :DIAS_TROCA
where (CODIGO = :CODIGO);
if (OPERACAO = 3) then
delete from PRODUTO 
where (CODIGO = :CODIGO);
suspend;
end
^
update configuracao set valido = 'SIM;NAO;SEMPRE' where cod_tela = 'SG_0000' and campo = 'CONTAS'
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('SG_0000', 'CONFIGURACOES', 'PRINCIPAL', 'DT_ANIVERSARIO', 'QUANTOS DIAS ANTES QUER QUE O SISTEMA AVISE SOBRE O ANIVERSARIO', '0', '0;15;30','N')
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('SG_0011', 'BAIXA RECEBER', 'CONTAS A RECEBER', 'CONTA_ABERTA', 'IMPRIMIR EXTRATO DAS CONTAS EM ABERTO APOS BAIXAR PARCELAS', 'NAO', 'SIM;NAO','N')
^
update configuracao set nome_tela = 'BAIXA RECEBER' where cod_tela = 'SG_0011' and campo = 'EXTRATO'
^
update configuracao set nome_tela = 'FINALIZACAO DE VENDA', menu = 'SAIDAS', descricao = 'PEDIR SENHA PARA VENDA A PRAZO MAIOR DO QUE:'
where cod_tela = 'VENDA' and campo = 'VLR_PRAZO'
^
update configuracao set nome_tela = 'FECHAMENTO DE CAIXA' where menu = 'CAIXA' and nome_tela = 'FECHAMENTO'
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('SG_07B', 'CONFIGURACOES', 'PRODUTO', 'SQL_NOVO', 'USAR NOVA SELECT', 'NAO', 'SIM;NAO', 'N')
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('SG_10', 'CONFIGURACOES', 'PRINCIPAL', 'ESPECIFICA_ON', 'SEMPRE USAR A PESQUISA ESPECIFICA', 'NAO', 'SIM;NAO', 'N')
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('SG_07B', 'CONFIGURACOES', 'PRODUTO', 'ENTER_AUT', 'ENTER AUTOMATICO NO CODIGO DE BARRA', 'NAO', 'SIM;NAO', 'N')
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('PRODUTO', 'PRODUTOS', 'CADASTROS', 'AVISO_DIAS_ANT', 'AVISAR QUANTOS DIAS ANTES A TROCA DO PRODUTO', '30', '', 'N')
^
create table AVISO_TROCA(
    ID integer not null primary key,
    CODMOV integer,
    COD_PROD integer, 
    DT_TROCA date,
    FLG_SINALIZAR char(1))
^
ALTER TABLE AVISO_TROCA
ADD CONSTRAINT FK_AVISO_TROCA_1
FOREIGN KEY (CODMOV)
REFERENCES MOVTO(CODIGO)
^
CREATE OR ALTER TRIGGER TRG_AVISO_TROCA FOR AVISO_TROCA
ACTIVE BEFORE INSERT POSITION 0
AS
declare variable cod integer;
begin
 select max(ID) from AVISO_TROCA into :cod;
if (cod is null) then cod = 0;
new.ID = cod + 1;
end
^
ALTER TABLE AVISO_TROCA
ADD CONSTRAINT FK_AVISO_TROCA_2
FOREIGN KEY (COD_PROD)
REFERENCES PRODUTO(CODIGO)
^
CREATE TABLE WHATS_MENSAGEM(
    ID integer not null primary key,
    NOME_TELA varchar(60) not null,
    mensagem varchar(2000),
    DT_CRIACAO timestamp)
^
CREATE OR ALTER TRIGGER TRG_WHATS_MENSAGEM FOR WHATS_MENSAGEM
ACTIVE BEFORE INSERT POSITION 0
AS
declare variable cod integer;
begin
 select max(ID) from WHATS_MENSAGEM into :cod;
if (cod is null) then cod = 0;
new.ID = cod + 1;
new.DT_CRIACAO = current_timestamp;
end
^
alter table parametros
    add PORTA_SAT_API integer;
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('SG_0115', 'ORDEM DE PRODUCAO', 'PRINCIPAL', 'FONECEDOR', 'USAR FORNECEDOR EM ORDEM DE PRODUCAO', 'NAO', 'SIM;NAO', 'N');
^

ALTER TABLE MOV_PRODUCAO
    ADD COD_FOR INTEGER
^

CREATE OR ALTER procedure P_MOV_PRODUCAO (
    OPERACAO integer,
    CODIGO integer,
    DT_INICIO date,
    HR_INICIO time,
    DT_FIM date,
    HR_FIM time,
    COD_FUNC integer,
    COD_PROD integer,
    QUANT_APRODUZIR numeric(15,3),
    QUANT_PRODUZIDA numeric(15,3),
    VLR_ACRES numeric(15,2),
    OBSERVACAO varchar(60),
    OBSERVACAO2 varchar(60),
    OBSERVACAO3 varchar(60),
    COD_CLI integer,
    COD_FOR integer)
as
begin 
if (operacao = 1) then 
insert into MOV_PRODUCAO (CODIGO,DT_INICIO,HR_INICIO,DT_FIM,HR_FIM,COD_FUNC,COD_PROD,QUANT_APRODUZIR,QUANT_PRODUZIDA,VLR_ACRES,OBSERVACAO,OBSERVACAO2,OBSERVACAO3,COD_CLI,COD_FOR)
values (:CODIGO,:DT_INICIO,:HR_INICIO,:DT_FIM,:HR_FIM,:COD_FUNC,:COD_PROD,:QUANT_APRODUZIR,:QUANT_PRODUZIDA,:VLR_ACRES,:OBSERVACAO,:OBSERVACAO2,:OBSERVACAO3,:COD_CLI,:COD_FOR);
if (operacao = 2) then 
update MOV_PRODUCAO set 
DT_INICIO = :DT_INICIO, 
HR_INICIO = :HR_INICIO,
DT_FIM = :DT_FIM, 
HR_FIM = :HR_FIM, 
COD_FUNC = :COD_FUNC,
COD_PROD = :COD_PROD,
QUANT_APRODUZIR = :QUANT_APRODUZIR,
QUANT_PRODUZIDA = :QUANT_PRODUZIDA, 
VLR_ACRES = :VLR_ACRES, 
OBSERVACAO = :OBSERVACAO, 
OBSERVACAO2 = :OBSERVACAO2,
OBSERVACAO3 = :OBSERVACAO3, 
COD_CLI = :COD_CLI,
COD_FOR = :COD_FOR
where (CODIGO = :CODIGO);
if (operacao = 3) then 
delete from MOV_PRODUCAO  
where (CODIGO = :CODIGO); 
suspend; 
end
^
DROP PROCEDURE P_EMPRESA
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('SG_0007', 'PRODUTOS', 'CADASTROS', 'ABA_TRIBUTOS', 'HABILITAR ABA DE TRIBUTOS', 'SIM', 'SIM;NAO','N')
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('SG_0007', 'PRODUTOS', 'CADASTROS', 'ABA_RELACIONADOS', 'HABILITAR ABA DE RELACIONADOS', 'SIM', 'SIM;NAO','N')
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('SG_0007', 'PRODUTOS', 'CADASTROS', 'ABA_ESTOQUE', 'HABILITAR ABA DE ESTOQUE', 'SIM', 'SIM;NAO','N')
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('SG_0007', 'PRODUTOS', 'CADASTROS', 'ABA_COMPOSICAO', 'HABILITAR ABA DE COMPOSICAO', 'SIM', 'SIM;NAO','N')
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('SG_0007', 'PRODUTOS', 'CADASTROS', 'ABA_LOJAVIRTUAL', 'HABILITAR ABA DE LOJA VIRTUAL', 'SIM', 'SIM;NAO','N')
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('SG_0007', 'PRODUTOS', 'CADASTROS', 'ABA_DEPOSITO', 'HABILITAR ABA DE DEPOSITO', 'SIM', 'SIM;NAO','N')
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('SG_0007', 'PRODUTOS', 'CADASTROS', 'ABA_LOTE', 'HABILITAR ABA DE LOTE', 'SIM', 'SIM;NAO','N')
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('SG_0007', 'PRODUTOS', 'CADASTROS', 'ABA_RECEITUARIO', 'HABILITAR ABA DE RECEITUARIO', 'SIM', 'SIM;NAO','N')
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('SG_0007', 'PRODUTOS', 'CADASTROS', 'ABA_ADICIONAIS', 'HABILITAR ABA DE DADOS ADICIONAIS', 'SIM', 'SIM;NAO','N')
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('SG_0015', 'VENDAS', 'SAIDAS', 'FLG_ESTOQUE', 'NAO DA BAIXA NO ESTOQUE AO FINALIZAR A VENDA', 'NAO', 'SIM;NAO', 'N');
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('SG_0016B', 'FINALIZACAO DE VENDA', 'SAIDAS', 'EMISSAO_NFCE', 'EMITIR PELO ACBR', 'NAO', 'SIM;NAO', 'S');
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO)
VALUES ('SG_0134', 'VENDAS', 'SAIDAS', 'COMPOSICAO', 'ESCOLHE SE VAI EXIBIR OS ITENS DA COMPOSICAO OU O PRODUTO', 'SIM', 'SIM;NAO', 'N');
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO) VALUES
('VENDA', 'VENDAS', 'SAIDAS', 'DESC_PROD', 'HABILITA OU DESABILITA O DESCONTO DIRETO NO PRODUTO', 'SIM', 'SIM;NAO', 'N');
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO) VALUES
('VENDA', 'VENDAS', 'SAIDAS', 'ORDEM_MOVTO', 'ORDENA PESQUISA DE VENDAS PELO CODIGO DO MOVTO', 'SIM', 'SIM;NAO', 'N');
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO) VALUES
('VENDA', 'VENDAS', 'SAIDAS', 'AUTO_SELECT', 'SELECIONA O TEXTO DA PESQUISA', 'NAO', 'SIM;NAO', 'N');
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO) VALUES
('SG_0036B', 'FINALIZACAO DE VENDA', 'SAIDAS', 'ATUALIZA_DATA', 'ATUALIZAR A DATA DA VENDA AO EMITIR CUPOM', 'NAO', 'SIM;NAO', 'S');
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO) VALUES
('SG_0057', 'VENDAS', 'CONIGURACAO', 'MECANICO', 'PERMITE COLOCAR MECANICO NA VENDA', 'NAO', 'SIM;NAO', 'N');
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO) VALUES
('SG_0016B', 'FINALIZACAO DE VENDA', 'SAIDAS', 'FINALIZA_ORCAMENTO', 'PERMITE FINALIZAR ORÇAMENTO COM OUTRAS FORMAS DE PAGEMENTO ALEM DA "EM ABERTO"', 'SIM', 'SIM;NAO', 'S');
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO) VALUES
('SG_0016B', 'FINALIZACAO DE VENDA', 'SAIDAS', 'IMP_PROMISSORIA', 'IMPRIME PROMISSORIA DE VENDA A PRAZO', 'NAO', 'SIM;NAO', 'N');
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO) VALUES
('SG_0012', 'CONTAS A RECEBER', 'EXTRATO EM ABERTO', 'IMP_EXTRATO_ABERTO', 'EXIBE A COLUNA JUROS NA IMPRESSAO DO EXTRATO EM ABERTOS', 'SIM', 'SIM;NAO', 'N');
^
INSERT INTO CONFIGURACAO (COD_TELA, NOME_TELA, MENU, CAMPO, DESCRICAO, VALOR, VALIDO, FLG_RESTRITO) VALUES
('SG_0016B', 'IMPRESSAO VENDA', 'SAIDAS', 'IMP_VENDA', 'ORDEM DOS PRODUTOS NA IMPRESSAO DE VENDA', 'VENDA', 'VENDA;ALFABETICA', 'S');
^

