/* UPDATE de um campo para outro (tabelas diferentes) */
UPDATE tb_estoque
SET tb_estoque.prc_atacado =(SELECT tb_est_indexador.valor FROM tb_est_indexador WHERE tb_est_indexador.id_estoque = tb_estoque.id_estoque)
/* UPDATE de um campo para outro (tabelas diferentes) - Copiar campo Adicional 1 para COD_CEST */
execute block
as
declare variable identificador integer;
declare variable cest varchar(7);
begin
for
select eii.id_identificador, adicional1 from tb_est_adicional ea
inner join tb_est_identificador eii
on eii.id_estoque = ea.id_estoque
where ea.id_estoque in
(select ei.id_estoque from tb_est_identificador ei
left join tb_est_produto ep
on ei.id_identificador = ep.id_identificador)
into
:identificador,
:cest
do
begin
update tb_est_produto set cod_cest = :cest
where id_identificador = :identificador;
end
end;
/* Alterar primeiro dígito do número do documento CONTA À RECEBER */
update tb_conta_receber set documento = substring('X' from 1 for 1) || substring(documento from 2 for 20)
where documento like '9%'
/* UPDATE a partir do valor de uma tabela acrescentando +1 -(número da próxima NFC-e). */
UPDATE tb_nfvenda_gen_id
SET tb_nfvenda_gen_id.nf_proxima = (SELECT max (nf_numero) FROM tb_nfvenda WHERE nf_modelo = 65) + 1
where tb_nfvenda_gen_id.nf_modelo = 65;;
/* Verificar se /*select para ver se na tb_est_produto tem itens duplicados. Duplicidade gera problema na TB_E2_SIS - toda vez que abre o ECF solicita atualização dos arquivos */
select id_identificador, count(*) from tb_est_produto
group by id_identificador
having count(*) > 1
/* GENERATOR atualizar a partir do último registro de uma TABLE */
execute block as
declare variable x integer;
begin
SELECT max(ID_CTAREC) from TB_CONTA_RECEBER into x;
execute statement 'set generator GEN_TB_CTAREC_ID to ' || x;
end;
/* Atualizar GENERATOR a partir do último registro da TB_EST_IDENTIFICADOR */
execute block as
declare variable x integer;
begin
SELECT max(ID_IDENTIFICADOR) from TB_EST_IDENTIFICADOR into x;
execute statement 'set generator GEN_TB_EST_IDENTIFICADOR_ID to ' || x;
end;;
execute block as
declare variable x integer;
begin
SELECT max(ID_ESTOQUE) from TB_EST_IDENTIFICADOR into x;
execute statement 'set generator GEN_TB_ESTOQUE_ID to ' || x;
end;;
/* Calcula o Novo preço do produto, com base no preço de custo e margem do lucro */
update tb_estoque set
prc_venda = cast(prc_custo+(prc_custo*(margem_lb/100)) as numeric(18,2))
where margem_lb <> 0;
/* Acrescentar máscara de Fornecedor quando o campo tiver 14 caracteres e não tiver pontos. Ex: no campo CNPJ tenho preenchido 00445335000113, executando o script ficará 00.445.335.0001-13 */
update tb_fornecedor set CNPJ = substring(CNPJ from 1 for 2) || '.' || substring(CNPJ from 3 for 3) || '.'
|| substring(CNPJ from 6 for 3) || '/' || substring(CNPJ from 9 for 4) || '-' || substring(CNPJ from 13 for 2)
where
ID_fornec IN (SELECT id_fornec
FROM tb_fornecedor
WHERE char_length(CNPJ) = 14) and CNPJ not like '%.%'
/* Alterar CST para 060 quando CTI for FFF */
update tb_est_produto set CST = '060'
where id_identificador in (
select tp.id_identificador, tp.cst, te.id_cti
from tb_est_produto tp
left join tb_est_identificador ti
on tp.id_identificador = ti.id_identificador
left join tb_estoque te
on ti.id_estoque = te.id_estoque
where te.id_cti = 'FFF')
Script conversão - DIGISAT
Acesse o link a seguir e verifique os scripts para extrair os dados: \\servidorcompu\Suporte\Help\Script_conversao
No campo OBS, está preenchido o Preço de atacado, porém com vírgula (22,50), sendo que o firebird não reconhece a vírgula como decimal, assim, foi feito um script para alterar a vírgula por ponto e após, setar no preço de atacado o que está no campo Observação, como a OBS é Blob e o Preço atacado é Numeric, deve-se utilizar o cast.
-- substitui a vírgula por ponto --
update tb_estoque e
set e.observacao = replace(e.observacao,',','.')
-- atualiza os dados --
update tb_estoque e
set e.prc_atacado = cast(e.observacao as numeric(18,4))
where e.observacao <> ''
/* Inutilizar Nota */
UPDATE TB_NFE nfe SET
ID_NFE = (SUBSTRING (ID_NFE FROM 1 FOR 4)||SUBSTRING (ID_NFE FROM 7 FOR 37)),
STATUS = '102',
STATUS_DES = 'Inutilização de número homologado'
WHERE (SELECT nfv.nf_numero FROM TB_NFVENDA NFV
WHERE nfe.id_nfvenda = nfv.id_nfvenda and nf_modelo = 55 and nf_serie = 1) = 237;;
UPDATE TB_NFVENDA
SET ID_NATOPE = 0,
ID_VENDEDOR = NULL,
ID_CLIENTE = 0,
STATUS = 'X',
ID_FMAPGTO = 1,
ID_PARCELA = 1
WHERE (NF_NUMERO = 237 and nf_modelo = 55 and nf_serie = 1);;
/* Alterar chave nota */
UPDATE TB_NFE nfe SET
ID_NFE = '29170963227474000190550020000002371220562160'
WHERE (SELECT nfv.nf_numero FROM TB_NFVENDA NFV
WHERE nfe.id_nfvenda = nfv.id_nfvenda and nf_modelo = 55 and nf_serie = 1) = 237;;
/* Limpar filtros Service */
DELETE FROM tb_func_mod_coluna_sis
WHERE VALOR > 40 AND
(ID_MODULO='22' OR ID_MODULO='26' OR ID_MODULO='27');;
/* Limpar filtros DAVS */
delete from tb_func_mod_coluna_sis where id_modulo = 4;
delete from tb_func_mod_coluna_sis where id_modulo = 17;
/* Apagar vinculo complemento */
DELETE FROM TB_NFVENDA_VINCULO VIN
WHERE (SELECT NFV.NF_NUMERO FROM TB_NFVENDA NFV
WHERE VIN.ID_NFVENDA = NFV.id_nfvenda and nf_modelo = 55 and nf_serie = 2) = 7023;;
/* Apagar dados da J2_PAF sem pegar BD - Casos em que grava auditoria desta tabela ao alterar NF */
delete from tb_j2_paf where id_nfvitem in (select ni.id_nfvitem from tb_nfv_item ni
inner join tb_nfvenda nv on ni.id_nfvenda = nv.id_nfvenda where nv.nf_numero = 16996)
/* Incluir "Clientes Diversos" na tabela */
[SERIAL]
INSERT INTO TB_CLIENTE (ID_CLIENTE, ID_CONVENIO, DT_CADASTRO, NOME, END_CEP, END_TIPO, END_NUMERO, END_LOGRAD, END_BAIRRO, END_COMPLE, DT_PRICOMP, DT_ULTCOMP, CONTATO, STATUS, LIMITE, DDD_RESID, FONE_RESID, DDD_COMER, FONE_COMER, DDD_CELUL, FONE_CELUL, DDD_FAX, FONE_FAX, EMAIL_CONT, EMAIL_NFE, ID_CIDADE, ID_TIPO, ID_FUNCIONARIO, ID_PAIS, MENSAGEM, ID_RAMO, EMAIL_ADIC, OBSERVACAO) VALUES ((select max(ID_CLIENTE) from TB_CLIENTE)+1, NULL, '14-FEB-2012', 'CLIENTES DIVERSOS', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1058', NULL, NULL, NULL, NULL);;
[SERIAL]
UPDATE TB_CLIENTE SET ID_CLIENTE = 0 WHERE ID_CLIENTE = (SELECT MAX(ID_CLIENTE) FROM TB_CLIENTE);;