ST_TRANSFEMPRESAS — Parâmetro de Transferência entre Empresas
Tela de configuração: MEQ001 — Parâmetros de Estoque Tabela:
PARMESTOQUE.ST_TRANSFEMPRESASTipo:CHAR(1)· Valor padrão:S(Sim) · NOT NULL Componente na tela:cmbST_TRANSFEMPRESAS(combo box)
Resumo
Controla se o sistema permite transferências de estoque entre empresas (filiais) distintas. Quando habilitado ('S'), as telas de transferência (MEQ008, MEQ016, MEQ052) liberam os campos de empresa origem e empresa destino para seleção livre. Quando desabilitado ('N'), esses campos ficam travados na empresa da sessão corrente, restringindo transferências ao âmbito da mesma empresa.
Telas impactadas
| Tela | Nome | Efeito do parâmetro |
|---|---|---|
| MEQ008 | Transferência de Estoque | Bloqueia/desbloqueia campos CD_EMPRESAOR e CD_EMPRESADS |
| MEQ016 | Transferência de Estoque (Outra rotina) | Consulta o parâmetro via Busca_Parametros |
| MEQ052 | Transferência Avulsa de Estoque | Mesma lógica do MEQ008 — bloqueia empresa origem/destino |
Campos envolvidos
| Campo | Tabela | Função |
|---|---|---|
ST_TRANSFEMPRESAS | PARMESTOQUE | Flag S/N que habilita transferência entre empresas |
CD_EMPRESAOR | MOVESTOQUE | Empresa origem da transferência |
CD_EMPRESADS | MOVESTOQUE | Empresa destino da transferência |
Opções disponíveis
S — Permite Transferência entre Empresas (Padrão)
| O que faz | Detalhe |
|---|---|
| Transferência entre filiais | Habilitada — campos empresa origem/destino ficam editáveis |
| Restrição | Nenhuma — qualquer combinação de empresas é permitida |
Simulação passo a passo
- Acesse MEQ001 — Parâmetros de Estoque.
- Localize o campo ST_TRANSFEMPRESAS e selecione "Sim".
- Salve o registro.
- Abra MEQ008 — Transferência de Estoque e clique em Novo.
- Observe que os campos Empresa Origem e Empresa Destino estão habilitados para edição.
- Selecione empresas diferentes em cada campo e prossiga com a transferência.
Resultado esperado: O sistema aceita a transferência entre filiais distintas, movimentando estoque de uma empresa para outra.
N — Restrito à Mesma Empresa
| O que faz | Detalhe |
|---|---|
| Transferência entre filiais | Bloqueada — campos empresa origem/destino ficam readonly |
| Restrição | Empresa origem e destino são travados automaticamente na empresa da sessão |
Simulação passo a passo
- Acesse MEQ001 — Parâmetros de Estoque.
- Localize o campo ST_TRANSFEMPRESAS e selecione "Não".
- Salve o registro.
- Abra MEQ008 — Transferência de Estoque e clique em Novo.
- Observe que os campos Empresa Origem e Empresa Destino estão bloqueados (cinza) e preenchidos automaticamente com a empresa da sessão.
- Os campos não permitem alteração manual.
Resultado esperado: A transferência só pode ocorrer dentro da mesma empresa. Os campos de empresa ficam travados e o cursor muda para crDefault, indicando campo não editável.
Excecao / Importante: Mesmo com
'N', os camposCD_EMPRESAOReCD_EMPRESADSsão preenchidos automaticamente comsessao.empresa.cd_empresano eventobtnNovoClick. A transferência dentro da mesma empresa continua funcionando normalmente.
Regra Geral
O parâmetro é lido na inicialização das telas de transferência via procedure Busca_Parametros, que executa:
SELECT CD_TRANSFSAI, CD_TRANSFENT, ST_TRANSFEMPRESAS
FROM PARMESTOQUE
WHERE CD_EMPRESA = :cd_empresa_sessao
O valor retornado é armazenado na variável iST_TRANSFEMPRESAS e verificado no momento em que o usuário clica em Novo para iniciar uma nova transferência.
Tabela Comparativa Resumida
| Aspecto | 'S' (Sim) | 'N' (Não) |
|---|---|---|
| Transferência entre filiais | ✅ Permitida | ❌ Bloqueada |
| Campos empresa origem/destino | Editáveis | Readonly (travados) |
| Empresa forçada | Livre seleção | Empresa da sessão |
| Valor padrão | ✅ | — |
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Linha | Evidência |
|---|---|---|---|
TdmMEQ001.tabPARMESTOQUEAfterInsert | source/MEQ001/UdmMEQ001.pas | 285 | Define valor padrão 'S' ao inserir novo registro |
TfrmMEQ008.btnNovoClick | source/MEQ008/UMEQ008.pas | 640 | Verifica iST_TRANSFEMPRESAS = 'N' para travar campos |
Busca_Parametros | source/MEQ008/UdmMEQ008.pas | 90 | Lê ST_TRANSFEMPRESAS de PARMESTOQUE |
Busca_Parametros | source/MEQ016/UdmMEQ016.pas | 163 | Lê ST_TRANSFEMPRESAS de PARMESTOQUE |
TfrmMEQ052.btnNovoClick | source/MEQ052/UMEQ052.pas | 346 | Verifica iST_TRANSFEMPRESAS = 'N' para travar campos |
Busca_Parametros | source/MEQ052/UdmMEQ052.pas | 88 | Lê ST_TRANSFEMPRESAS de PARMESTOQUE |
Referências SQL diretas ao campo em Scripts/
Nenhuma referência direta ao campo ST_TRANSFEMPRESAS foi encontrada em procedures SQL sob Scripts/. O campo é consultado exclusivamente via SQL dinâmico nas units Delphi listadas acima.
Candidatas por uso da tabela PARMESTOQUE
As seguintes procedures fazem JOIN ou SELECT na tabela PARMESTOQUE, mas não citam o campo ST_TRANSFEMPRESAS diretamente — podem indiretamente depender de outros parâmetros da mesma tabela:
<details> <summary>Lista de procedures candidatas (expandir)</summary>
| Procedure | Arquivo |
|---|---|
AJUSTA_ORDEMPRODPEDANTECIPADO | Scripts/AJUSTA_ORDEMPRODPEDANTECIPADO.sql |
ALTERACAO_BANDA | Scripts/ALTERACAO_BANDA.sql |
ATUALIZA_CONSUMOMEDIO | Scripts/ATUALIZA_CONSUMOMEDIO.sql |
ATUALIZA_ESTOQUEDIAPESSOA | Scripts/ATUALIZA_ESTOQUEDIAPESSOA.sql |
CALCULA_FORMACAOPRECOVENDA | Scripts/CALCULA_FORMACAOPRECOVENDA.sql |
CANCELA_ESTOQUE | Scripts/CANCELA_ESTOQUE.sql |
CONFIRMA_ORDEMSERVICO | Scripts/CONFIRMA_ORDEMSERVICO.sql |
GERA_ESTOQUE | Scripts/GERA_ESTOQUE.sql |
GERA_ESTOQUE_NOTAFISCAL | Scripts/GERA_ESTOQUE_NOTAFISCAL.sql |
GERA_NOTAFISCALESTOQUE | Scripts/GERA_NOTAFISCALESTOQUE.sql |
GERA_ORDEMPRODUCAO | Scripts/GERA_ORDEMPRODUCAO.sql |
GERA_SPEDBLOCOL | Scripts/GERA_SPEDBLOCOL.sql |
GRAVA_AVISOS | Scripts/GRAVA_AVISOS.sql |
</details>