CD_LOCALORIGEM - Local de Origem
Tela de configuração: MEQ001 - Parâmetros de Estoque / Produção Componente na tela:
edtLocalOrigemTabela:PARMESTOQUE.CD_LOCALORIGEMTipo:DOM_INTEGERValor padrão: sem valor definido (campo fica vazio até que o usuário informe)
Define o local de estoque de origem padrão utilizado nas operações de produção da empresa. Quando uma ordem de produção é gerada ou confirmada, o sistema busca neste parâmetro o local de onde os materiais-prima (borrachas, componentes, etc.) devem ser retirados para consumo.
O campo faz parte de um par: sempre trabalha junto com CD_TPLOCALORIGEM (Tipo de Local de Origem). Ambos compõem a foreign key RPARMESTOQUE_LOCALORIGEM que referencia LOCALESTOQUE (CD_LOCAL, CD_TIPOLOCAL).
Campos envolvidos
| Campo | Tabela | Tipo | Descrição |
|---|---|---|---|
CD_LOCALORIGEM | PARMESTOQUE | DOM_INTEGER | Código do local de estoque de origem |
CD_TPLOCALORIGEM | PARMESTOQUE | DOM_INTEGER | Tipo do local de origem (obrigatório antes de informar o local) |
DS_LOCALORIGEM | PARMESTOQUE | display only | Descrição do local, preenchida automaticamente pela validação |
CD_LOCAL | LOCALESTOQUE | referência | Código do local na tabela de locais de estoque |
CD_TIPOLOCAL | LOCALESTOQUE | referência | Tipo do local na tabela de locais de estoque |
Telas impactadas
| Tela | Uso do parâmetro |
|---|---|
| MEQ052 (Movimentação de Estoque) | Ao validar item ou código de barras, o sistema lê CD_LOCALORIGEM e CD_LOCALDESTINO de PARMESTOQUE para pré-preencher os campos de local de origem e destino do movimento. Se ambos estiverem vazios, exibe erro: "É Necessário Parametrizar os Locais de Origem e Destino na [MEQ001]!" |
| MEQ006, MEQ011, MEQ026 (Fichas de Produção) | A consulta de matéria-prima (Busca_MateriaPrima) seleciona CD_LOCALORIGEM e CD_TIPOLOCALORIGEM para identificar de onde retirar os componentes |
| MEQ020 (Ordem de Produção - Recapadora) | Na geração da ordem, usa COALESCE(LP.CD_LOCAL, COALESCE(LP.CD_LOCALORIG, COALESCE(IP.CD_LOCALORIGEM, ILC.CD_LOCAL))) — prioriza local do lote, senão usa o da ficha, senão o parâmetro |
| MEQ031 (Captura de Peso) | Usa COALESCE(IPG.CD_LOCALORIGEM, IP.CD_LOCALORIGEM) para determinar local de consumo do material |
| MEQ032 (Geração de Produção) | Mesma lógica de COALESCE do MEQ031 para determinar local de origem |
| MEQ070 (Produção / Separado) | Transfere itens de etapa usando CD_LOCALORIGEM como destino da transferência; reprocessa materiais consumidos consultando IP.CD_LOCALORIGEM |
| MFA001 (Parâmetros de Faturamento) | Possui campo CD_LOCALORIGEM próprio na tabela PARMFATUR, independente deste parâmetro |
Opções disponíveis
Este parâmetro é um campo numérico editável (código do local de estoque). Não possui lista de opções fixas — o valor depende dos locais cadastrados em TEQ003 - Locais de Estoque.
Valor informado — Local válido selecionado
| O que faz | Detalhe |
|---|---|
| Editável | Sim, via digitação direta ou pesquisa com <F9> |
| Exige | CD_TPLOCALORIGEM preenchido anteriormente |
| Restrição | O código deve existir na tabela LOCALESTOQUE; caso contrário, exibe erro: "O Local não está Cadastrado [TEQ003]!" |
| Exigência adicional | O tipo de local (CD_TPLOCALORIGEM) é obrigatório; sem ele, a pesquisa <F9> nem abre: "É Obrigatório informar o Tipo de Local para Listar os Locais." |
Simulação passo a passo
- Acesse MEQ001 (Parâmetros de Estoque).
- No campo Tipo Local Origem (
CD_TPLOCALORIGEM), informe o tipo do local, por exemplo1ou pesquise com<F9>. - Clique no campo Local Origem (
CD_LOCALORIGEM) ou pressione<F9>. - Na janela de pesquisa "Selecione o Local", o sistema exibe apenas locais do tipo informado no passo anterior.
- Selecione o local desejado (ex: local
5— "Almoxarifado Central"). - O campo
CD_LOCALORIGEMrecebe o código5e o campoDS_LOCALORIGEMé preenchido automaticamente com "Almoxarifado Central". - Salve o registro.
Resultado esperado: O local de origem fica definido como padrão para todas as operações de produção da empresa. Quando ordens de produção forem geradas (via GERA_ORDEMPRODUCAO, GERA_PRODACABAMENTO, etc.), o sistema usará este local para retirar os materiais-prima, a menos que a ficha de produção do item defina um local próprio (ITEMPRODUCAO.CD_LOCALORIGEM).
Valor vazio — Nenhum local definido
| O que faz | Detalhe |
|---|---|
| Editável | O campo aceita valor vazio |
| Impacto | Movimentações de estoque em MEQ052 exigem este parâmetro e exibem erro se estiver vazio |
| Produção | Scripts de geração de ordem usam COALESCE(IP.CD_LOCALORIGEM, ILC.CD_LOCAL) — se o parâmetro estiver vazio e a ficha também, o sistema busca um local alternativo |
Simulação passo a passo
- Acesse MEQ001 (Parâmetros de Estoque).
- Deixe o campo Local Origem vazio.
- Salve o registro.
- Acesse MEQ052 (Movimentação de Estoque) e tente informar um item ou código de barras.
Resultado esperado: O sistema exibe a mensagem "É Necessário Parametrizar os Locais de Origem e Destino na [MEQ001]!" e não permite prosseguir com a movimentação.
Excecao / Importante: Nas rotinas de produção (geração de ordens), o sistema aplica
COALESCEem cascata — primeiro verifica o local do lote de produção, depois o local da ficha de produção (ITEMPRODUCAO.CD_LOCALORIGEM), e por último recorre ao parâmetro. Portanto, se cada ficha de produção tiver seu próprio local configurado, o parâmetro da MEQ001 funciona apenas como fallback.
Regra geral de relacionamento
O par CD_LOCALORIGEM + CD_TPLOCALORIGEM forma a foreign key RPARMESTOQUE_LOCALORIGEM:
PARMESTOQUE (CD_LOCALORIGEM, CD_TPLOCALORIGEM) → LOCALESTOQUE (CD_LOCAL, CD_TIPOLOCAL)
A chave estrangeira é definida com ON UPDATE CASCADE, ou seja, se o código do local mudar na tabela LOCALESTOQUE, a referência em PARMESTOQUE é atualizada automaticamente.
O parâmetro atua como local de origem padrão global da empresa para operações de estoque e produção. Quando uma ficha técnica (ITEMPRODUCAO) define seu próprio CD_LOCALORIGEM, a ficha tem prioridade sobre o parâmetro global.
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Contexto |
|---|---|---|
TfrmMEQ001.edtLocalOrigemKeyDown | UMEQ001.pas:1635 | Pesquisa <F9> que filtra locais por CD_TPLOCALORIGEM e atribui CD_LOCALORIGEM |
TdmMEQ001.tabPARMESTOQUECD_LOCALORIGEMValidate | UdmMEQ001.pas:1258 | Validação: exige CD_TPLOCALORIGEM preenchido, consulta LOCALESTOQUE e preenche DS_LOCALORIGEM |
TdmMEQ052.tabMOVESTOQUECD_ITEMValidate | UdmMEQ052.pas:185 | Lê CD_LOCALORIGEM de PARMESTOQUE para pré-preencher local do movimento de estoque |
TdmMEQ052.tabMOVESTOQUECD_CODIGOBARRAValidate | UdmMEQ052.pas:355 | Mesma lógica do validate acima, para entrada por código de barras |
Busca_MateriaPrima (MEQ006) | UMEQ006.pas:296 | Seleciona CD_LOCALORIGEM na consulta de matéria-prima |
Busca_MateriaPrima (MEQ011) | UMEQ011.pas:281 | Seleciona CD_LOCALORIGEM na consulta de matéria-prima |
TdmMEQ011.CarregaItensFicha | UdmMEQ011.pas:1236 | Consulta ficha de produção incluindo CD_LOCALORIGEM |
Ordemproducao (MEQ020) | UMEQ020.pas:263 | Usa COALESCE(LP.CD_LOCAL, LP.CD_LOCALORIG, IP.CD_LOCALORIGEM, ILC.CD_LOCAL) |
Busca_MateriaPrima (MEQ026) | UMEQ026.pas:432 | Seleciona CD_LOCALORIGEM na consulta |
TfrmMEQ031.btnCapturarPesoClick | UMEQ031.pas:782 | Usa COALESCE(IPG.CD_LOCALORIGEM, IP.CD_LOCALORIGEM) |
GeraProducao (MEQ032) | UMEQ032.pas:971 | Usa COALESCE(IPG.CD_LOCALORIGEM, IP.CD_LOCALORIGEM) |
TfrmMEQ044.btnORDEMPRODClick | UMEQ044.pas:1001 | Inclui CD_LOCALORIGEM no INSERT da ordem de produção |
TdmMEQ054.CarregaFichaProducao | UdmMEQ054.pas:943 | Seleciona CD_LOCALORIGEM na ficha |
TfrmMEQ070.TransfereItemEtapa | UMEQ070.pas:3215 | Usa CD_LOCALORIGEM como destino da transferência |
TdmMEQ070.reprocessaMateriaisConsumidos | UdmMEQ070.pas:1836 | Consulta CD_LOCALORIGEM para reprocessamento |
Ordemproducao (CEQ015) | UCEQ015.pas:229 | Usa COALESCE(IP.CD_LOCALORIGEM, ILC.CD_LOCAL) |
ExecLayout (LFP001) | ULFP001.pas:68 | Passa CD_LOCALORIGEM para RETORNA_SALDOESTOQUE |
ExecLayout (LFP003) | ULFP003.pas:66 | Passa CD_LOCALORIGEM para RETORNA_SALDOESTOQUE |
Scripts SQL com referência direta ao campo
| Procedure/Script | Arquivo | Contexto |
|---|---|---|
GERA_ORDEMPRODUCAO | GERA_ORDEMPRODUCAO.sql:174 | Seleciona CD_LOCALORIGEM da ficha para gerar ordem |
GERA_ORDEMPRODUCAORECAP | GERA_ORDEMPRODUCAORECAP.sql:740 | COALESCE(IP.CD_LOCALORIGEM, :V_IDLOCAL) |
FECHA_ORDEMPRODUCAORECAP | FECHA_ORDEMPRODUCAORECAP.sql:589 | COALESCE(IP.CD_LOCALORIGEM, :V_IDLOCAL) |
CONFIRMA_ORDEMSERVICO | CONFIRMA_ORDEMSERVICO.sql:505 | Agrupa por CD_LOCALORIGEM no fechamento |
GERA_PRODLOTEPRODUCAO | GERA_PRODLOTEPRODUCAO.sql:78 | COALESCE(LP.CD_LOCAL, LP.CD_LOCALORIG, IP.CD_LOCALORIGEM, IL.CD_LOCAL) |
ATUALIZA_PRECOVENDA | ATUALIZA_PRECOVENDA.sql:316 | Passa CD_LOCALORIGEM para RETORNA_SALDOESTOQUE |
RETORNA_SALDOESTOQUE | (função) | Usada em múltiplos scripts para calcular custo do estoque no local de origem |
RETORNA_ITEMFICHAPRODUCAO | RETORNA_ITEMFICHAPRODUCAO.sql:50 | Retorna CD_LOCALORIGEM dos itens da ficha |
RETORNA_CUSTOPRODUCAOMP | RETORNA_CUSTOPRODUCAOMP.sql:42 | Usa CD_LOCALORIGEM para calcular custo da matéria-prima |
GERA_PRODACABAMENTO | GERA_PRODACABAMENTO.sql:205 | Seleciona CD_LOCALORIGEM no loop de materiais |
GERA_PRODVULCANIZACAO | GERA_PRODVULCANIZACAO.sql:233 | Seleciona CD_LOCALORIGEM no loop de materiais |
GERA_PRODENVELOPAMENTO | GERA_PRODENVELOPAMENTO.sql:210 | Seleciona CD_LOCALORIGEM no loop de materiais |
GERA_PRODEXAMEFINAL | GERA_PRODEXAMEFINAL.sql:162 | Seleciona CD_LOCALORIGEM no loop de materiais |
GERA_PRODMONTAGEMRECAP | GERA_PRODMONTAGEMRECAP.sql:230 | Seleciona CD_LOCALORIGEM no loop de materiais |
VERIFICA_LOCALITEMPRODRECAP | VERIFICA_LOCALITEMPRODRECAP.sql:37 | Verifica CD_LOCALORIGEM do item de produção |
VIEW_FICHAPRODUCAO | VIEW_FICHAPRODUCAO.sql:84 | Exibe CD_LOCALORIGEM na view de ficha de produção |
VIEW_CFA001 | VIEW_CFA001.sql:290 | Usa CD_LOCALORIGEM na composição de custo |
GRAVA_LOTEPRODUCAOMP | GRAVA_LOTEPRODUCAOMP.sql:97 | Grava CD_LOCALORIGEM no lote de produção |
INSERE_PRODUTOSNOVOSGRADE | INSERE_PRODUTOSNOVOSGRADE.sql:188 | Insere CD_LOCALORIGEM ao criar produtos novos na grade |
MONTA_ORDEMPRODUCAOSERVICO | MONTA_ORDEMPRODUCAOSERVICO.sql:212 | Inclui CD_LOCALORIGEM na montagem da ordem |
Candidatas por uso da tabela
As procedures abaixo acessam a tabela PARMESTOQUE mas não citam o campo CD_LOCALORIGEM diretamente. Não há impacto funcional direto identificado no código para este campo específico. Exemplos: GERA_ESTOQUE, CANCELA_ESTOQUE, RECALCULA_ESTOQUE, GERA_SPEDBLOCOL, entre outras.