Pular para o conteúdo principal

ST_PRODUCAOLOCAL — Busca Automática de Local de Faturamento

Tela de configuração: MEQ001 — Parâmetros de Estoque Localização: Parâmetros → Aba Opção 1 Tabela: PARMESTOQUE.ST_PRODUCAOLOCAL Componente: cmbST_PRODUCAOLOCAL (TwwDBComboBox) Tipo: CHAR(1) Valor padrão no banco: S (Sim) Valor padrão ao inserir registro via tela: N (Não)


Resumo​

Controla se, ao informar uma matéria-prima em telas de produção, o sistema deve buscar automaticamente o local de estoque associado ao item que possua ST_FATURAMENTO = 'S' na tabela ITEMLOCAL. Quando habilitado, preenche automaticamente os campos CD_TIPOLOCAL e CD_LOCAL da linha da matéria-prima.


Telas impactadas​

TelaNomeArquivoLinha do check
MEQ011Abertura de Ordem de ProduçãoUdmMEQ011.pas809
MEQ012Manutenção de Ordem de ProduçãoUdmMEQ012.pas1076
MEQ017Fechamento de Ordem de ProduçãoUdmMEQ017.pas691
MEQ026Romaneio de ProduçãoUdmMEQ026.pas749
MEQ027Consulta de Ordem de ProduçãoUdmMEQ027.pas707
MEQ065Lote de ProduçãoUdmMEQ065.pas641
MEQ068Cadastro de Ordem de ProduçãoUdmMEQ068.pas804

Campos envolvidos​

CampoDescrição
ITEMLOCAL.ST_FATURAMENTOFlag do local de estoque do item — 'S' indica que o local é de faturamento
ITEMLOCAL.CD_TIPOLOCALTipo do local retornado pela busca automática
ITEMLOCAL.CD_LOCALCódigo do local retornado pela busca automática
ITEMPROD.CD_MATERIAPRIMACódigo da matéria-prima que dispara a validação

Opções disponíveis​

S — Sim (Busca Automática do Local de Faturamento)​

O que fazDetalhe
Preenche automaticamente CD_TIPOLOCAL e CD_LOCALAo informar a matéria-prima, consulta ITEMLOCAL onde ST_FATURAMENTO = 'S' e CD_ITEM = matéria-prima informada
Busca o primeiro local com faturamentoUsa FIRST 1 na query — se houver mais de um local com faturamento, pega o primeiro retornado
Editável após preenchimentoO usuário pode alterar o local sugerido manualmente
Condição: item sem ficha técnicaNas telas MEQ011 e MEQ026, só executa se ST_FICHA <> 'S'

Simulação passo a passo​

  1. Acesse MEQ001 → aba Opção 1.
  2. No campo Produção Local, selecione S — Sim.
  3. Salve o registro.
  4. Abra uma ordem de produção (ex.: MEQ011 — Abertura de OP).
  5. Adicione uma matéria-prima cujo cadastro possua local de estoque com ST_FATURAMENTO = 'S'.
  6. Informe o código da matéria-prima e confirme.
  7. Observe que os campos Tipo Local e Local foram preenchidos automaticamente.

Resultado esperado: Os campos CD_TIPOLOCAL e CD_LOCAL da linha da matéria-prima são preenchidos com o primeiro local de faturamento cadastrado para o item na ITEMLOCAL.

Excecao / Importante: Nas telas MEQ011 e MEQ026, se o produto tiver ST_FICHA = 'S', a busca automática não é executada, independentemente deste parâmetro. O fluxo segue direto para a lógica de contagem de locais.


N — Não (Sem Busca Automática)​

O que fazDetalhe
Não busca local automaticamenteOs campos CD_TIPOLOCAL e CD_LOCAL permanecem vazios após informar a matéria-prima
Fluxo padrão de localO sistema segue para a lógica de contagem de locais do item (COUNT(CD_LOCAL))
Preenchimento manualSe o item tiver múltiplos locais, o sistema abre a lista para seleção; se tiver apenas um, preenche automaticamente

