Pular para o conteúdo principal

Parâmetro de Controle de Caixa Master (embalagem)

Tela de configuração: MFA001 - Parâmetros de Faturamento Localização: Parâmetros → Pedidos / O.S. → Opção 1 → campo "Caixa Master" Tabela: PARMFATUR.ST_CAIXAMASTER (CHAR(1), FixedChar) Valor padrão: N (Não)

Telas impactadas​

MóduloCódigoDescrição
Pedido de VendaMPD002Habilita colunas de caixa master no grid de itens, exibe botão "Caixa Master" e abre form frmMPD002CaixaMaster para informar quantidades
Cadastro de ProdutosTPO001Mostra/oculta os campos "Nº Caixa Master" e "Descrição Caixa Master" no cadastro do item

Procedures impactadas​

Nenhuma stored procedure do Firebird referencia ST_CAIXAMASTER diretamente. A regra é avaliada somente em código Delphi (cliente).

Campos envolvidos​

Quando a venda usa caixa master, os seguintes campos passam a ser utilizados nos pedidos:

Tabela.CampoDescrição
PARMFATUR.ST_CAIXAMASTERLiga/desliga a funcionalidade (S/N)
ITEM.NR_CAIXAMASTERNº da caixa master cadastrada para o produto (FK CAIXAEMBARQUE.NR_CAIXA)
ITEM.PS_MINIMOCapacidade (quantidade de unidades) que cabe em uma caixa master
ITEMPEDIDO.QT_CAIXAMASTERQtde de caixas masters vendidas no item do pedido
ITEMPEDIDO.QT_AVULSAMASTERQtde avulsa (fora de caixa) vendida no item do pedido
ITEMPEDIDO.VL_UNITCAIXAMASTERValor unitário da caixa master
ITEMPEDIDO.VL_TOTALCXMASTERValor total da caixa master
ITEMPEDIDO.QT_CAPACIDADEMASTERCapacidade da caixa (espelho de ITEM.PS_MINIMO)
TABPRECO.CD_TABMASTERTabela de preço específica para venda por caixa master (vinculada à TABPRECO.CD_TABPRECO do item)
CAIXAEMBARQUE.NR_CAIXA / DS_CAIXACadastro das caixas masters (tela [TEQ006])

Opções disponíveis​

S - Sim (Caixa Master Habilitada)​

O que fazDetalhe
Em TPO001Exibe os campos lblNR_CAIXAMASTER, edtNR_CAIXAMASTER e edtDS_CAIXAMASTER (Nº e descrição da caixa master)
Em MPD002Esconde a coluna 10 do grid de itens e exibe as colunas 11 e 12 (campos de caixa master/avulsa)
Botão "Caixa Master"Torna-se visível (btnCaixaMaster.Visible := True)
Ao digitar item no pedidoSe o item tem PS_MINIMO > 0, o sistema busca TABPRECO.CD_TABMASTER. Se a tabela tiver caixa master cadastrada, abre o formulário frmMPD002CaixaMaster para informar QT_CAIXAMASTER e QT_AVULSAMASTER
Validação de caixa master no itemSe o item NÃO tem NR_CAIXAMASTER cadastrada, dispara aviso: "O item X não possui Caixa Master. Verifique[TPO001]!"
Validação de tabela masterSe a TABPRECO do item NÃO tem CD_TABMASTER vinculada, dispara aviso: "A Tabela de Preço X não possui Tabela de Caixa Master cadastrada. Verifique[TFA006]!"

Simulação passo a passo​

  1. Vá em MFA001 → Parâmetros → Pedidos / O.S. → Opção 1 → Caixa Master = "Sim"
  2. Salve os parâmetros (F6)
  3. Cadastre uma caixa master no CAIXAEMBARQUE (tela [TEQ006]) — ex.: Nº 1 "Caixa 12un"
  4. Abra o TPO001 e edite um produto:
    • Os campos "Nº Caixa Master" e a descrição passam a estar visíveis
    • Informe NR_CAIXAMASTER = 1 e PS_MINIMO = 12 (capacidade)
  5. Em TFA006, na tabela de preço do produto, vincule CD_TABMASTER a uma tabela que contenha o preço por caixa master
  6. Abra um Pedido de Venda (MPD002):
    • O grid exibe as colunas 11 (Qt. Caixas) e 12 (Qt. Avulsa) ao invés da coluna 10 (Vl. Despesa)
    • O botão "Caixa Master" aparece no rodapé
  7. Adicione o produto cadastrado → O formulário frmMPD002CaixaMaster abre automaticamente pedindo qtde de caixas e qtde avulsa
  8. Confirme com OK → O item é gravado com QT_CAIXAMASTER e QT_AVULSAMASTER preenchidos

Resultado esperado: a venda do produto é feita por caixas inteiras (múltiplas de PS_MINIMO) + unidades avulsas, cada parcela com seu próprio preço vindo da TABPRECO master.


N - Não (Caixa Master Desabilitada)​

