{{:iws_notify:in_144px.png?200|}}
A liberação do servidor de notificação(**IWS Notify**) ocorreu na versão **1.4.009.000** (12/08/2019).
Complementando este manual, temos o [[manuais:iws-noitify|Manual do Android]] referente ao aplicativo que deve ser instalado no celular.
===== Interface Principal =====
Ao executar o programa, será aberta a seguinte tela:
{{ :iws_notify:iws_not_interface_principal.png?850 |}}
==== Aba Permissão ====
Na **primeira tabela**, serão mostradas as __permissões e avisos que aguardam algum tipo de interação por parte do usuário no servidor__. Na parte inferior teremos 3 botões para o caso de liberação de permissão:
* **Refresh** - Permite recarregar da tabela de tickets pendentes todas as permissões que aguardam interação do usuário.
* **Negar Permissão** - Permite negar imediatamente quando estiver configurado a opção **Desktop** ou **Todos** o pedido de permissão selecionado.
* **Permissão** - Permite abrir a tela de login para que seja inserido um usuário e senha para liberar uma determinada permissão, caso esteja configurado a opção **Desktop** ou **Todos**.
Caso seja solicitado a presença do gerente no frente de caixa, os dois últimos botões irão se transformar em um botão único chamado **Visualizar**, ao clicar no mesmo, irá abrir a seguinte interface:
{{ :iws_notify:iws_not_presenca_gerente.png?300 |}}
Na **segunda tabela**, serão mostradas as __requisições que já foram processadas ou que não obtiveram resposta__, executando timeout na conexão.
Lembrando que nesta tabela a cor **VERMELHO CLARO** representa as requisições cuja permissão foi negada. A cor **ROXA** representa as requisições que não foram respondidas a tempo e foram finalizadas pelo frente de caixa como **TIMEOUT**.
Na parte inferior teremos 2 botões:
* **Exportar** - Permite exportar para Excel todos os dados da tabela para que seja analisado a liberação de permissão, caso seja necessário efetuar algum tipo de auditoria. Exemplo:
{{ :iws_notify:iws_not_exportacao_xls.png?900 |}}
* **Fechar** - Exibe a mensagem de confirmação para fechar o servidor de notificação.
==== Aba Comunicação ====
=== Funcionamento ===
O servidor de notificação trabalha com a **tecnologia de callback em um canal**, ou seja, quando o EasyCash abre, é registrado no servidor para este PDV um número serial que identifica o mesmo perante os outros PDVs. Sendo assim, o servidor e os frentes de caixas podem enviar informações entre si, utilizando o referido canal registrado e seus ID's. Segue o diagrama:
{{ :iws_notify:iws_not_callback.png?450 |}}
Neste caso, portanto, podemos **notificar um callback(PDV) específico** enviando algum tipo de informação ou podemos efetuar **um broadcast no canal**, onde todos os computadores registrados no canal receberão aquele tipo de informação.
Com base nos dados acima, **DEVE-SE iniciar o servidor de notificação primeiro** e depois iniciar o EasyCash. Caso precise **reiniciar o servidor de notificação DEVE-SE reiniciar os PDV's** que estiverem linkados ao mesmo para que o canal de callback seja refeito.
=== Interface ===
{{ :iws_notify:iws_not_comunicacao.png?850 |}}
Abaixo da tabela superior, temos o botão **Refresh Clientes** que irá atualizar a mesma caso ocorra novas conexões que não estejam exibidas.
O botão **Broacast para o Canal** permite enviar o texto "Teste de conexão!" para todos os PDV's assim como o botão **Notificar CallBack** permite enviar a mesma mensagem para o PDV selecionado. Caso clique em um desses botões e o canal esteja funcionando corretamente, no frente de caixa, na pasta **LOG** deve-se ter um arquivo chamado **EasyCashNOT_YYYYMMDD.log** com o seguinte registro:
{{ :iws_notify:iws_not_easycash_testeconexao.png?750 |}}
O botão **Informação do Túnel** exibe todos os clientes e callbacks registrados no canal, conforme a imagem a seguir:
{{ :iws_notify:iws_not_informacoes_canal.png?850 |}}
==== Aba Configuração ====
O sistema de notificação para mobile utiliza o banco de dados FireBase Google para envio de mensagens. Para maiores informações visite: [[https://firebase.google.com/products/realtime-database/|FireBase - Realtime Database]]
{{ :iws_notify:iws_not_configuracao.png?850 |}}
Nesta tela, temos a porta que o servidor de notificação está trabalhando, podendo ser modificada rapidamente por esta interface, o identificador do aplicativo junto ao FireBase(**ID aplicativo**) e o id do cliente junto ao aplicativo(**ID cliente**).
Vale ressaltar que temos também o tempo em que o servidor irá efetuar um refresh nos dados da tela principal. Temos também que para o caso do Mobile, __serão efetuadas 30 tentativas com intervalo de 2 segundos para tentar recuperar os dados do FireBase__ no caso da permissão via celular.
==== Aba Informações Adicionais ====
{{ :iws_notify:iws_not_info_adicional.png?850 |}}
Nesta tela, podemos visualizar as configurações do retaguarda que são exportadas para o frente de caixa, caso seja preciso validar o valor ou o status das mesmas.
Para alterar estas configurações, no retaguarda acesse:
Será aberta a seguinte tela:
{{ :iws_notify:iws_not_retaguarda_config.png?550 |}}
No frente de caixa, ao efetuar esta configuração, no arquivo **EasyCash1.ini**, teremos a tag **[Notificacao]**, conforme a imagem:
{{ :iws_notify:iws_not_config_easycashini.png?750 |}}
No modo de configuração pode ser escolhido **Desktop**(liberação via interface do IWS Notify), **Mobile**(Celular) ou **Todos**(Desktop + Mobile).
Para o caso do **Mobile** ou da opção **Todos**, deve-se ter __um e-mail do Google devidamente registrado no celular__ que irá receber a notificação e o referido operador de caixa deve ter permissão para poder executar a liberação da mesma. Tomemos como exemplo o seguinte operador:
{{ :iws_notify:iws_not_operador_caixa.png?800 |}}
No cadastro do mesmo deve conter o referido e-mail registrado em seu celular, conforme a imagem:
{{ :iws_notify:iws_not_operador_caixa2.png?800 |}}
Ressaltando que o referido usuário possui permissão para liberação da maioria das permissões pedidas pelo frente de caixa.
Para que o referido __operador de caixa receba aviso de solicitação do gerente__ do frente de caixa, **DEVE-SE** estar marcado a seguinte permissão:
{{ :iws_notify:iws_not_solicita_gerente_permissao.png?850 |}}
===== Solicitação do Gerente no Frente de Caixa =====
Ao habilitar configuração de Push Notification, automaticamente será mostrado no lado superior direito da tela principal do frente de caixa o seguinte atalho(**SHIFT + F3**) que funciona no sistema inteiro do EasyCash:
{{ :iws_notify:iws_not_atalho_solicita_gerente.png?350 |}}
Ao pressionar, será exibido no canto inferior direito da tela a seguinte mensagem:
{{ :iws_notify:iws_not_atalho_solicita_gerente2.png?350 |}}
===== Exemplo de liberação de Permissão via Mobile =====
No frente de caixa ao pedir uma permissão, teremos:
{{ :iws_notify:iws_not_exemplo1_01.png?750 |}}
Para o caso de estar esperando processamento, temos:
{{ :iws_notify:iws_not_exemplo1_02.png?750 |}}
Se não houver resposta, teremos:
{{ :iws_notify:iws_not_exemplo1_03.png?300 |}}
Neste caso, podemos reenviar novamente o pedido.
Para o caso em que a permissão é negada, temos:
{{ :iws_notify:iws_not_exemplo1_04.png?300 |}}
Na tela do celular, através do celular será apresentada uma das seguintes telas:
* **Pedido de Permissão**:
{{ :iws_notify:iws_not_mobile_01.png?350 |}}
* **Pedido de Permissão para o DESCONTOMAXIMO**:
{{ :iws_notify:iws_not_mobile_02.png?350 |}}
* **Solicitação da presença do gerente no caixa**:
{{ :iws_notify:iws_not_mobile_03.png?350 |}}