CD_TROCASAI - Movimentação de Troca (Saída/Venda)
Tela de configuração: MFA001 - Parâmetros de Faturamento Localização: Parâmetros → Ambos → Operação 1 Tabela:
PARMFATUR.CD_TROCASAITipo:INTEGER— chave estrangeira paraMOVIMENTACAO (CD_MOVIMENTACAO)Valor padrão: não definido (campo livre)
Resumo
Define a movimentação padrão de saída (venda) utilizada em operações de troca. Quando o usuário realiza uma troca, os itens de saída (que o cliente leva) são registrados com esta movimentação. O campo aceita somente movimentações cuja operação seja de saída (TP_OPERACAO = 'S') e que estejam ativas (ST_ATIVO = 'S').
Campos envolvidos
| Campo | Tabela | Descrição |
|---|---|---|
CD_TROCASAI | PARMFATUR | Código da movimentação de troca de saída (venda) |
DS_TROCASAI | Consulta calculada | Descrição da movimentação (exibida ao lado do campo) |
CD_TROCAENT | PARMFATUR | Código da movimentação de troca de entrada (devolução) — campo complementar |
CD_TROCASAILOC | PARMFATUR | Mesma movimentação replicada para o grupo Locações |
Telas impactadas
| Tela | Efeito |
|---|---|
| MNF009 - Trocas | Usa CD_TROCASAI como iCD_MOVSAIDA para os itens de saída da troca. Se CD_TROCAENT não estiver cadastrado, o formulário bloqueia Novo/Salvar/Excluir. |
| MPD043 - Locações (confirmação de troca) | Lê CD_TROCASAI para obter a movimentação de saída na troca de locação. Se vazio, exibe erro "Movimentação de Troca de Venda não Cadastrada. Verifique [MFA001]!". |
| MPD029 - Montagem de Rota | Lê CD_TROCASAI da tabela PARMFATUR. Se vazio, bloqueia a operação com "A Movimentação de Troca Não Esta Cadastrada. Verifique! [MFA001]". |
| LDP018 - Layout de Duplicata | Consulta CD_TROCASAI para identificação do tipo de movimentação na geração de duplicatas de troca. |
| CPD008 - Contas a Pagar/Receber | Utiliza CD_TROCASAI na consulta para determinar o histórico com base na movimentação. |
| MFA001 - Parâmetros de Faturamento | Tela onde o campo é configurado. |
Opções disponíveis
| O que faz | Detalhe |
|---|---|
| Define a movimentação de saída de troca | Campo editável, preenchido via pesquisa <F9> na tabela MOVIMENTACAO. Exige TP_OPERACAO = 'S' (saída) e ST_ATIVO = 'S'. |
O campo não possui opções fixas (como S/N). Aceita qualquer código de movimentação ativa do tipo saída. Abaixo está o comportamento em cada cenário:
Campo preenchido com movimentação válida
Simulação passo a passo
- Acesse MFA001 → Parâmetros de Faturamento → Operação 1.
- Posicione o cursor no campo Movim. Troca Venda.
- Pressione
<F9>para abrir a janela de pesquisa "Selecione a Movimentação de Troca (Venda)". - Selecione uma movimentação ativa com tipo de operação Saída (ex.: código 5 — "Venda de Troca").
- Confira se a descrição aparece ao lado do campo.
- Salve os parâmetros.
Resultado esperado: Em telas de troca (MNF009, MPD043, MPD029), os itens de saída da troca utilizarão automaticamente esta movimentação para gerar movimentações de estoque e financeiras.
Exceção / Importante: Ao selecionar, o mesmo valor é replicado para
edtCD_TROCASAILOC(grupo Locações), sincronizando ambos os campos.
Campo vazio (não preenchido)
Simulação passo a passo
- Deixe o campo Movim. Troca Venda em branco.
- Salve os parâmetros.
- Tente realizar uma operação de troca no MPD043 ou confirmar um fechamento de rota no MPD029.
Resultado esperado: A operação é bloqueada com mensagem de erro: "Movimentação de Troca de Venda não Cadastrada. Verifique [MFA001]!" ou "A Movimentação de Troca Não Esta Cadastrada. Verifique! [MFA001]".
Exceção / Importante: No MNF009, a validação de bloqueio recai sobre
CD_TROCAENT(entrada). Se apenasCD_TROCASAIestiver vazio, a tela pode abrir, mas a movimentação de saída dos itens ficará sem código, causando inconsistência.
Validações
| Validação | Condição | Mensagem |
|---|---|---|
| Operação não pode ser de entrada | TP_OPERACAO = 'E' | "A Operação da Movimentação não pode ser de Entrada!" |
| Movimentação deve estar ativa | ST_ATIVO = 'N' | "A Movimentação não está Ativa!" |
| Movimentação deve existir | código não encontrado | "A Movimentação não está Cadastrada [TCB001]!" |
Regra de preenchimento (F9)
A pesquisa (<F9>) lista movimentações da tabela MOVIMENTACAO filtrando:
ST_ATIVO = 'S'— somente ativasTP_OPERACAO = 'S'— somente saída
O valor selecionado é gravado tanto em CD_TROCASAI (grupo Operação) quanto em CD_TROCASAILOC (grupo Locações).
Relacionamentos
- FK
RPARMFATUR_TROCASAI:PARMFATUR.CD_TROCASAI→MOVIMENTACAO (CD_MOVIMENTACAO) - Campo complementar:
CD_TROCAENT(configurado em MFA001 — Parâmetros de Faturamento, mesma aba Operação 1) — define a movimentação de entrada (devolução) na troca.
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Descrição |
|---|---|---|
edtCD_TROCASAIKeyDown | source/MFA001/UMFA001.pas | Abre pesquisa de movimentação ao pressionar <F9> |
tabPARMFATURCD_TROCASAIValidate | source/MFA001/UdmMFA001.pas | Valida que a movimentação é de saída e está ativa |
Busca_Parametros | source/MNF009/UdmMNF009.pas | Carrega CD_TROCASAI como iCD_MOVSAIDA para trocas |
Busca_Parametros | source/MNF026/UdmMNF026.pas | Lê parâmetros de faturamento incluindo CD_TROCASAI |
TfrmMPD029.btnOKClick | source/MPD029/UMPD029.pas | Consulta CD_TROCASAI para roteirização de trocas |
TfrmMPD029.btnConfirmarClick | source/MPD029/UMPD029.pas | Valida existência de CD_TROCASAI; bloqueia se vazio |
TfrmMPD043.btnConfirmaTrocaClick | source/MPD043/UMPD043.pas | Lê CD_TROCASAI para troca de locação |
ExecLayout | source/LDP018/ULDP018.pas | Consulta CD_TROCASAI para layout de duplicata |
Scripts SQL com referência direta ao campo
| Procedure/View | Arquivo | Descrição |
|---|---|---|
RECALCULA_COMISSAO | Scripts/RECALCULA_COMISSAO.sql | Lê CD_TROCASAI para cálculo de comissão sobre trocas |
RECALCULA_COMISSAOV2 | Scripts/RECALCULA_COMISSAOV2.sql | Versão V2 do recálculo de comissão — mesma lógica |
RETORNA_BASENOTACOMISSAO | Scripts/RETORNA_BASENOTACOMISSAO.sql | Retorna base de nota para comissão usando CD_TROCASAI |