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ódulo | Código | Descrição |
|---|---|---|
| Pedido de Venda | MPD002 | Habilita colunas de caixa master no grid de itens, exibe botão "Caixa Master" e abre form frmMPD002CaixaMaster para informar quantidades |
| Cadastro de Produtos | TPO001 | Mostra/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.Campo | Descrição |
|---|---|
PARMFATUR.ST_CAIXAMASTER | Liga/desliga a funcionalidade (S/N) |
ITEM.NR_CAIXAMASTER | Nº da caixa master cadastrada para o produto (FK CAIXAEMBARQUE.NR_CAIXA) |
ITEM.PS_MINIMO | Capacidade (quantidade de unidades) que cabe em uma caixa master |
ITEMPEDIDO.QT_CAIXAMASTER | Qtde de caixas masters vendidas no item do pedido |
ITEMPEDIDO.QT_AVULSAMASTER | Qtde avulsa (fora de caixa) vendida no item do pedido |
ITEMPEDIDO.VL_UNITCAIXAMASTER | Valor unitário da caixa master |
ITEMPEDIDO.VL_TOTALCXMASTER | Valor total da caixa master |
ITEMPEDIDO.QT_CAPACIDADEMASTER | Capacidade da caixa (espelho de ITEM.PS_MINIMO) |
TABPRECO.CD_TABMASTER | Tabela de preço específica para venda por caixa master (vinculada à TABPRECO.CD_TABPRECO do item) |
CAIXAEMBARQUE.NR_CAIXA / DS_CAIXA | Cadastro das caixas masters (tela [TEQ006]) |
Opções disponíveis
S - Sim (Caixa Master Habilitada)
| O que faz | Detalhe |
|---|---|
| Em TPO001 | Exibe os campos lblNR_CAIXAMASTER, edtNR_CAIXAMASTER e edtDS_CAIXAMASTER (Nº e descrição da caixa master) |
| Em MPD002 | Esconde 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 pedido | Se 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 item | Se o item NÃO tem NR_CAIXAMASTER cadastrada, dispara aviso: "O item X não possui Caixa Master. Verifique[TPO001]!" |
| Validação de tabela master | Se 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
- Vá em MFA001 → Parâmetros → Pedidos / O.S. → Opção 1 → Caixa Master = "Sim"
- Salve os parâmetros (F6)
- Cadastre uma caixa master no
CAIXAEMBARQUE(tela [TEQ006]) — ex.: Nº 1 "Caixa 12un" - Abra o TPO001 e edite um produto:
- Os campos "Nº Caixa Master" e a descrição passam a estar visíveis
- Informe
NR_CAIXAMASTER = 1ePS_MINIMO = 12(capacidade)
- Em TFA006, na tabela de preço do produto, vincule
CD_TABMASTERa uma tabela que contenha o preço por caixa master - 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é
- Adicione o produto cadastrado → O formulário
frmMPD002CaixaMasterabre automaticamente pedindo qtde de caixas e qtde avulsa - Confirme com OK → O item é gravado com
QT_CAIXAMASTEReQT_AVULSAMASTERpreenchidos
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 faz | Detalhe |
|---|---|
| Em TPO001 | Esconde os campos lblNR_CAIXAMASTER, edtNR_CAIXAMASTER e edtDS_CAIXAMASTER |
| Em MPD002 | Exibe a coluna 10 (normal) e esconde as colunas 11 e 12 |
| Botão "Caixa Master" | Fica invisível (btnCaixaMaster.Visible := False) |
| Fluxo de adicionar item | Segue o padrão do pedido — preço vem direto da tabela configurada em ST_TABPRECO, sem tela auxiliar |
| Colunas de grid | Larguras padrão (4=70, 5=69, 8=60, 9=55) |
Simulação passo a passo
- Vá em MFA001 → Parâmetros → Pedidos / O.S. → Opção 1 → Caixa Master = "Não"
- Salve os parâmetros (F6)
- Abra o TPO001:
- Os campos "Nº Caixa Master" e descrição ficam ocultos
- Abra um Pedido de Venda (MPD002):
- Grid exibe as colunas tradicionais (sem Qt. Caixas / Qt. Avulsa)
- Botão "Caixa Master" não aparece
- 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ção | Descrição | Grid ItemPedido | Botão Caixa Master | Campos TPO001 | Abre frmMPD002CaixaMaster? |
|---|---|---|---|---|---|
| S | Sim, Habilitada | Exibe cols 11/12 (caixas/avulsas) | Visível | Visíveis | Sim (se item tem PS_MINIMO > 0 e CD_TABMASTER) |
| N | Não (padrão) | Exibe col 10 normal | Oculto | Ocultos | Não |
Referências no Código Fonte
Definição e valor padrão (MFA001)
source/MFA001/UMFA001.dfmlinhas 8123-8136 —lblST_CAIXAMASTER: TLabelcomCaption = 'Caixa Master'source/MFA001/UMFA001.dfmlinhas 8928-8954 —cmbST_CAIXAMASTER: TwwDBComboBoxcomDataField = 'ST_CAIXAMASTER'eItems.Strings = ('Sim'#9'S' / 'Não'#9'N')source/MFA001/UMFA001.paslinhas 295, 324 — declaração delblST_CAIXAMASTERecmbST_CAIXAMASTERsource/MFA001/UdmMFA001.paslinha 212 — declaraçãotabPARMFATURST_CAIXAMASTER: TStringFieldsource/MFA001/UdmMFA001.paslinha 524 — valor padrão noAfterInsert:tabPARMFATURST_CAIXAMASTER.AsString := 'N';source/MFA001/UdmMFA001.dfmlinhas 1565-1570, 225, 2410, 2577, 2811, 3105 — campo no dataset e inclusão no SELECT/INSERT/UPDATE dePARMFATUR
Consumo no Pedido de Venda (MPD002)
source/MPD002/UdmMPD002.paslinha 715 — ativa colunas 11/12 dogridITEMPEDIDOe exibebtnCaixaMasterquando'S'source/MPD002/UdmMPD002.paslinha 4707 — procedureCaixa_Master— abrefrmMPD002CaixaMasterquando o item temPS_MINIMO > 0e aTABPRECOtemCD_TABMASTERsource/MPD002/UdmMPD002.paslinha 4812 — procedureHabilita_CamposCxMaster— libera edição das colunas de caixa/avulsa no gridsource/MPD002/UdmMPD002.paslinha 5747 — incluiST_CAIXAMASTERno SELECT de parâmetros do pedidosource/MPD002/MPD002.dpklinha 60 —UMPD002FrmCaixaMaster in 'UMPD002FrmCaixaMaster.pas' {frmMPD002CaixaMaster}— form auxiliar
Consumo no Cadastro de Produto (TPO001)
source/TPO001/UTPO001.paslinhas 968-984 — SELECT doPARMFATURincluiST_CAIXAMASTER(posiçãoResultado[4])source/TPO001/UTPO001.paslinhas 1038-1050 — alterna visibilidade dos controleslblNR_CAIXAMASTER,edtNR_CAIXAMASTER,edtDS_CAIXAMASTERconformeResultado[4] = 'S'source/TPO001/UdmTPO001.paslinha 2863 —tabITEMNR_CAIXAMASTERValidate— ao digitar o Nº da caixa, busca descrição emCAIXAEMBARQUEe lançaE-0000se o cadastro não existir
Nota:
NR_CAIXAMASTER,DS_CAIXAMASTER,QT_CAIXAMASTER,VL_UNITCAIXAMASTERetc. são campos de negócio (tabelasITEMeITEMPEDIDO) usados pela funcionalidade. O parâmetroST_CAIXAMASTERapenas habilita/desabilita toda a interface que manipula esses campos.