Cadastros de produtos e Serviços

Índice

Terminal de consultas

PROD.PRO_TERMINAL_CONSULTAS

Descrição

Interface utilizada como terminal de consultas. Uma vez aberto, o terminal aceita que um código de barras seja escaneado (lido) para a execução automática de para apresentação de informações sobre o produto identificado pela leitura do código de barras.

Normalmente a sua utilização se dá através da disponibilização de equipamentos tais como tablets ou microcomputadores simples ou antigos, juntamente com um leitor de códigos acoplado e instalado com alguma estrutura física de suporte, como, p.ex.: uma caixa de metal para evitar danos aos equipamentos.

Sugere-se que seja criado um usuário de sistema específico (p.ex.: terminal_consultas) tendo direito de acesso único a essa interface, informando essa interface como "Interface de entrada" no cadastro do usuário.

Configurações:


Conteúdo a ser apresentado:

O conteúdo da consulta dever ser ajustado com o script definido na preferência PROD.PRO_TERMINAL_CONSULTAS.SCRIPT.
Exemplo de script para apresentação da descrição, imagem do produto, preço unitário e preço por caixa:
set count as count(1)
from codigos_barras cb
join produtos prod on prod.id = cb.produto_id
where cb.codigo_barras = '${cb}';

if ${count} = 0 then
   echo '<h1 style="color:red;">Código de barras não encontrado</h1>';
else

set prod as prod.*
, cb.fator_conversao::integer as fator_conversao
, unid.simbolo as unidade_medida
from codigos_barras cb
join produtos prod on prod.id = cb.produto_id
left join unidades_medidas unid on unid.id = cb.unidade_medida_id
where cb.codigo_barras = '${cb}';

set foto aa.arquivo_anexo
from arquivos_anexos_produtos ap
join arquivos_anexos aa on aa.id = ap.arquivos_anexos_id
join tipos_anexos ta on ta.id = aa.tipo_anexo_id
where ap.produto_id = ${prod.id}
and tipo_anexo = 'FOTO'
limit 1
;

echo '<h2>$!{prod.descricao}</h2>';

if '$!{foto}' <> '' then 
echo '<img src="../file/${foto}" width=200>';
end-if;

item preco_sugerido value;
echo '<h1>R$ ', preco_sugerido , ' ' , simbolo , '</h1>'
from itens_colecoes ic
join colecoes c on c.id = ic.colecao_id
join produtos prod on prod.id = ic.produto_id
join unidades_medidas unid on unid.id = prod.unidade_medida_id
where c.colecao = 'PADRAO'
and ic.produto_id = ${prod.id};

if ${prod.fator_conversao} > 1 then
   item preco_sugerido value;
   echo '<h1>${prod.unidade_medida} com ${prod.fator_conversao} ' , simbolo , ' = R$ ', (preco_sugerido * ${prod.fator_conversao}) preco_sugerido , '</h1>'
   from itens_colecoes ic
   join colecoes c on c.id = ic.colecao_id
   join produtos prod on prod.id = ic.produto_id
   join unidades_medidas unid on unid.id = prod.unidade_medida_id
   where c.colecao = 'PADRAO'
   and ic.produto_id = ${prod.id};
end-if;
   
end-if;

Configuração da formatação da interface:

A apresentação da consulta pode ser customizada na preferência PROD.PRO_TERMINAL_CONSULTAS.CSS. Essa configuração também pode ser realizada através do campo "CSS" da interface de Configurações das interfaces do sistema.
Para remover cabeçalho, rodapé e informações padrões normalmente apresentadas nas interfaces, pode-se configurar o CSS com o valor abaixo:
header.fixed {
   display: none;
}
body.main .content.fixed-header {
   margin: 13px 10px 35px;
}
table.form td.label {
   width: 100px;
}
footer {
   display: none;
}
.form-actions .btn {
   display: none;
}


Exemplo de consulta realizada com as configurações exemplificadas anteriormente:

Campos:

Informa o código de barras do produto que deseja consultar.
Apresenta o resultado da pesquisa.

Operações

Topo

Pesquisar

Tela sem operações geradas. Totalmente customizada.
Comportamento:

Configurações

PROD.PRO_TERMINAL_CONSULTAS.CSS

CSS para apresentação

CSS para configurar a apresentação.

Exemplo:

header.fixed {
    display: none;
}
body.main .content.fixed-header {
    margin: 13px 10px 35px;
}
table.form td.label {
    width: 100px;
}
footer {
    display: none;
}
.form-actions .btn {
    display: none;
}
body {
    background-color: #107e0e;
    color: white;
}

Tipo: TEXT

PROD.PRO_TERMINAL_CONSULTAS.SCRIPT

Script de apresentação da consulta

Script de apresentação da consulta. O código lido entra no script como variável ${cb}

set count as count(1)
from codigos_barras cb
join produtos prod on prod.id = cb.produto_id
where cb.codigo_barras = '${cb}';

if ${count} = 0 then 

    echo '<h1>Código de barras não encontrado</h1>'; 

else

set prod as prod.*
from codigos_barras cb
join produtos prod on prod.id = cb.produto_id
where cb.codigo_barras = '${cb}';

set foto aa.arquivo_anexo
from arquivos_anexos_produtos ap
join arquivos_anexos aa on aa.id = ap.arquivos_anexos_id
join tipos_anexos ta on ta.id = aa.tipo_anexo_id
where ap.produto_id = ${prod.id}
and tipo_anexo = 'FOTO'
limit 1
;

echo '

<h2>$!{prod.produto} - $!{prod.descricao}</h2>

<img src="../file/${foto}" width=200>
';

item preco_sugerido value;
echo '<h1>R$ ', preco_sugerido, '</h1>'
from itens_colecoes ic
join colecoes c on c.id = ic.colecao_id
where c.colecao = 'PADRAO'
and ic.produto_id = ${prod.id};

end-if;

Tipo: SOURCE_CODE

Regras

Preencher resultado

Verifica se existe um código de barras preenchido. Se não tiver, limpa o resultado e volta para a mesma tela. Se estiver preenchido, executa o script configurado e volta para a mesma tela.
Eventos que disparam esta regra:
  • Antes de apresentar uma tela formulário "Pesquisar"