Definição da Regra de Negócio
Criar parâmetro (tab_parametro) PERMITE_PESAGEM_MANUAL_CONECTADO_BALANCA. O valor padrão para este parâmetro deverá ser 'N'.
if not exists (select 1
from tab_parametro
where param_desc = 'PERMITE_PESAGEM_MANUAL_CONECTADO_BALANCA')
begin
exec proc_diu_parametro
'I',
'PERMITE_PESAGEM_MANUAL_CONECTADO_BALANCA',
'N',
1,
'Permitir pesagem manual caso a máquina possua autorização mesmo a conexão com a balança estando em correto funcionamento.'
PRINT 'Parametro incluido com sucesso...'
end
else
PRINT 'Parametro ja existente...'
MENU - Portaria
- Realizar leitura do novo parâmetro PERMITE_PESAGEM_MANUAL_CONECTADO_BALANCA (getParam).
vPERMITE_PESAGEM_MANUAL_CONECTADO_BALANCA := getparam('PERMITE_PESAGEM_MANUAL_CONECTADO_BALANCA ')='S';
MENU - Portaria - Pesagem (frm_cad_balanca2)
- Criar novo componente do tipo checkbox (chkRealizarPesagemManual) conforme abaixo:

- Por padrão este campo deverá estar não visível. Este novo campo só deverá estar visível caso o parâmetro PERMITE_PESAGEM_MANUAL_CONECTADO_BALANCA = 'S' e a máquina possua uma autorização de pesagem manual cadastrada (tab_permissao_pesagem). Para isso realizar a seguinte alteração:
- Alterar a função VerificaBalanca, quando o TipoCapturaPeso <> 0 e ConectadoComaBalanca = true. Verificar se o parâmetro vPERMITE_PESAGEM_MANUAL_CONECTADO_BALANCA está habilitado e se existe autorização de pesagem para a máquina através da procedure SPConsiste. Caso o retorno do parâmetro output @w_liberado seja igual a 1, então tornar o novo componente chkRealizarPesagemManual visível.
if vPERMITE_PESAGEM_MANUAL_CONECTADO_BALANCA then
begin
SPConsiste.close;
SPConsiste.ParamByName('@w_equipamento').Value:= RetornaCampo('select host_name()');
SPConsiste.ExecProc;
if (SPConsiste.ParamByName('@w_liberado').AsInteger = 1) then
chkRealizarPesagemManual.Visible := true;
end;
- Ao clicar em "Realizar Pesagem Manual" ( evento chkRealizarPesagemManualClick) , "desligar" a leitura de peso da balança, limpar o campo peso (edtPeso) e permitir informar o peso manualmente. Para isso, realizar a seguinte alteração:
// simula clica no componente rxswBalanca para "desligar " a captura da balança
if rxswBalanca.StateOn then
begin
rxswBalanca.Perform(WM_LBUTTONDOWN, 0, 0); //Simula apertar o botão
rxswBalanca.Perform(WM_LBUTTONUP, 0, 0); //Simula soltar o botão
end;
edtPeso.Enabled := true;
edtPeso.ReadOnly := false;
edtPeso.Clear;
edtPeso.SetFocus;
- Ao clicar em "ligar" a leitura de peso da balança, tornar o campo de peso somente leitura novamente. Para isso, realizar a seguinte alteração:
Alterar a função rxswBalancaOn para que caso o tipo de captura (TipoCapturaPeso) seja igual a 0 (SARA), além dos procedimentos já implementados, deixe o campo peso somente leitura.
if rxswBalanca.StateOn then
edtPeso.ReadOnly := rxswBalanca.StateOn;
- Ao gravar pesagem com o checkbox "Realizar Pesagem Manual", registrar que o peso foi gravado manualmente. Para isso, realizar a seguinte alteração:
para:
if rxswBalanca.Visible then
begin
if chkRealizarPesagemManual.Checked then
w_bal_tipo := 'MN'
else
w_bal_tipo := 'AT'
end
else
w_bal_tipo := 'MN';
- O novo campo deve respeitar o comportamento dos demais com relação a estar disponível para edição somente enquanto o registro estiver em modo de edição.
- O novo campo deve ter seu valor limpo após cancelamento, inclusão, e exclusão de registro.
- Criar atalho (ALT + M) para que o campo possa ser acionado diretamente do teclado. Para isso, adicionar o caracter & antes da palavra Manual na propriedade do componente Caption (Realizar Pesagem &Manual).
- Quando a pesagem manual, obrigar usuário informar observação. Ou seja, quando o componente rxswBalanca estiver invisível ou o chkRealizarPesagemManual.Checked, verificar se o campo observação está vazio. Estando vazio, informar ao usuário "Observação obrigatória para pesagem manual."
Rotina | Tipo de Operação | Opção de Menu | Regras de Negócio |
| mdi_mod_portaria | [Alteração] | Portaria | - Realizar leitura de parâmetro.
|
frm_cad_balanca2 | [Alteração] | Portaria - Pesagem | - Permitir pesagem manual mesmo conectado com a balança.
|
CENÁRIOS DE TESTE
COM PARÂMETRO PERMITE_PESAGEM_MANUAL_CONECTADO_BALANCA = 'N'
Cenário 1
- No SARA - Portaria, criar um CESV. Operação = DESCARGA;
- Sem nenhuma permissão de pesagem cadastrada para a máquina (Conferir em Portaria - Permissão de Pesagem);
- Acessar SARA - Portaria Pesagem - Novo - Informar placa do veículo do CESV criado anteriormente.
- O sistema não deve exibir o novo campo "Realizar Pesagem Manual".
- Tentar realizar a gravação da pesagem. O sistema não permitir permitir pois não existe permissão para pesagem manual.
Cenário 2
- No SARA - Portaria, criar um CESV. Operação = DESCARGA;
- Acessar Portaria - Permissão de Pesagem e cadastrar uma nova permissão de pesagem para o veículo;
- Acessar SARA - Portaria Pesagem - Novo - Informar placa do veículo do CESV criado anteriormente.
- Informar um peso e realizar a gravação da pesagem. O campo Peso deve ser gravado conforme informado pelo usuário e o tipo de pesagem deve ser gravado como MN - Manual.
- O sistema não deve exibir o novo campo "Realizar Pesagem Manual".
COM PARÂMETRO PERMITE_PESAGEM_MANUAL_CONECTADO_BALANCA = 'S'
- Instalar e configurar programa para simular paridade entre as portas COM: \\totvsjoi-fs01\Sara\Util\SetupVSPE. Acessar o menu Device -> Create -> Device Type = Pair. Deixe o programa aberto;
- Gerar executável do projeto simulador de balança $/SARA/Fontes_Doc/Sustentacao/VS11.00/Delphi7/BalancaEmulador. Abrir o simulador de balança EmulaBAL.exe -> Porta = COM2 -> Peso a enviar = 20000 -> Variar peso automaticamente = Marcado -> Auto Enviar = Marcado.
- Acessar o SARA - Portaria - Pesagem. Ao lado esquerdo do botão OK existe a opção de configuração da balança (botão com engrenagem). Clicar neste botão e configurar para comunicar com a porta COM4. Confirmar as demais informações.
Cenário 1
- No SARA - Portaria, criar um CESV. Operação = DESCARGA;
- Sem nenhuma permissão de pesagem cadastrada para a máquina (Conferir em Portaria - Permissão de Pesagem);
- Acessar SARA - Portaria Pesagem - Novo - Informar placa do veículo do CESV criado anteriormente. O sistema deve ler o peso da balança e possibilitar gravação. O novo campo criado "Realizar Pesagem Manual" deve estar invisível, e o campo Peso não deve permitir alteração.
- Realizar a gravação da pesagem. O campo Peso deve ser gravado conforme capturado pelo simulador de balança, e o "Tipo" de pesagem deve ser gravado como AT - Automático;
- Excluir a pesagem para reutilizar o veículo.
Cenário 2
- Ainda utilizando o simular de balança, acessar Portaria - Permissão de Pesagem - Cadastrar uma permissão de pesagem para a máquina;
- Acessar SARA - Portaria - Pesagem - Novo - informar placa do veículo do CESV criado no cenário 1. O sistema deve ler o peso da balança e possibilitar gravação (não gravar ainda);
- O sistema deve exibir o novo campo criado "Realizar Pesagem Manual".
- Marcar o novo campo "Realizar Pesagem Manual". O sistema deve interromper a captura de peso da balança, e colocar o foco no campo Peso permitindo que seja informado manualmente.
- Informar um Peso manualmente e gravar. O campo Peso deve ser gravado conforme informado pelo usuário e o tipo de pesagem deve ser gravado como MN - Manual.
- Excluir a pesagem para reutilizar o veículo.