Procedimento para geração do inventário Contábil: LINV0008 - Inventário Contábil de Estoques para Itens sem Grade/Dimensional, regra para o inventário contábil - registros nas tabelas: SUP2730 - Seleciona itens da Empresa, SUP2740 - Seleciona Itens em Terceiros, SUP2750 - Seleciona Itens de terceiros, gravam registros nas tabelas W_INVENT e SUP_W_INV_COMPL. O SUP2760 - Manutenção de dados selecionados, faz inclusão, consulta, modificação e exclusão os registros das tabelas W_INVENT e SUP_W_INV_COMPL, caso precise alterar. O index unique das tabelas é o num_transac/num_trans. O num_transac da tabela W_INVENT é serial e o da SUP_W_INV_COMPL é integer. O num_transac é calculado na W_INVENT e é replicado para a SUP_W_INV_COMPL. O num_transac/num_trans das tabelas é o relacionamento entre os dois registros. Ao processar o SUP1930 - Livro de inventário, com o campo Versão oficial marcado, os dados das tabelas W_INVENT e SUP_W_INV_COMPL são replicados para as tabelas INVENT e SUP_INV_COMPL e excluídos das tabelas W_INVENT e SUP_W_INV_COMPL. Nestas tabelas a lógica é: O num_transac da tabela INVENT é serial e o da SUP_W_INV_COMPL é integer. O num_transac é calculado na INVENT e é replicado para a SUP_W_INV_COMPL. O num_transac/num_trans das tabelas é o relacionamento entre os dois registros. No processamento do SUP1930 quando o campo Versão oficial está marcado, sempre mantém o mês/ano que está processando, e o mês anterior é transferido para as tabelas H_INVENT e SUP_H_INV_COMPL. O serial das tabelas é alimentando pelo banco de dados, então nunca será duplicado. Quando ocorre erro de registro duplicado nas tabelas SUP_W_INV_COMPL ou SUP_INV_COMPL: pode ter ocorrido manutenção via banco de dados, onde somente os registros das tabelas W_INVENT e/ou INVENT foram excluídos, deixando como lixo nas tabelas complementares SUP_W_INV_COMPL ou SUP_INV_COMPL. Para correção terá que executar select(max) nas tabelas pares, para verificar se estão iguais (deveriam ser iguais), verificar quais registros estão sem ligação (registros que estão sem o seu par) e excluí-los. Comandos para verificação: 1.1. select max(num_transac) from w_invent where cod_empresa = '01' 1.2. select max(num_trans) from sup_w_inv_compl where empresa = '01' --- 2.1. select max(num_transac) from invent where cod_empresa = '01' 2. 2. select max(num_trans) from sup_inv_compl where empresa = '01' --- 3.1. select max(num_transac) from h_invent where cod_empresa = '01' 3.2. select max(num_trans) from sup_h_inv_compl where empresa = '01' --- Registros sem pares: 4.1. select * from w_invent where cod_empresa = '01' and num_transac not in (select num_trans from sup_w_inv_compl where empresa = '01') 4.2. select * from sup_w_inv_compl where empresa = '01' and num_trans not in (select num_transac from w_invent where cod_empresa = '01') --- 5.1. Select * from invent where cod_empresa = '01' and num_transac not in (select num_trans from sup_inv_compl where empresa = '01') 5.2. select * from sup_inv_compl where empresa = '01' and num_trans not in (select num_transac from invent where cod_empresa = '01') - Registros inconsistentes, terão que ser excluídos das tabelas e casos onde a invent não tem registro correspondente na sup_inv_compl, até reprocessar o período.
- Antes de qualquer alteração no banco de dados, indicado fazer Backup de todos os registros das tabelas.
|