CD_TPLOCALDESTINO — Tipo de Local de Destino
Tela de configuração: MEQ001 — Parâmetros de Estoque Componente na tela:
edtTpLocal(TDBEdit) Label exibido: "Local" Tabela / Coluna:PARMESTOQUE.CD_TPLOCALDESTINO(INTEGER) Valor padrão: Nenhum (campo fica vazio até o usuário selecionar)
Visão Geral
Este parâmetro define o Tipo de Local de Destino padrão utilizado nas movimentações de estoque da empresa. Ele funciona em conjunto com CD_LOCALDESTINO (configurado na mesma tela), formando uma chave composta que aponta para um local específico dentro de um tipo de local cadastrado na tabela LOCALESTOQUE.
Quando um item é selecionado na tela de movimentação de estoque (MEQ052), o sistema lê automaticamente este parâmetro para preencher o tipo de local de destino do movimento. Se o parâmetro estiver vazio, o sistema exibe erro e impede a continuidade.
Campos Relacionados
| Campo | Tabela | Papel |
|---|---|---|
CD_TPLOCALDESTINO | PARMESTOQUE | Tipo do local de destino (este parâmetro) |
CD_LOCALDESTINO | PARMESTOQUE | Código do local de destino dentro do tipo |
DS_TPLOCALDESTINO | (campo calculado) | Descrição do tipo de local, buscada de TIPOLOCAL.DS_TIPOLOCAL |
CD_TIPOLOCAL | TIPOLOCAL | Tabela-mestre dos tipos de local |
CD_TIPOLOCALENT | MOVESTOQUE | Campo preenchido automaticamente na movimentação (MEQ052) |
Chave Estrangeira
ALTER TABLE PARMESTOQUE
ADD CONSTRAINT RPARMESTOQUE_LOCAL
FOREIGN KEY (CD_LOCALDESTINO, CD_TPLOCALDESTINO)
REFERENCES LOCALESTOQUE (CD_LOCAL, CD_TIPOLOCAL)
ON UPDATE CASCADE;
Telas Impactadas
| Tela | Efeito |
|---|---|
| MEQ001 (Parâmetros de Estoque) | Tela onde o parâmetro é configurado |
| MEQ052 (Movimentação de Estoque) | Lê CD_TPLOCALDESTINO ao selecionar um item; preenche automaticamente o campo CD_TIPOLOCALENT do movimento |
Opções Disponíveis
O campo aceita qualquer código inteiro válido cadastrado na tabela TIPOLOCAL. Não existem valores fixos como "S/N" — o usuário seleciona o tipo de local através de uma pesquisa (F9).
Qualquer código de Tipo de Local válido (ex: 1, 2, 3...)
| O que faz | Detalhe |
|---|---|
| Editável | Campo editável; pressione <F9> para abrir a pesquisa de tipos de local |
| Exige | O código digitado deve existir na tabela TIPOLOCAL |
| Restrição | Se o código informado não for encontrado, o sistema exibe erro e não permite salvar |
| Validação automática | Ao informar o valor, o sistema busca DS_TIPOLOCAL e preenche o campo descrição ao lado |
Simulação passo a passo
- Acesse MEQ001 (Parâmetros de Estoque).
- Localize o campo "Local" (componente
edtTpLocal). - Pressione
<F9>para abrir a pesquisa de tipos de local. - Selecione o tipo de local desejado na lista (ex: "Almoxarifado Central").
- O sistema preenche automaticamente o código (ex:
1) no campo e a descrição no campo ao lado. - Em seguida, informe o Local de Destino (
CD_LOCALDESTINO) — o sistema filtrará apenas os locais pertencentes ao tipo selecionado. - Salve o registro.
Resultado esperado: O campo CD_TPLOCALDESTINO fica gravado com o código do tipo de local selecionado (ex: 1). Toda vez que um item for selecionado na tela MEQ052, o sistema usará esse tipo de local como destino padrão da movimentação.
Exceção / Importante: Se
CD_TPLOCALDESTINOestiver vazio e o usuário tentar informar um código de Local de Destino (CD_LOCALDESTINO), o sistema exibirá o erro: "É Obrigatório informar o Tipo de Local para Validar o Local." O tipo de local deve ser preenchido antes do local.
Regra de Negócio
-
Obrigatório para movimentação: Na tela MEQ052, ao selecionar um item/produto, o sistema consulta
PARMESTOQUEda empresa corrente e lêCD_TPLOCALDESTINOjunto comCD_TPLOCALORIGEM,CD_LOCALORIGEMeCD_LOCALDESTINO. Se algum dos quatro campos estiver vazio, o sistema exibe o erro: "É Necessário Parametrizar os Locais de Origem e Destino na [MEQ001]!" -
Hierarquia Tipo → Local: O campo
CD_TPLOCALDESTINOfunciona como filtro para o campoCD_LOCALDESTINO. Ao pesquisar o local de destino (F9), a busca é feita emLOCALESTOQUEfiltrando porCD_TIPOLOCAL = CD_TPLOCALDESTINO. -
Validação automática (OnValidate): Ao alterar o valor do campo, o sistema executa a consulta:
SELECT L.DS_TIPOLOCALFROM TIPOLOCAL LWHERE L.CD_TIPOLOCAL = <valor_digitado>- Se encontrado, preenche
DS_TPLOCALDESTINOcom a descrição. - Se não encontrado, exibe erro: "O Tipo de Local não está Cadastrado [TEQ003]!"
- Se o campo for limpo, limpa também a descrição.
- Se encontrado, preenche
Procedures Impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Linha | Evidência |
|---|---|---|---|
TfrmMEQ001.edtTpLocalKeyDown | source/MEQ001/UMEQ001.pas | 1681 | Atribui valor selecionado na pesquisa F9 a CD_TPLOCALDESTINO |
TfrmMEQ001.edtIdLocalDestKeyDown | source/MEQ001/UMEQ001.pas | 1694 | Verifica se CD_TPLOCALDESTINO está preenchido antes de listar locais |
TdmMEQ001.tabPARMESTOQUECD_TPLOCALDESTINOValidate | source/MEQ001/UdmMEQ001.pas | 1234 | Valida o código contra TIPOLOCAL e preenche descrição |
TdmMEQ001.tabPARMESTOQUECD_LOCALDESTINOValidate | source/MEQ001/UdmMEQ001.pas | 1290 | Verifica se CD_TPLOCALDESTINO está preenchido para validar o local |
TdmMEQ052.tabMOVESTOQUECD_ITEMValidate | source/MEQ052/UdmMEQ052.pas | 184 | Lê CD_TPLOCALDESTINO de PARMESTOQUE para preencher destino do movimento |
TdmMEQ052.tabMOVESTOQUECD_CODIGOBARRAValidate | source/MEQ052/UdmMEQ052.pas | 354 | Lê CD_TPLOCALDESTINO de PARMESTOQUE para preencher destino do movimento |
Referências SQL diretas ao campo em Scripts/
Não foi encontrada referência direta ao campo CD_TPLOCALDESTINO nos scripts SQL. As procedures que usam a tabela PARMESTOQUE (como GERA_ESTOQUE, CANCELA_ESTOQUE, etc.) não citam o campo CD_TPLOCALDESTINO explicitamente.
Candidatas por uso da tabela
Estas procedures/views usam a tabela PARMESTOQUE mas não citam o campo CD_TPLOCALDESTINO literalmente. Validar antes de afirmar impacto funcional direto.
| Procedure/View | Arquivo | Linha |
|---|---|---|
GERA_ESTOQUE | Scripts/GERA_ESTOQUE.sql | 150 |
GERA_ESTOQUE_NOTAFISCAL | Scripts/GERA_ESTOQUE_NOTAFISCAL.sql | 390 |
CANCELA_ESTOQUE | Scripts/CANCELA_ESTOQUE.sql | 99 |
GERA_ORDEMPRODUCAO | Scripts/GERA_ORDEMPRODUCAO.sql | 115 |
CONFIRMA_ORDEMSERVICO | Scripts/CONFIRMA_ORDEMSERVICO.sql | 119 |