Self Checkout - Fujitsu

De Conecto wiki
Revisão de 13h07min de 12 de maio de 2015 por Hgoncalves (discussão | contribs)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

Self Checkout - Fujitsu



MANUAL SISTEMA EMPORIUM


MANUAL TÉCNICO SELF CHECKOUT


Histórico


Data
Versão
Nome
Descrição
12/08/2014
1.0.0
Adriana Accioly / Henrique Gonçalves

SUMÁRIO[#__RefHeading__9915_1001560320 Requisitos Mínimos5]

[#__RefHeading__2683_1695124016 MANUAL TÉCNICO SELF CHECKOUT2]

[#__RefHeading__2681_1695124016 MANUAL SISTEMA EMPORIUM2]Introdução

Os terminais touch screen de auto-atendimento tem o intuito de o próprio cliente se auto-atender, escaneando os produtos no leitor de código de barras, colocando os produtos na balança biótica para pesagem e efetuar o pagamento (somente via cartão de crédito ou débito).


Requisitos Mínimos

PDV Com tecnologia touch screenscreen
Impressora Tipo Fiscal
Balança Biótica Com scanner, Sincronizada
Ambiente Gráfico KDE ou XFCE
Periféricos PinPad
Sistema Operacional Slackware 14.0 ou superior
Sistema Emporium (PDV/Venditor) e módulo Self Checkout.
Programas Complementares MSG_SIGA_INSTRUCOES_SELF.sh, MSG_FORMA_PAGAMENTO_SELF.sh, MSG_CANCELAMENTO_SELF.sh, MSG_FIM_TRANSACAO_SELF.sh, MSG_NFP_SELF.sh,Xinput Calibrator

Instalação do sistema Operacional e Configuração de Áudio


Não é necessário efetuar nenhuma configuração no Slackware 14.1, para a reprodução de áudio basta instalar a versão completa do Slackware 14.1 e o ambiente gráfico KDE ou XFCE.


1. Faça a instalação completa do Slackware 14.1, ou superior (O Slackware 14.1 pode ser baixado no site oficial: http://mirrors.slackware.com/).


2. Digite “alsamixer” para acessar as configurações de áudio e controle de volume (Figura01).


[[Image:]]
FIGURA 01 – Controle de Áudio

3. Após fazer os ajustes, digite o comando “alsactl store”, para salvar as configurações feitas.

4. Copiar o arquivo asoundrc para o diretório / e para o diretório /root com o comando abaixo:

cp asoundrc /root/.asoundrc /.asoundrc


Configuração do touch screen


Calibrando o Touch Screen


Para calibrar o touch screen, é necessário instalar o programa xinput_calibrator.


Instalando o xinput_calibrator


1. Execute o comando installpkg xinput_calibrator-0.7.5-i486-1_Sbo.tgz


Calibrando o TOUCH.


1. Com a área de trabalho (XFCE ou KDE) aberta Abra o terminal de comando.


2. Digite o comando "xinput_calibrator >> /tmp/calibra.txt", e pressione “Enter”.


3. O sistema abrirá uma tela com instruções de onde pressionar para que a calibração seja feita (figura03).


4. Ao concluir as instruções de calibração que aparecem na tela, o sistema gerará algumas linhas de comando, conforme o exemplo abaixo:


Linhas de comando geradas na calibragem
Section "InputClass"

Identifier "calibration"

MatchProduct "MAStouch screen touch screenSystems MAStouch screen USB touch screenscreen"

Option "Calibration" "25 1062 409 1243"

EndSection

5. Abra o arquivo 99-calibration.conf, este arquivo se encontra no diretório /etc/X11/xorg.conf.d.


6. Adicione o comando gerado na calibragem que está dentro do arquivo /tmp/calibra.txt para o arquivo 99-calibration.conf.


[[Image:]]
Figura 03 – Tela de Calibração do PDV

7. Para que a cada vez que o PDV for reiniciado, não seja necessário fazer todo o procedimento novamente, abra o arquivo /root/.xinitrc.


8. Comente a linha que contem “xinput_calibrator_pointercal.sh”.


Exemplo de linha comentada
#xinput_calibrator_pointercal.sh

9. Salve o arquivo.


10. Abra o arquivo /etc/X11/xinit/xinitrc.kde e o arquivo /etc/X11/xinit/xinitrc.xfce

Obs: Deve existir dentro do diretório /root um arquivo .xinitrc que vem no pacote de instalação.


11. Comente a linha que contem “xinput_calibrator_pointercal.sh”.


Configurando a tela de descanso


Para que o self checkout não entre na tela de descanso, é necessário realizar as configurações abaixo:


1. Abra o arquivo “/etc/X11/xorg.conf”.


2. Adicione o comando abaixo neste arquivo:


Comand para ser adicionado no arquivo /etc/X11/xorg.conf
Section "ServerFlags"

Option "blank time" "0"

Option "standby time" "0"

Option "suspend time" "0"

Option "off time" "0"

Option "dpms" "false"

EndSection

Chamada da Aplicação Gráfica de PDV (Revisar)


Substituir o xinitrc do /etc/X11/xinitrc/xinitrc.kde, /etc/X11/xinitrc/xinitrc.xfce e /root/.xinitrc pelo xinitrc que chama o venditorX.

Adicionar o xorg.conf que limita a tela no tamanho do tema do PDV e nao deixa escurecer.

Adicionar startx em uma linha dentro do arquivo /etc/rc.d/rc.local


Instalação do Sistema Emporium de PDV.

- Fazer a instalação do pacote do Venditor sem a inicialização automática.


PARAMETRIZAÇÕES DE PDV


4. CONFIGURAÇÕES DE TEMA

1. Crie o diretório CONECTO_SELF_CHECKOUT ou baixe o arquivo compactado em /var/venditor/THEMES/.


2. Abra o arquivo DISPLAY.xml.


3. verifique se no arquivo DISPLAY.xml, contém as parametrizações abaixo:


Parametrização do arquivo DISPLAY.xml
<SELECT_THEME>

<CURRENT_THEME width='3'>1</CURRENT_THEME>

</SELECT_THEME>


Na lista de temas (THEMES_LIST):


<THEME id_item='ID' allow_delete='no'>

<ID width='4'>1</ID>

<NAME width='40'>CONECTO_SELF_CHECKOUT</NAME>

<DIRECTORY width='20'>CONECTO_SELF_CHECKOUT</DIRECTORY>

</THEME>



Como direcionar os botões do Self Checkout.


1. Insira na tela(layout) um elemento de tema (TYPE 111 – Genérico) cobrindo a região do botão desejado na imagem, estas configurações são feitas nas tags MINX, MINY, MAXX, MAXY.


Legenda Tags.
MINX = Inicio da linha horizontal (Esquerda para direita).

MAXX = Fim da linha horizontal.

MINY = Inicio da linha (De cima para baixo)

MAXY = Fim da linha.

Para configurar uma função de PDV, inserira no elemento a tag


Tags
<COMMAND></COMMAND>” contendo a função desejada ou a tag “<KEYCODE></KEYCODE>” contendo a tecla desejada.



Botão Eexecutando Comando de Finalizar na Tela de Venda
Neste caso, ao tocar na área da imagem mapeada, será acionada a função 407 - Subtotal.
<ELEMENT>

<NAME>BOTAO FINALIZAR</NAME>

<TYPE>111</TYPE> 169<FG_COLOR>ffffff</FG_COLOR><BG_COLOR>T</BG_COLOR>

<MINX>697</MINX><MAXX>763</MAXX><MINY>847</MINY><MAXY>916</MAXY>

<TEXT></TEXT>

<COMMAND>407</COMMAND>

</ELEMENT>

Botão chamado tecla especifica de finalizar
<ELEMENT>

<NAME>PAGAR</NAME>

<TYPE>111</TYPE>

169<FG_COLOR>ffffff</FG_COLOR><BG_COLOR>T</BG_COLOR>

<MINX>697</MINX><MAXX>763</MAXX><MINY>847</MINY><MAXY>916</MAXY>

<TEXT></TEXT>

<KEYCODE>0130</KEYCODE>

</ELEMENT>

Nesse caso, ao tocar na área da imagem mapeada, será acionada a tecla configurada no KB.xml (ou outro KB especificado no LAYOUT em questão) relacionada a KEYCODE 0130.

Por padrão, até a função 199, o LAYOUT de tema que será exibido é definido pelo VENDITOR, a partir da função 200, é possível especificar um layout a ser exibido ao executar uma função, basta apenas colocar a tag <LAYOUT> com o número do layout do tema como parâmetro.


Como Configurar Layoute do Tema
Ao ser executada a função 389, será exibido o LAYOUT 51 definido do arquivo SCREEN.xml do tema.
<CMD>

<ID read_only='yes'>389</ID>

<AUTHORIZATIONS width='3'>0</AUTHORIZATIONS>

<TYPE options='CMD_TYPE_OPTIONS'>3</TYPE>

<COMMAND width='4'>0</COMMAND>

<LAYOUT width='4'>51</LAYOUT>

Problema ao tocar em área da tela onde não existe um botão mapeado


Quando o cliente tocar sobre uma área da tela onde não existe um botão mapeado, acontecerá algumas ações fora do contexto.


Por exemplo: na tela Cupom de Incentivo à Cidadania, onde o cliente insere o seu CPF pelo teclado virtual, se tocar em alguma área da tela que não seja um botão, todo o conteúdo já inserido será apagado.


Para solucionar esse problema, foi necessário criar um elemento cobrindo toda tela e que aciona o KEYCODE 0000 (não aciona nenhuma função ou tecla) Utilizar a seta de rolagem de itens no grupo de telas É necessário existir os seguintes elementos no layout requerido:


Configuração na Tela de Rolagem
<ELEMENT>

<NAME>SETA CIMA GRUPO ITENS</NAME>

<TYPE>111</TYPE>

169<FG_COLOR>ffffff</FG_COLOR><BG_COLOR>T</BG_COLOR>

<MINX>284</MINX><MAXX>316</MAXX><MINY>80</MINY><MAXY>114</MAXY>

<TEXT></TEXT><COMMAND>361</COMMAND>

</ELEMENT>

<ELEMENT>

<NAME>SETA BAIXO GRUPO ITENS</NAME>

<TYPE>111</TYPE>

169<FG_COLOR>ffffff</FG_COLOR><BG_COLOR>T</BG_COLOR>

<MINX>284</MINX><MAXX>316</MAXX><MINY>346</MINY><MAXY>380</MAXY>

<TEXT></TEXT><COMMAND>362</COMMAND>

</ELEMENT>



As funções acionados por esses elementos devem estar no CMD.xml
<CMD>

<ID read_only='yes'>361</ID>

<AUTHORIZATIONS width='3'>0</AUTHORIZATIONS>

<TYPE options='CMD_TYPE_OPTIONS'>3</TYPE>

<COMMAND width='4'>054</COMMAND>

<REFERENCE_TEXT read_only='yes'>Subir 1 linha de grupo de tela</REFERENCE_TEXT>

<ALLOWED_STATES width='40'></ALLOWED_STATES>

<TEXT width='40'>Subir 1 linha de grupo de tela</TEXT>

<PROMPT width='30'></PROMPT>

<OPTION_LIST horizontal_list='yes' hide_label='yes'>

<OPTION hide_label='yes'>

<ID read_only='yes' hidden='yes'>0</ID>

<VALUE options='YES_NO_OPTIONS'>1</VALUE>

<TEXT read_only='yes'>Alvo</TEXT>

</OPTION>

</OPTION_LIST>

<QUESTION_OPTION_LIST horizontal_list='yes' hide_label='yes'>

</QUESTION_OPTION_LIST>

</CMD>

<CMD>

<ID read_only='yes'>362</ID>

<AUTHORIZATIONS width='3'>0</AUTHORIZATIONS>

<TYPE options='CMD_TYPE_OPTIONS'>3</TYPE>

<COMMAND width='4'>055</COMMAND>

<REFERENCE_TEXT read_only='yes'>Descer 1 linha de grupo de tela</REFERENCE_TEXT>

<ALLOWED_STATES width='40'></ALLOWED_STATES>

<TEXT width='40'>Descer 1 linha de grupo de tela</TEXT>

<PROMPT width='30'></PROMPT>

<OPTION_LIST horizontal_list='yes' hide_label='yes'>

<OPTION hide_label='yes'>

<ID read_only='yes' hidden='yes'>0</ID>

<VALUE options='YES_NO_OPTIONS'>1</VALUE>

<TEXT read_only='yes'>Alvo</TEXT>

</OPTION>

</OPTION_LIST>

<QUESTION_OPTION_LIST horizontal_list='yes' hide_label='yes'>

</QUESTION_OPTION_LIST>

</CMD>



</OPTION>

</OPTION_LIST>

<QUESTION_OPTION_LIST horizontal_list='yes' hide_label='yes'>

</QUESTION_OPTION_LIST>

</CMD>

<CMD>

<ID read_only='yes'>362</ID>

<AUTHORIZATIONS width='3'>0</AUTHORIZATIONS>

<TYPE options='CMD_TYPE_OPTIONS'>3</TYPE>

<COMMAND width='4'>055</COMMAND>

<REFERENCE_TEXT read_only='yes'>Descer 1 linha de grupo de tela</REFERENCE_TEXT>

<ALLOWED_STATES width='40'></ALLOWED_STATES>

<TEXT width='40'>Descer 1 linha de grupo de tela</TEXT>

<PROMPT width='30'></PROMPT>

<OPTION_LIST horizontal_list='yes' hide_label='yes'>

<OPTION hide_label='yes'>

<ID read_only='yes' hidden='yes'>0</ID>

<VALUE options='YES_NO_OPTIONS'>1</VALUE>

<TEXT read_only='yes'>Alvo</TEXT>

</OPTION>

</OPTION_LIST>

<QUESTION_OPTION_LIST horizontal_list='yes' hide_label='yes'>

</QUESTION_OPTION_LIST>

</CMD>



Cadastro de grupo de itens (SUGESTAO - COLOCAR TOPICO)


1. Acesse o Emporium via web.


2. Digite seu login e senha.


3. Clique no botão/aba (Menu)“PLU”.


4. No menu lateral esquerdo clique em grupo de itens.


5. Clique no botão incluir.


6. Defina o espaçamento entre os itens na tela, a quantidade de linhas e colunas, a cor de fundo e a cor do texto, conforme figura 02.


7. Após preencher todos os campos clique no botão incluir ou alterar.


[[Image:]]
Figura 02 - Manutenção de Grupo de Tela

Configurando grupos de itens no PDV


No PDV, as imagens dos produtos devem estar com a extensão. ppm e o nome deve ser o mesmo do código do produto.


Exemplo: para exibir a imagem do produto que tem o código PLU 123456, deve existir o arquivo 123456.ppm dentro do diretório /var/venditor/IMG.


A resolução das imagens deve ser:
largura (width) = 55
altura (height) = 86

O elemento que acionará a função para exibir os itens que fazem parte de um grupo de tela deve ter a tag <DEFAULT_DATA> especificando o código do "grupo de itens":


Exemplo: Na tela de venda, quando o cliente tocar no botão "frutas", onde o grupo de itens é o código 10, deve existir o seguinte elemento chamando a função 349:


<ELEMENT>

<NAME>BOTAO FRUTAS</NAME>

<TYPE>111</TYPE>

172<FG_COLOR>ffffff</FG_COLOR><BG_COLOR>T</BG_COLOR>

<MINX>29</MINX><MAXX>113</MAXX><MINY>254</MINY><MAXY>298</MAXY>

<COMMAND>349</COMMAND><DEFAULT_DATA>10</DEFAULT_DATA>

</ELEMENT>

A função 349 apenas chama o layout para exibir a grade:

<CMD>

<ID read_only='yes'>349</ID>

<AUTHORIZATIONS width='3'>0</AUTHORIZATIONS>

<TYPE options='CMD_TYPE_OPTIONS'>3</TYPE>

<COMMAND width='4'>111</COMMAND>

<LAYOUT width='4'>37</LAYOUT>

<REFERENCE_TEXT read_only='yes'>Exibir grupo frutas</REFERENCE_TEXT>

<ALLOWED_STATES width='40'></ALLOWED_STATES>

<TEXT width='40'>Exibir grupo frutas</TEXT>

<PROMPT width='30'></PROMPT>

<PROMPT_QUESTION width='4'>0</PROMPT_QUESTION>

<OPTION_LIST horizontal_list='yes' allow_insert='yes' hide_label='yes'>

</OPTION_LIST>

<QUESTION_OPTION_LIST horizontal_list='yes' allow_insert='yes' hide_label='yes'>

</QUESTION_OPTION_LIST>

<SHELL_COMMAND_LIST horizontal_list='yes' allow_insert='yes' hide_label='yes'>

</SHELL_COMMAND_LIST>

</CMD>



Configurações de grupo de itens no PDV


No PDV, as imagens dos produtos devem estar com a extensão .ppm e o nome deve ser o mesmo do código do produto, exemplo: para exibir a imagem do produto que tem o código PLU 123456, deve existir o arquivo 123456.ppm no diretório /var/venditor/IMG.


A resolução dessas imagens deve ser
largura (width) = 55
altura (height) = 86

O elemento que acionará a função para exibir os itens que fazem parte de um grupo de tela deve ter a tag <DEFAULT_DATA> especificando o código do "grupo de itens" exemplo Na tela de venda, quando o cliente toca no botão "frutas", onde o grupo de itens é o código 10, deve existir o seguinte elemento chamando a função 349:


Configurando Grupo de Itens
<ELEMENT>

<NAME>BOTAO FRUTAS</NAME>

<TYPE>111</TYPE>

172<FG_COLOR>ffffff</FG_COLOR><BG_COLOR>T</BG_COLOR>

<MINX>29</MINX><MAXX>113</MAXX><MINY>254</MINY><MAXY>298</MAXY>

<COMMAND>349</COMMAND><DEFAULT_DATA>10</DEFAULT_DATA>

</ELEMENT>

A função 349 apenas chama o layout para exibir a grade:

<CMD>

<ID read_only='yes'>349</ID>

<AUTHORIZATIONS width='3'>0</AUTHORIZATIONS>

<TYPE options='CMD_TYPE_OPTIONS'>3</TYPE>

<COMMAND width='4'>111</COMMAND>

<LAYOUT width='4'>37</LAYOUT>

<REFERENCE_TEXT read_only='yes'>Exibir grupo frutas</REFERENCE_TEXT>

<ALLOWED_STATES width='40'></ALLOWED_STATES>

<TEXT width='40'>Exibir grupo frutas</TEXT>

<PROMPT width='30'></PROMPT>

<PROMPT_QUESTION width='4'>0</PROMPT_QUESTION>

O elemento que exibe a grade dos itens tem que acionar a função de venda (tag <COMMAND>3</COMMAND>) para poder vender o item que for tocado.

Ex:

<ELEMENT>

<NAME>EXIBIR ITENS GRUPO FRUTAS</NAME>

<TYPE>240</TYPE>

62

<BG_COLOR>f17074</BG_COLOR>

<MINX>20</MINX>

<MAXX>280</MAXX>

<MINY>80</MINY>

<MAXY>372</MAXY>

<COMMAND>3</COMMAND>

</ELEMENT>

<ELEMENT>

<NAME>BOTAO FRUTAS</NAME>

<TYPE>111</TYPE>

172<FG_COLOR>ffffff</FG_COLOR><BG_COLOR>T</BG_COLOR>

<MINX>29</MINX><MAXX>113</MAXX><MINY>254</MINY><MAXY>298</MAXY>

<COMMAND>349</COMMAND><DEFAULT_DATA>10</DEFAULT_DATA>

</ELEMENT>



função 349 apenas chama o layout para exibir a grade:
<CMD>

<ID read_only='yes'>349</ID>

<AUTHORIZATIONS width='3'>0</AUTHORIZATIONS>

<TYPE options='CMD_TYPE_OPTIONS'>3</TYPE>

<COMMAND width='4'>111</COMMAND>

<LAYOUT width='4'>37</LAYOUT>

<REFERENCE_TEXT read_only='yes'>Exibir grupo frutas</REFERENCE_TEXT>

<ALLOWED_STATES width='40'></ALLOWED_STATES>

<TEXT width='40'>Exibir grupo frutas</TEXT>

<PROMPT width='30'></PROMPT>

<PROMPT_QUESTION width='4'>0</PROMPT_QUESTION>

<OPTION_LIST horizontal_list='yes' allow_insert='yes' hide_label='yes'>

</OPTION_LIST>

<QUESTION_OPTION_LIST horizontal_list='yes' allow_insert='yes' hide_label='yes'>

</QUESTION_OPTION_LIST>

<SHELL_COMMAND_LIST horizontal_list='yes' allow_insert='yes' hide_label='yes'>

</SHELL_COMMAND_LIST>

</CMD>

O elemento que exibe a grade dos itens tem que acionar a função de venda (tag <COMMAND>3</COMMAND>) para poder vender o item que for tocado.


Função de Venda Tag
Ex:

<ELEMENT>

<NAME>EXIBIR ITENS GRUPO FRUTAS</NAME>

<TYPE>240</TYPE>

62

<BG_COLOR>f17074</BG_COLOR>

<MINX>20</MINX>

<MAXX>280</MAXX>

<MINY>80</MINY>

<MAXY>372</MAXY>

<COMMAND>3</COMMAND>

</ELEMENT>

Colocar um tópico. Parametrização de Hardwares (TOPICO)


As configurações do PinPad e ECF são as mesmas que um PDV padrão de loja, para o ECF as configurações devem ser feitas no arquivo TICKET.xml, e para o PinPad no PIN.xml.


Balança/Scanner


A permanecerá balança para o cliente pesar os itens de FLV. Segue abaixo a configuração da balança No arquivo SCALE.xml em /var/venditor/PRM:


<SCALE vertical_items='yes' hidden='no'>

<TYPE options='SCALE_TYPE_OPTIONS'>0</TYPE> (Verificar TYPE da Balança utilizada)

<SERIAL_PORT options='SERIAL_GEN_OPTIONS'>1</SERIAL_PORT>

<REQUEST_STRING width='40'>W</REQUEST_STRING>

<ANSWER_PREFIX width='40'>{STX}</ANSWER_PREFIX>

<ANSWER_SUFIX width='40'>{CR}</ANSWER_SUFIX>

</SCALE>



Balança de Sincronismo, Configuração da balança de sincronismo No arquivo SCALE.xml na tag SYNC_SCALE:
<SYNC_SCALE vertical_items='yes' hidden='no'>

<TYPE options='SCALE_TYPE_OPTIONS'>1</TYPE>

<SERIAL_PORT options='SERIAL_GEN_OPTIONS'>4</SERIAL_PORT>

<REQUEST_STRING width='40'>{ENQ}</REQUEST_STRING>

<ANSWER_PREFIX width='40'>{STX}</ANSWER_PREFIX>

<ANSWER_SUFIX width='40'>{ETX}</ANSWER_SUFIX>

<TOLERANCE width='6'>0.010</TOLERANCE>

<ZERO_WEIGHT_DELAY width='6'>200</ZERO_WEIGHT_DELAY>

<ZERO_WEIGHT_RETRY width='3'>4</ZERO_WEIGHT_RETRY>

<STABLE_WEIGHT_DELAY width='6'>500</STABLE_WEIGHT_DELAY>

<TIMEOUT width='6'>2000</TIMEOUT>

<READ_REQUEST_DELAY width='6'>200</READ_REQUEST_DELAY>

</SYNC_SCALE>



Onde:

TOLERANCE = Tolerância de divergência de peso.

ZERO_WEIGHT_DELAY = Se vier zero da balança respeita esse timeout para enviar nova solicitação.

ZERO_WEIGHT_RETRY = N. de tentativas de envio de solicitações à balança.

STABLE_WEIGHT_DELAY = Parametro em milissegundos que é o tempo da flutuação do item na balança de verificação. Se nesse intervalo conseguiu pegar 2x o mesmo peso, critica. (A oscilação não pode ultrapassar o limite da tolerância).

TIMEOUT=Tempo que o PDV espera a resposta da solicitação realizada para a balança

READ_REQUEST_DELAY = O tempo que o PDV espera para iniciar a leitura da resposta da solicitação.

(Vide Tópico 7).

Parametrização de comandos PDV


Para que seja possível reproduzir uma mensagem em aúdio no PDV, é necessário que exista o arquivo de aúdio com o nome do arquivo sendo o texto da mensagem exibida na tela do PDV com a extensão .wav ou .ogg dentro do diretório /var/venditor/SOUND.


Exemplo: no PDV é exibida a mensagem “passe o próximo item”; se dentro do diretório existir um arquivo de aúdio (extensão .wav ou .ogg) com o nome “passe_o_proximo_item.wav”, o som contido nesse arquivo será reproduzido.


Normalmente no PDV, ao trocar de tela não é exibido nenhuma mensagem. No Self Checkout, para que seja possível reproduzir alguma mensagem em aúdio foram criados alguns scripts.


Exemplo: A tela FINALIZADORAS.ppm (onde o cliente escolhe a forma de pagamento) é exibida ao tocar no botão “finalizar” na tela de venda. Esse botão aciona a função 407 de subtotal. Nessa função, um SHELL_COMMAND aciona um script para executar um som APÓS exibir a tela:


<SHELL_COMMAND>

<ID read_only='yes'>2</ID>

<SHELL_COMMAND_USE read_only='yes'>Arquivo</SHELL_COMMAND_USE>

<SHELL_COMMAND_TEXT width='60'>./MSG_FORMA_PAGAMENTO_SELF.sh</SHELL_COMMAND_TEXT>

</SHELL_COMMAND>

O script contém apenas:

#!/bin/bash

/usr/bin/play /var/venditor/SOUND/subtotal.wav

echo "bye 1"



Para reproduzir mensagens no final da venda, é necessário configurar a chamada no

POST_SALE_COMMAND no GLOBAL.xml

<POST_SALE_COMMAND>./MSG_FIM_TRANSACAO_SELF.sh</POST_SALE_COMMAND>


O Script verifica o status da aplicação, se Status = 0 e Estado = 50 executa a mensagem de “comprovantes em impressão” e logo em seguida de “obrigado”Se o status for diferente disso, o script executa o áudio de “erros genéricos”Entrada e Saída automática do Operador, essa funcionalidade foi criada para que NÃO seja necessária a Entrada/Saída manual.


No arquivo CMD.xml:

Função 017 (Redução Z), nas OPTIONS 0 e 8:


<OPTION hide_label='yes'>

<ID read_only='yes' hidden='yes'>0</ID>

<VALUE width='4'>1</VALUE>

<TEXT read_only='yes'>Zerar Operadores/TEXT>

</OPTION>

<OPTION hide_label='yes'>

<ID read_only='yes' hidden='yes'>8</ID>

<VALUE width='4'>1</VALUE>

<TEXT read_only='yes'>Operador Automatico</TEXT>

</OPTION>

Função 071 (Entrada/Saida Operador), nas OPTIONS 4 e 8:

<OPTION hide_label='yes'>

<ID read_only='yes' hidden='yes'>4</ID>

<VALUE width='4'>1</VALUE>

<TEXT read_only='yes'>Omitir relatorio</TEXT>



6.3 Habilitar Administração Remota.


Segui os seguintes passos:

Em Operações / Envio , selecionar a opção “HTML” para os PDVS desejados. Fazer o mesmo para “programas”;

Liberar em controle de Acesso (Acesso > Manutenção de Acesso, tipo de entidade “transação PDV”) os programas do Umbra para os fiscais;

Enviar carga de usuário;


No GLOBAL.xml:

<HTTP_SERVER>./thttpd -D</HTTP_SERVER> Comando executado para controlar o Servidor de Web do PDV ( Home Page)

<HTTP_DIR>..</HTTP_DIR> Diretório raiz do PDV

<HTTP_PORT>8680</HTTP_PORT> Porta do Servidor Web

<TRANSMIT>3</TRANSMIT> Tipo de PDV Inteligente

<CURSOR width='30'>./cursor</CURSOR>

<SPECULUM width='30'>./speculum</SPECULUM>

<VENDITOR width='30'>./venditorX</VENDITOR>



Colocar tópico aqui.6.4 Solicitar Cliente/Cpf no início da venda (Fidelização/NFP)

E deve existir a função 329, conforme abaixo:


<CMD> <ID read_only='yes'>329</ID> <AUTHORIZATIONS width='3'>0</AUTHORIZATIONS> <TYPE options='CMD_TYPE_OPTIONS'>3</TYPE> <COMMAND width='4'>068</COMMAND> <LAYOUT width='4'>10</LAYOUT> <REFERENCE_TEXT read_only='yes'>Identificação de Cliente + NFP + pinpad</REFERENCE_TEXT> <ALLOWED_STATES width='40'></ALLOWED_STATES> <TEXT width='40'>Identificação de Cliente + NFP + pinpad</TEXT> <PROMPT width='30'></PROMPT> <PROMPT_QUESTION width='4'>0</PROMPT_QUESTION> <OPTION_LIST horizontal_list='yes' hide_label='yes'> <OPTION hide_label='yes'> <ID read_only='yes' hidden='yes'>0</ID> <VALUE options='YES_NO_OPTIONS'>0</VALUE> <TEXT read_only='yes'>Apenas via cartao</TEXT> </OPTION> <OPTION hide_label='yes'> <ID read_only='yes' hidden='yes'>1</ID> <VALUE options='YES_NO_OPTIONS'>0</VALUE> <TEXT read_only='yes'>Permitir pesquisa por nome</TEXT> </OPTION> <OPTION hide_label='yes'> <ID read_only='yes' hidden='yes'>2</ID> <VALUE options='NFP_OPTIONS'>2</VALUE> <TEXT read_only='yes'>NF Paulista</TEXT> </OPTION> <OPTION hide_label='yes'> <ID read_only='yes' hidden='yes'>4</ID> <VALUE options='NO_YES_OPTIONS'>0</VALUE> <TEXT read_only='yes'>Permitir trocar o cliente a qualquer momento</TEXT>

</OPTION> <OPTION hide_label='yes'> <ID read_only='yes' hidden='yes'>5</ID> <VALUE options='NO_YES_OPTIONS'>0</VALUE> <TEXT read_only='yes'>Cliente de outra loja</TEXT> </OPTION> <OPTION hide_label='yes'> <ID read_only='yes' hidden='yes'>6</ID> <VALUE options='CUSTOMER_INPUT_OPTIONS'>1</VALUE> Com essa parametrização, também será solicitado identificação do cliente no início da venda caso o mesmo tenha convenio.

<TEXT read_only='yes'>Modo de Identificacao</TEXT> </OPTION> <OPTION hide_label='yes'> <ID read_only='yes' hidden='yes'>7</ID> <VALUE width='10'>00000000</VALUE> <TEXT read_only='yes'>Uso do pinpad</TEXT> </OPTION> </OPTION_LIST> <SHELL_COMMAND_LIST horizontal_list='yes' allow_insert='yes' hide_label='yes'> <SHELL_COMMAND>

<ID read_only='yes'>2</ID> <SHELL_COMMAND_USE read_only='yes'>Fim</SHELL_COMMAND_USE> <SHELL_COMMAND_TEXT width='60'>./MSG_NFP_SELF.sh</SHELL_COMMAND_TEXT> </SHELL_COMMAND> </SHELL_COMMAND_LIST> </CMD>



Personalizar mensagem de digitação de senha no PinPad


Por padrão, a mensagem de solicitação de senha da libclisitef é “aguarde a senha” ou “solicite a digitação da senha”. Como no terminal de autoatendimento essa mensagem aparecerá para o cliente, tivemos que efetuar uma alteração no arquivo para que a mensagem fosse mais amigável para o cliente.


No arquivo CliSiTef.ini, foi inserida a seguinte chave:


[ListaMsgASerTrocadaColetaSenha]


Msg1=Aguarde a senha


As libclisitef também devem estar atualizadas. No mínimo a versão 4.0.106.17.


Desse modo, a mensagem exibida será “Digite a senha no pinpad”.

Função do botão Ativar/Desativar som na venda


Caso o cliente não queira ouvir as mensagens de voz, é possível desativá-las. Para ativar ou desativar, é utilizada a função 471, configurada no CMD.xml da seguinte maneira:


<CMD>

<ID read_only='yes'>471</ID>

<AUTHORIZATIONS width='3'>0</AUTHORIZATIONS>

<TYPE options='CMD_TYPE_OPTIONS'>3</TYPE>

<COMMAND width='4'>102</COMMAND>

<LAYOUT width='4'>0</LAYOUT>

<REFERENCE_TEXT read_only='yes'>Habilitar/Desabilitar Som</REFERENCE_TEXT>

<ALLOWED_STATES width='40'></ALLOWED_STATES>

<TEXT width='40'>Habilitar/Desabilitar Som</TEXT>

<PROMPT width='30'>?</PROMPT>

<PROMPT_QUESTION width='4'>0</PROMPT_QUESTION>

<OPTION_LIST horizontal_list='yes' allow_insert='yes' hide_label='yes'>

<OPTION hide_label='yes'>

<ID read_only='yes' hidden='yes'>0</ID>

<VALUE width='4'>5</VALUE>

<TEXT read_only='yes'>O que fazer</TEXT>

</OPTION>

</OPTION_LIST>

<QUESTION_OPTION_LIST horizontal_list='yes' allow_insert='yes' hide_label='yes'>

</QUESTION_OPTION_LIST>

<SHELL_COMMAND_LIST horizontal_list='yes' allow_insert='yes' hide_label='yes'>

</SHELL_COMMAND_LIST>

</CMD>



Valores da OPTION 0:
0 - Envia uma mensagem que recebeu como Parâmetro (Display)

1 - Controla as maneiras como são mostradas os abastecimentos no posto de gasolina. (Vide Manual de Posto)

2 - Controla as maneiras como são mostradas os abastecimentos no posto de gasolina. (Vide Manual de Posto)

3 - Envia uma notificação com os dados do PDV para o Servidor (Espaço em disco, paramêtros, etc).

4 - Toca um arquivo informado no campo de dado.

5 - Ativa/Desativa o Som.

6 - Habilita a edição Externa de Parâmetros diretamente na função.

Exemplo: SPOOLER_VERSION, AUX_COPY_CONTROL, EFT_TICKET_CONTROL ao invés de utilizar no TICKET.xml, pode-se utilizar diretamente na função através do SHELL_COMMAND 13.

Função 102 que é a referência:

<CMD>

<ID read_only='yes'>102</ID>

<AUTHORIZATIONS width='3'>1</AUTHORIZATIONS>

<TYPE options='CMD_TYPE_OPTIONS'>2</TYPE>

<COMMAND width='4'>0</COMMAND>

<LAYOUT width='4'>0</LAYOUT>

<REFERENCE_TEXT read_only='yes'>MOSTRAR MENSAGEM</REFERENCE_TEXT>

<ALLOWED_STATES width='40'></ALLOWED_STATES>

<TEXT width='40'>MOSTRAR MENSAGEM</TEXT>

<PROMPT width='30'>Mensagem:</PROMPT>

<PROMPT_QUESTION width='4'>0</PROMPT_QUESTION>

<OPTION_LIST horizontal_list='yes' allow_insert='yes' hide_label='yes'>

</OPTION_LIST>

<QUESTION_OPTION_LIST horizontal_list='yes' allow_insert='yes' hide_label='yes'>

</QUESTION_OPTION_LIST>

<SHELL_COMMAND_LIST horizontal_list='yes' allow_insert='yes' hide_label='yes'>

</SHELL_COMMAND_LIST>

</CMD>



No tema, nas telas onde o botão aparece, deve existir o seguinte elemento:
<ELEMENT>

<NAME>Desativar Som</NAME>

<TYPE>111</TYPE>

165<FG_COLOR>000000</FG_COLOR><BG_COLOR>ffffff</BG_COLOR>

<MINX>385</MINX><MAXX>400</MAXX><MINY>4</MINY><MAXY>20</MAXY>

<COMMAND>471</COMMAND>

</ELEMENT>

6.7 Botão para solicitar ajuda do fiscal


Quando o cliente quer cancelar um item, venda ou qualquer outra operação que tenha dúvida, existe um botão para solicitar ajuda do assistente. Esse botão aciona a função 472 com referência à 14.


<CMD>

<ID read_only='yes'>472</ID>

<AUTHORIZATIONS width='3'>1</AUTHORIZATIONS>

<TYPE options='CMD_TYPE_OPTIONS'>3</TYPE>

<COMMAND width='4'>14</COMMAND>

<LAYOUT width='4'>0</LAYOUT>

<REFERENCE_TEXT read_only='yes'>Ajuda do atendente</REFERENCE_TEXT>

<ALLOWED_STATES width='40'></ALLOWED_STATES>

<TEXT width='40'>Ajuda do atendente</TEXT>

<PROMPT width='30'>?</PROMPT>

<PROMPT_QUESTION width='4'>0</PROMPT_QUESTION>

<OPTION_LIST horizontal_list='yes' allow_insert='yes' hide_label='yes'>



</OPTION_LIST>

<QUESTION_OPTION_LIST horizontal_list='yes' allow_insert='yes' hide_label='yes'>

</QUESTION_OPTION_LIST>

<SHELL_COMMAND_LIST horizontal_list='yes' allow_insert='yes' hide_label='yes'>

</SHELL_COMMAND_LIST>

</CMD>

No tema, nas telas onde o botão aparece, deve existir o seguinte elemento:

<ELEMENT>

<NAME>Solicitar presença do Assistente<NAME>

<TYPE>111</TYPE>

165<FG_COLOR>000000</FG_COLOR><BG_COLOR>ffffff</BG_COLOR>

<MINX>385</MINX><MAXX>400</MAXX><MINY>4</MINY><MAXY>20</MAXY>

<COMMAND>472</COMMAND>

</ELEMENT>



Consulta de produtos por descrição


Nas telas de FLV, para pesquisar por um produto que não está na lista, é utilizado o botão "pesquisar produtos", que aciona a função 363 (Que tem referencia a 140).


<CMD>

<ID read_only='yes'>363</ID>

<AUTHORIZATIONS width='3'>0</AUTHORIZATIONS>

<TYPE options='CMD_TYPE_OPTIONS'>3</TYPE>

<COMMAND width='4'>140</COMMAND>

<LAYOUT width='4'>40</LAYOUT>

<REFERENCE_TEXT read_only='yes'>Exibir Pesquisa Produtos Nao Listados</REFERENCE_TEXT>

<ALLOWED_STATES width='40'></ALLOWED_STATES>

<TEXT width='40'>Entre com o nome do produto:</TEXT>

<PROMPT width='30'></PROMPT>

<PROMPT_QUESTION width='4'>0</PROMPT_QUESTION>

<OPTION_LIST horizontal_list='yes' allow_insert='yes' hide_label='yes'>

<OPTION hide_label='yes'>

<ID read_only='yes' hidden='yes'>7</ID>

<VALUE width='15'>2</VALUE>

<TEXT read_only='yes'>Estilo do Menu</TEXT>

</OPTION>

<OPTION hide_label='yes'>

<ID read_only='yes' hidden='yes'>8</ID>

<VALUE width='15'>3</VALUE>

<TEXT read_only='yes'>Comando de venda do item</TEXT>

</OPTION>

</OPTION_LIST>

<QUESTION_OPTION_LIST horizontal_list='yes' allow_insert='yes' hide_label='yes'>

</QUESTION_OPTION_LIST>

<SHELL_COMMAND_LIST horizontal_list='yes' allow_insert='yes' hide_label='yes'>

</SHELL_COMMAND_LIST>

</CMD>



Configurações Específicas do Self-Chekout


Liberar peso na balança sincronizadora


Função criada por causa de uma instabilidade de peso que pode ocorrer com a balança devido a flutuação da mesma em casos de desnivelamento de solo, vento, etc.


Quando há uma inconstância no peso, a aplicação PDV fica alertando ao cliente para colocar o item corretamente na balança.


Para desprezar a checagem de peso na balança quando houver erro de sincronismo é necessário executar a função 459.


<CMD>

<ID read_only='yes'>459</ID>

<AUTHORIZATIONS width='3'>1</AUTHORIZATIONS>

<TYPE options='CMD_TYPE_OPTIONS'>3</TYPE>

<COMMAND width='4'>168</COMMAND>

<LAYOUT width='4'></LAYOUT>

<REFERENCE_TEXT read_only='yes'>Aceitar peso na balanca de sincronismo</REFERENCE_TEXT>

<ALLOWED_STATES width='40'></ALLOWED_STATES>

<TEXT width='40'>Aceitar peso na balanca de sincronismo</TEXT>

<PROMPT width='30'></PROMPT>

<PROMPT_QUESTION width='4'>0</PROMPT_QUESTION>

<OPTION_LIST horizontal_list='yes' hide_label='yes'>

<OPTION hide_label='yes'>

<ID read_only='yes' hidden='yes'>0</ID>

<VALUE options='YES_NO_OPTIONS'>1</VALUE>

<TEXT read_only='yes'>Aceitar peso lido</TEXT>

</OPTION>

</OPTION_LIST>

<QUESTION_OPTION_LIST horizontal_list='yes' allow_insert='yes' hide_label='yes'>

</QUESTION_OPTION_LIST>

<SHELL_COMMAND_LIST horizontal_list='yes' allow_insert='yes' hide_label='yes'>

</SHELL_COMMAND_LIST>

</CMD>



No arquivo GLOBAL.xml, também deve existir a seguinte parametrização:

<SELF_CHECKOUT_OVERRIDE_WEIGHT_CMD width='10'>459</SELF_CHECKOUT_OVERRIDE_WEIGHT_CMD>


Tempo para exibir mensagem "passe o próximo item"


No arquivo GLOBAL.xml

<SELF_CHECKOUT_NEXT_ITEM_MSG_TIMEOUT width='10'>3</SELF_CHECKOUT_NEXT_ITEM_MSG_TIMEOUT>


Desse modo, ao vender o produto e colocar na balança sincronizadora, a mensagem "passe o próximo" será exibida após o tempo (em segundos) definido nessa tag tempo para solicitar que se coloque item na balança sincronizadora.


No arquivo GLOBAL.xml

<SELF_CHECKOUT_SYNCH_SCALE_MSG_TIMEOUT width='10'>1</SELF_CHECKOUT_SYNCH_SCALE_MSG_TIMEOUT>



Desse modo, ao escanear o produto, após o tempo (em segundos) definido será solicitado que se coloque o item na balança sincronizadora.