DS_PORTACOM - Porta COM para dispositivo Bina (Caller ID)
Tela de configuração: MFA001 - Parâmetros de Faturamento Localização: Parâmetros → Ambos → Opção 2 → "Porta Comunicação Bina" Tabela:
PARMFATUR.DS_PORTACOMTipo: Texto (nome de porta serial — ex.:COM1,COM2,COM3,COM4) Tamanho:CHAR(4)(domínioDOM_CHAR4) Valor padrão: (não inicializado noAfterInsert— o registro nasce comNULL)
Telas impactadas
| Módulo | Código | Descrição |
|---|---|---|
| Parâmetros de Faturamento (cadastro/edição) | MFA001 | Única tela onde o valor é gravado (campo edtDS_PORTACOM) |
Nenhum outro módulo Delphi lê o parâmetro
PARMFATUR.DS_PORTACOMna versão atual do código-fonte.O módulo de atendimento de restaurante (MRE005), que é o único que implementa integração com Bina (caller ID via plug-in externo e mensagens
WM_USER/WM_RESPOSTA), consulta os parâmetrosST_ATIVABINA,NR_PORTAREMOTA,NR_PORTALOCAL,NR_IPEXTERNOna tabelaPARMRESTAURANTE(configurados em MRE001) — não emPARMFATUR.DS_PORTACOM.
Procedures impactadas
Nenhuma. Em Scripts/ (stored procedures/views Firebird) não há nenhuma referência a DS_PORTACOM.
Campos envolvidos
| Campo | Tabela | Papel |
|---|---|---|
DS_PORTACOM | PARMFATUR | Armazena o identificador da porta serial (COM) destinada ao dispositivo Bina |
ST_ATIVABINA | PARMRESTAURANTE | Parâmetro efetivamente usado para ligar/desligar a integração com o Bina no MRE005 |
NR_PORTAREMOTA, NR_PORTALOCAL, NR_IPEXTERNO | PARMRESTAURANTE | Parâmetros de rede/socket usados pelo plug-in externo do Bina (comunicação via IPC, não via COM) |
Comportamento / Uso
O rótulo do campo na MFA001 é "Porta Comunicação Bina", indicando que o campo foi originalmente concebido para informar a porta serial (COM1, COM2, etc.) onde o equipamento de Bina (identificador de chamadas / caller ID telefônico) está conectado ao computador.
Porém, na análise completa do código-fonte Delphi (pasta source/):
- O valor é apenas persistido — gravado pela MFA001 através do
TDBEditedtDS_PORTACOM(ligado aoDataField = 'DS_PORTACOM') e incluído nos comandosSELECT,INSERTeUPDATEdo datasettabPARMFATUR. - Nenhuma tela lê o valor para abrir a porta serial ou para qualquer outra finalidade. A busca por
DS_PORTACOMem todo osource/retorna apenas referências dentro do próprio MFA001 (declaração do field persistente, cláusulas SQL do CRUD, componente visual). - A integração Bina atualmente operacional (módulo MRE005 — Atendimento Restaurante) usa comunicação via sockets TCP/IP com um executável plug-in externo (
HabilitaPlugin,RecebeFoneBina,RespostaBina), com parâmetros de host/porta emPARMRESTAURANTE— ou seja, não consultaDS_PORTACOM.
Conclusão prática:
DS_PORTACOMé um parâmetro legado / vestigial. O preenchimento na MFA001 não produz efeito funcional na versão atual do ERP. Foi mantido por compatibilidade de schema (a coluna continua existindo emPARMFATURe no CRUD persistente), mas qualquer integração Bina hoje é configurada via MRE001.
Simulação passo a passo
Cenário A — Parâmetro em branco (padrão):
- Em MFA001 → Parâmetros → Ambos → Opção 2 → campo "Porta Comunicação Bina" fica vazio.
- Salve (F6).
- Resultado esperado: nenhum módulo depende deste parâmetro. O Bina do MRE005 (se existir na instalação) funciona normalmente conforme
PARMRESTAURANTE.
Cenário B — Parâmetro preenchido com COM1:
- Em MFA001 → Opção 2 → "Porta Comunicação Bina" =
COM1. - Salve (F6).
- Resultado esperado: o valor é persistido em
PARMFATUR.DS_PORTACOM, mas nenhum comportamento do ERP muda. Nenhuma rotina abre ou consulta essa porta serial. O Bina do restaurante continua governado pelos parâmetros dePARMRESTAURANTE.
Cenário C — Valor qualquer (texto livre XYZ):
- Em MFA001 → Opção 2 → "Porta Comunicação Bina" =
XYZ. - Salve (F6).
- Resultado esperado: grava sem erro (campo é
CHAR(4)sem validação). O sistema aceita qualquer texto de até 4 caracteres. Não há validação de formato (não verifica se começa comCOM, não valida existência da porta).
Formato e regras
Formato esperado
| Valor | Significado pretendido |
|---|---|
| (em branco / NULL) | Sem porta Bina configurada (padrão) |
COM1, COM2, COM3, COM4 | Nome da porta serial do Windows onde estaria o Bina |
| Qualquer texto de até 4 caracteres | Aceito sem validação pelo campo |
Regras / Observações
- Tamanho fixo:
CHAR(4)— máximo 4 caracteres. Portas comoCOM10ouCOM11não cabem no campo (o Windows permite portas acima deCOM9, mas este parâmetro não). - Sem valor default: o domínio
DOM_CHAR4é definido semDEFAULTe permite NULL. O métodotabPARMFATURAfterInsert(emUdmMFA001.pas) inicializa dezenas de campos padrão da PARMFATUR mas não atribui valor aDS_PORTACOM— o registro nasce comNULL. - Sem validação: o MFA001 grava o valor como texto livre em um
TDBEditcomum. Não há validação de formato, nem lookup de portas disponíveis, nemBeforePost. - Nenhum consumidor funcional: a pesquisa integral em
source/(todos os 1.635 módulos BPL e shared units) confirma que nenhum código lêPARMFATUR.DS_PORTACOMpara abrir porta serial ou executar qualquer lógica. - Bina no ERP hoje: a integração Bina efetivamente implementada (MRE005 - Restaurante) usa comunicação via socket TCP/IP com plug-in externo, parâmetros em MRE001 /
PARMRESTAURANTE(ST_ATIVABINA,NR_PORTAREMOTA,NR_PORTALOCAL,NR_IPEXTERNO). A porta COM do dispositivo físico é tratada pelo plug-in externo, não pelo ERP. - Recomendação: tratar este campo como obsoleto. Deixe em branco salvo orientação explícita do suporte Junsoft — o valor não produz efeito no sistema.
Referências no Código Fonte
Formulário de parametrização (MFA001)
| Arquivo | Linha | Descrição |
|---|---|---|
source/MFA001/UMFA001.pas | 331 | Declaração edtDS_PORTACOM: TDBEdit |
source/MFA001/UMFA001.dfm | 3743–3757 | Label65 — Caption = 'Porta Comunicação Bina', FocusControl = edtDS_PORTACOM |
source/MFA001/UMFA001.dfm | 4261–4277 | edtDS_PORTACOM — TDBEdit (DataField = 'DS_PORTACOM', DataSource = dmMFA001.dsPARMFATUR) dentro de pagFatOp2 (aba "Ambos → Opção 2") |
source/MFA001/UdmMFA001.pas | 221 | Declaração tabPARMFATURDS_PORTACOM: TStringField |
source/MFA001/UdmMFA001.dfm | 1618–1624 | Field persistente — Size = 4, FixedChar = True, Alignment = taCenter, Origin = '"PARMFATUR"."DS_PORTACOM"' |
source/MFA001/UdmMFA001.dfm | 236, 3116 | Inclusão da coluna nos SELECTs auxiliares (datasets secundários) |
source/MFA001/UdmMFA001.dfm | 2413 | Inclusão na lista de colunas do SELECT do dataset persistente |
source/MFA001/UdmMFA001.dfm | 2581 | Inclusão na lista de parâmetros do INSERT (:DS_PORTACOM) |
source/MFA001/UdmMFA001.dfm | 2817 | Cláusula DS_PORTACOM = :DS_PORTACOM do UPDATE persistente |
Consumidores funcionais do parâmetro
Nenhum. A busca por DS_PORTACOM em todo o source/ retorna exclusivamente os arquivos do módulo MFA001 acima listados.
DDL
| Arquivo | Linha | Descrição |
|---|---|---|
docs/schema/tables/PARMFATUR.sql | 169 | Definição da coluna: DS_PORTACOM DOM_CHAR4 (nula permitida, sem default) |
Scripts / Stored Procedures
Nenhuma referência em Scripts/ (stored procedures/views Firebird).
Notas adicionais — Bina no MRE005 (não usa DS_PORTACOM)
Para referência histórica, a integração Bina em uso está implementada em:
source/MRE005/UMRE005.paslinhas 308–326 — consultaPARMRESTAURANTE.ST_ATIVABINApara habilitar o plug-in.source/MRE005/UMRE005.paslinhas 2117–2128 —HabilitaPluginenvia mensagem Win32 ao executável plug-in.source/MRE005/UMRE005.paslinhas 2131–2183 —RecebeFoneBinarecebe número de telefone do chamador viaWM_USER.source/MRE005/UMRE005.paslinhas 2187+ —RespostaBinatrata resposta do plug-in viaWM_RESPOSTA.source/MRE001/UMRE001.paslinhas 925–934 — MRE001 gravaPARMRESTAURANTE.ST_ATIVABINAviachkST_ATIVABINA.source/MRE001/UdmMRE001.paslinhas 179–181 — valores default (NR_PORTAREMOTA = '3821',NR_PORTALOCAL = '6511',ST_ATIVABINA = 'N').
Nenhum desses pontos consulta PARMFATUR.DS_PORTACOM.