O que fazDetalhe
Em TPO001Esconde os campos lblNR_CAIXAMASTER, edtNR_CAIXAMASTER e edtDS_CAIXAMASTER
Em MPD002Exibe a coluna 10 (normal) e esconde as colunas 11 e 12
Botão "Caixa Master"Fica invisível (btnCaixaMaster.Visible := False)
Fluxo de adicionar itemSegue o padrão do pedido — preço vem direto da tabela configurada em ST_TABPRECO, sem tela auxiliar
Colunas de gridLarguras padrão (4=70, 5=69, 8=60, 9=55)

Simulação passo a passo​

  1. Vá em MFA001 → Parâmetros → Pedidos / O.S. → Opção 1 → Caixa Master = "Não"
  2. Salve os parâmetros (F6)
  3. Abra o TPO001:
    • Os campos "Nº Caixa Master" e descrição ficam ocultos
  4. Abra um Pedido de Venda (MPD002):
    • Grid exibe as colunas tradicionais (sem Qt. Caixas / Qt. Avulsa)
    • Botão "Caixa Master" não aparece
  5. Adicione qualquer produto → item gravado normalmente, SEM chamar frmMPD002CaixaMaster

Resultado esperado: a funcionalidade de venda por caixa master fica totalmente desligada — apenas a venda convencional (quantidade simples com um preço) fica disponível. É o valor padrão do sistema.


Tabela Comparativa Resumida​

OpçãoDescriçãoGrid ItemPedidoBotão Caixa MasterCampos TPO001Abre frmMPD002CaixaMaster?
SSim, HabilitadaExibe cols 11/12 (caixas/avulsas)VisívelVisíveisSim (se item tem PS_MINIMO > 0 e CD_TABMASTER)
NNão (padrão)Exibe col 10 normalOcultoOcultosNão

Referências no Código Fonte​

Definição e valor padrão (MFA001)​

  • source/MFA001/UMFA001.dfm linhas 8123-8136 — lblST_CAIXAMASTER: TLabel com Caption = 'Caixa Master'
  • source/MFA001/UMFA001.dfm linhas 8928-8954 — cmbST_CAIXAMASTER: TwwDBComboBox com DataField = 'ST_CAIXAMASTER' e Items.Strings = ('Sim'#9'S' / 'Não'#9'N')
  • source/MFA001/UMFA001.pas linhas 295, 324 — declaração de lblST_CAIXAMASTER e cmbST_CAIXAMASTER
  • source/MFA001/UdmMFA001.pas linha 212 — declaração tabPARMFATURST_CAIXAMASTER: TStringField
  • source/MFA001/UdmMFA001.pas linha 524 — valor padrão no AfterInsert: tabPARMFATURST_CAIXAMASTER.AsString := 'N';
  • source/MFA001/UdmMFA001.dfm linhas 1565-1570, 225, 2410, 2577, 2811, 3105 — campo no dataset e inclusão no SELECT/INSERT/UPDATE de PARMFATUR

Consumo no Pedido de Venda (MPD002)​

  • source/MPD002/UdmMPD002.pas linha 715 — ativa colunas 11/12 do gridITEMPEDIDO e exibe btnCaixaMaster quando 'S'
  • source/MPD002/UdmMPD002.pas linha 4707 — procedure Caixa_Master — abre frmMPD002CaixaMaster quando o item tem PS_MINIMO > 0 e a TABPRECO tem CD_TABMASTER
  • source/MPD002/UdmMPD002.pas linha 4812 — procedure Habilita_CamposCxMaster — libera edição das colunas de caixa/avulsa no grid
  • source/MPD002/UdmMPD002.pas linha 5747 — inclui ST_CAIXAMASTER no SELECT de parâmetros do pedido
  • source/MPD002/MPD002.dpk linha 60 — UMPD002FrmCaixaMaster in 'UMPD002FrmCaixaMaster.pas' {frmMPD002CaixaMaster} — form auxiliar

Consumo no Cadastro de Produto (TPO001)​

  • source/TPO001/UTPO001.pas linhas 968-984 — SELECT do PARMFATUR inclui ST_CAIXAMASTER (posição Resultado[4])
  • source/TPO001/UTPO001.pas linhas 1038-1050 — alterna visibilidade dos controles lblNR_CAIXAMASTER, edtNR_CAIXAMASTER, edtDS_CAIXAMASTER conforme Resultado[4] = 'S'
  • source/TPO001/UdmTPO001.pas linha 2863 — tabITEMNR_CAIXAMASTERValidate — ao digitar o Nº da caixa, busca descrição em CAIXAEMBARQUE e lança E-0000 se o cadastro não existir

Nota: NR_CAIXAMASTER, DS_CAIXAMASTER, QT_CAIXAMASTER, VL_UNITCAIXAMASTER etc. são campos de negócio (tabelas ITEM e ITEMPEDIDO) usados pela funcionalidade. O parâmetro ST_CAIXAMASTER apenas habilita/desabilita toda a interface que manipula esses campos.