Simulação passo a passo​

  1. Acesse MEQ001 → aba Opção 1.
  2. No campo Produção Local, selecione N — Não.
  3. Salve o registro.
  4. Abra uma ordem de produção (ex.: MEQ011 — Abertura de OP).
  5. Adicione uma matéria-prima cujo cadastro possua local de estoque com ST_FATURAMENTO = 'S'.
  6. Informe o código da matéria-prima e confirme.
  7. Observe que os campos Tipo Local e Local não foram preenchidos automaticamente.

Resultado esperado: Os campos CD_TIPOLOCAL e CD_LOCAL permanecem vazios inicialmente. Se o item tiver apenas um local cadastrado, o sistema preenche automaticamente pela lógica de contagem. Se tiver múltiplos locais, abre a lista para o usuário escolher.

Excecao / Importante: Mesmo com N, o fluxo de contagem de locais ainda executa. A diferença é que não há busca prévia por local de faturamento (ST_FATURAMENTO = 'S').


Procedures impactadas​

Rotinas Delphi com referência direta ao campo​

RotinaArquivoLinhaContexto
TdmMEQ001.tabPARMESTOQUEAfterInsertUdmMEQ001.pas275Define valor padrão 'N' ao inserir registro
Busca_ParametrosUdmMEQ011.pas260Carrega parâmetro na variável iST_PRODUCAOLOCAL
TdmMEQ011.tabPRODUTOCD_MATERIAPRIMAValidateUdmMEQ011.pas809Check if iST_PRODUCAOLOCAL = 'S' → busca local
Busca_ParametrosUdmMEQ012.pas230Carrega parâmetro
TdmMEQ012.tabPRODUTOCD_MATERIAPRIMAValidateUdmMEQ012.pas1076Check → busca local
Busca_ParametrosUdmMEQ017.pas151Carrega parâmetro
TdmMEQ017.tabPRODUTOCD_MATERIAPRIMAValidateUdmMEQ017.pas691Check → busca local
Busca_ParametrosUdmMEQ026.pas265Carrega parâmetro
TdmMEQ026.tabPRODUTOCD_MATERIAPRIMAValidateUdmMEQ026.pas749Check → busca local
Busca_ParametrosUdmMEQ027.pas152Carrega parâmetro
TdmMEQ027.tabPRODUTOCD_MATERIAPRIMAValidateUdmMEQ027.pas707Check → busca local
Busca_ParametrosUdmMEQ065.pas157Carrega parâmetro
TdmMEQ065.tabPRODUTOCD_MATERIAPRIMAValidateUdmMEQ065.pas641Check → busca local
Busca_ParametrosUdmMEQ068.pas189Carrega parâmetro
TdmMEQ068.tabPRODUTOCD_MATERIAPRIMAValidateUdmMEQ068.pas804Check → busca local
TdmMEQ068.tabPRODUTOCD_ITEMValidateUdmMEQ068.pas1120Check → busca local

Referências SQL diretas ao campo​

Nenhuma procedure SQL na pasta Scripts/ referencia o campo ST_PRODUCAOLOCAL diretamente. O campo é consultado apenas em tempo de execução via queries montadas no código Delphi (Busca_Parametros).

Candidatas por uso da tabela PARMESTOQUE​

As seguintes procedures fazem referência à tabela PARMESTOQUE mas não citam ST_PRODUCAOLOCAL diretamente. Não há impacto funcional confirmado:

AJUSTA_ORDEMPRODPEDANTECIPADO, ALTERACAO_BANDA, ATUALIZA_CONSUMOMEDIO, CANCELA_ESTOQUE, GERA_ESTOQUE, GERA_ORDEMPRODUCAO, GERA_PRODLOTEPRODUCAO, entre outras.


Regra Geral de Comportamento​

O padrão de execução é idêntico nas 7 telas impactadas:

  1. Na validação do código da matéria-prima (tabPRODUTOCD_MATERIAPRIMAValidate), o sistema verifica iST_PRODUCAOLOCAL = 'S'.
  2. Se Sim: executa SELECT FIRST 1 CD_TIPOLOCAL, CD_LOCAL FROM ITEMLOCAL WHERE ST_FATURAMENTO = 'S' AND CD_ITEM = :codMatPrima.
  3. Se encontrou resultado, preenche CD_TIPOLOCAL e CD_LOCAL automaticamente.
  4. Se Não ou se não encontrou resultado: segue para o fluxo padrão de contagem de locais do item.