CD_TRANSFENT — Operação de Entrada por Transferência
Tela de configuração: MEQ001 — Parâmetros de Estoque Componente na tela:
edtCD_TRANSFENT(campo editável) Tabela / Coluna:PARMESTOQUE.CD_TRANSFENT(DOM_INTEGER) Chave estrangeira:OPERACAO.CD_OPERACAOValor padrão: vazio (não preenchido)
Visão Geral
O parâmetro CD_TRANSFENT define qual operação de estoque será utilizada quando há uma entrada por transferência de mercadorias. Ele é o lado "entrada" do par de operações de transferência — o lado "saída" é definido pelo parâmetro CD_TRANSFSAI.
Quando uma transferência entre filiais é executada ou uma transferência avulsa é lançada, o sistema utiliza este código para gerar o registro de movimentação de estoque (MOVESTOQUE) na empresa de destino, incrementando o saldo de estoque.
Regras de Validação
Ao preencher o campo na tela MEQ001, o sistema aplica as seguintes verificações (procedure tabPARMESTOQUECD_TRANSFENTValidate):
| Regra | Condição | Mensagem de Erro |
|---|---|---|
| Operação deve existir | Código informado não encontrado em OPERACAO | "A Operação de Estoque não está Cadastrada [TEQ001]!" |
| Operação deve estar ativa | OPERACAO.ST_ATIVO = 'N' | "A Operação de Estoque não está Ativa [TEQ001]!" |
| Operação deve ser de entrada | OPERACAO.TP_OPERACAO = 'S' (saída) | "A Operação de Estoque deve ser de Entrada [TEQ001]!" |
Se o campo for deixado vazio, o campo descritivo DS_TRANSFENT também é limpo automaticamente.
Telas Impactadas
| Tela | Nome | Uso do Parâmetro |
|---|---|---|
| MEQ001 | Parâmetros de Estoque | Tela de configuração — onde o valor é definido |
| MEQ008 | Transferência Avulsa | Lê CD_TRANSFENT para gerar entrada na empresa destino |
| MEQ016 | Transferência Entre Filiais | Lê CD_TRANSFENT para gerar entrada e valida ST_CONTABIL da operação |
| MEQ035 | Separação/Transferência | Lê CD_TRANSFENT para registrar entrada de transferência |
| MEQ052 | Transferência com Leitura | Lê CD_TRANSFENT para entrada no destino |
| MEQ066 | Manutenção Ordem Leira | Usa CD_TRANSFENT em transferências avulsas de entrada entre leiras |
Campos Relacionados
| Campo | Tabela | Relação |
|---|---|---|
CD_TRANSFSAI | PARMESTOQUE | Par complementar — operação de saída por transferência |
ST_TRANSFEMPRESAS | PARMESTOQUE | Flag S/N que habilita transferências entre filiais |
CD_OPERACAO | OPERACAO | Tabela de operações — origem do código informado |
TP_OPERACAO | OPERACAO | Tipo da operação — deve ser 'E' (entrada) |
ST_ATIVO | OPERACAO | Status da operação — deve ser 'S' |
Fluxo de Transferência Entre Filiais
Quando ST_TRANSFEMPRESAS = 'S' em PARMESTOQUE:
Empresa A (origem)
→ MOVESTOQUE: CD_OPERACAO = CD_TRANSFSAI, CD_EMPRORIGEM = A
→ ESTOQUE.QT_ESTOQUE -= quantidade
Empresa B (destino)
→ MOVESTOQUE: CD_OPERACAO = CD_TRANSFENT, CD_EMPRORIGEM = A
→ ESTOQUE.QT_ESTOQUE += quantidade
→ VL_PRECOMEDIO recalculado
Procedures Impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Função |
|---|---|---|
edtCD_TRANSFENTKeyDown | UMEQ001.pas | Abre pesquisa de operações (<F9>) filtrando por ST_ATIVO='S' e TP_OPERACAO='E' |
tabPARMESTOQUECD_TRANSFENTValidate | UdmMEQ001.pas | Valida existência, status ativo e tipo entrada da operação |
Busca_Parametros | UdmMEQ008.pas | Lê CD_TRANSFENT para transferência avulsa |
Busca_Parametros | UdmMEQ016.pas | Lê CD_TRANSFENT com JOIN em OPERACAO para validar ST_CONTABIL |
Busca_Parametros | UdmMEQ035.pas | Lê CD_TRANSFENT para separação/transferência |
Busca_Parametros | UdmMEQ052.pas | Lê CD_TRANSFENT para transferência com leitura |
iniciar | UMEQ066.pas | Valida se CD_TRANSFENT está preenchido antes de habilitar botões |
btnTransferenciaClick | UMEQ066.pas | Atribui CD_TRANSFENT ao campo CD_OPERENT da manutenção de leira |
Referências SQL diretas ao campo em Scripts/
Nenhuma referência direta a CD_TRANSFENT foi encontrada em Scripts/. As procedures que usam a tabela PARMESTOQUE (ex: GERA_ESTOQUE, CANCELA_ESTOQUE, GERA_ESTOQUE_NOTAFISCAL) não citam o campo CD_TRANSFENT explicitamente.
Opções Disponíveis
O campo CD_TRANSFENT aceita o código de qualquer operação de estoque cadastrada em OPERACAO desde que:
| O que faz | Detalhe |
|---|---|
| Tipo de dado | Inteiro positivo (código da operação) |
| Editável | Sim, campo livre com pesquisa via <F9> |
| Obrigatório | Não há obrigatoriedade no banco, mas telas como MEQ066 exigem preenchimento para habilitar funcionalidades |
| Restrições | A operação deve existir, estar ativa (ST_ATIVO = 'S') e ser do tipo entrada (TP_OPERACAO = 'E') |
Exemplo: Configurar operação de transferência de entrada
Simulação passo a passo
- Acesse MEQ001 — Parâmetros de Estoque.
- Localize o campo Operação de Saída (rótulo do campo
CD_TRANSFENTna tela). - Digite o código de uma operação de entrada cadastrada em TEQ001 (ex: código
15— "Transferência Entrada"). - Ou pressione
<F9>para abrir a pesquisa — serão exibidas apenas operações ativas e do tipo entrada. - Selecione a operação desejada na lista.
- Salve o registro.
Resultado esperado: O campo DS_TRANSFENT é preenchido automaticamente com a descrição da operação escolhida. A partir desse momento, todas as transferências entre filiais e transferências avulsas utilizarão esta operação para gerar a entrada de estoque na empresa de destino.
Exceção / Importante:
- O parâmetro
CD_TRANSFSAI(configurado na mesma tela MEQ001) deve ser preenchido em conjunto — caso contrário, as telas de transferência (MEQ008, MEQ016, MEQ035, MEQ052) exibirão erro indicando que a operação de transferência avulsa não está cadastrada.- O parâmetro
ST_TRANSFEMPRESAS(configurado em MEQ001 — Parâmetros de Estoque) deve estar como'S'para que transferências entre filiais sejam habilitadas.- Em MEQ066 (Manutenção de Ordem de Leira), se
CD_TRANSFENTestiver vazio, os botões de salvar, lançar acabado, iniciar e finalizar leira ficam ocultos.