SOMA Tarifador WEB

Criado em: 22/08/2018

Requisitos

O Soma Tarifador WEB necessita de alguns requisitos básicos para a sua instalação.

Oracle Instant Client

O Oracle Instant Client é um conjunto gratuito de bibliotecas de fácil instalação que permite que os programas se conectem com instâncias do Oracle Database locais ou remotas. Faça o download dele e descompacte na raiz do Disco Local.
Exemplo de diretório:  C:\instantclient_11_2

Agora, terá que ser definido o instant_client na variável do sistema. Para isso acesse o Painel de Controle, pesquise por variáveis de ambiente do sistema, e clique em Editar as variáveis de ambiente do sistema.

Na janela que abrir, clique em Variáveis de Ambiente.

Em seguida clique duas vezes em Path.

No final de Valor da variável escreva ;C:\instantclient_11_2, assim como a imagem abaixo. Depois vá clicando em OK até fechar todas as janelas.


Link de Download

Visual C++

O WAMP requer o Visual C runtime (CRT). Muitas aplicações também tem esse requisito, de forma que alguns já devem estar instalado. Faça download desses pacotes respeitando a versão do seu sistema(32bits ou 64bits) e execute a instalação seguindo a mesma ordem.
Link para download


wkhtmltopdf

Ferramenta responsável pela geração de PDF. Faça o download e a instalação na raiz do Disco Local.
Exemplo de diretório: C:\wkhtmltopdf
Link para download em 32bits / Link para download em 64bits

ffmpeg

OBS¹: O ffmpeg só é necessário caso for utilizar o recurso de reproduz áudio da tela de Ligações Detalhadas utilizando o serviço S3 da AWS. Caso contrario, não é necessário realizar o download do ffmpeg.

OBS²: Além do ffmpeg também é necessário preencher os campos "AWS_REGION" , "AWS_KEY" , "AWS_SECRET" , "AWS_S3_BUCKET" na tabela CADPAR.

OBS³: Os passos abaixo são apenas para o Windows. Linux requer outro tipo de instalação.

Para utilizar o recurso de reproduzir áudio através da AWS S3 é necessário realizar o download do software ffmpeg.

Primeiro, acesse o site https://www.gyan.dev/ffmpeg/builds/ , encontre a release, e clique no segundo link para iniciar o download. 


Em seguida, abra o arquivo .zip baixado e vá abrindo as pastas até encontrar o executável ffmpeg.exe 

Por ultimo, arraste o arquivo ffmpeg.exe para dentro da pasta raiz do Soma Tarifador Web.

Node.js

O somaweb, utiliza diversos pacotes JavaScript do npm (Node Package Manager). O npm por consequência, é bastante utilizado, seja para executar o comando de build do projeto através dos npm scripts ou para controlar essas dependências. Para ter acesso ao npm, é necessário a instalação do Node.js na versão LTS (Long-term support).
Link para download

Composer

Como o backend do somaweb é feito em PHP, precisamos do gerenciador de pacotes Composer para o gerenciamento de dependências, bem como para a geração do arquivo de autoload utilizado no projeto. Faça o download e a instalação do Composer para seguir adiante.
Link para download

Instalação

Instalando o WAMP

Em seguida faça o download e a instalação padrão do WAMP - Link de Download
Depois de ter instalado o WAMP, execute ele e espere até que o ícone fique verde.

Instalando o OCI8 (ORACLE)

Após o ícone do WAMP estiver verde, clique nele com o botão esquerdo do mouse e clique em "Localhost". 

Irá abrir uma página no seu navegador, clique em phpinfo()

Agora você terá que analisar 4 fatores:
- Versão do PHP
- Compilador
- Arquitetura
- Thread Safety

No caso da imagem acima, a versão do PHP é 7.0.23, o compilador é MSVC14, arquitetura x64 e o thread safety está enabled.

Depois de ter analisado esses 4 fatores, será preciso ser feito a instalação do oci8 :
Link para o oci8

O primeiro passo é achar o arquivo que corresponde á sua versão do php, e para isso você terá que abrir link por link até encontrar. Vamos usar como exemplo a versão 7.0.23 do php.

Agora será necessario verificar se o arquivo possui os 4 fatores vistos antes(versão do php, compilador, arquitetura, thread safety).

1.Versão do PHP
2.Thread Safety(ts se estiver enabled) / Non Thread Safety(nts se estiver disabled)
3.Compilador
4.Arquitetura

Após achar o arquivo correto, basta clicar nele para iniciar o download. Para nosso exemplo, o arquivo php_oci8-2.1.8-7.0-ts-vc14-x64.zip será o ideal.

Abra o arquivo que foi baixado, dentro dele haverá 3 arquivos .dll, pegue esses arquivos e descompacte na pasta C:\wamp64\bin\php\phpX.X.XX\ext de acordo com a versão baixada. Irei utilizar a pasta C:\wamp64\bin\php\php7.0.23\ext, pois a versão do PHP que estou utilizando é a 7.0.23.

Agora será preciso alterar o php.ini, para isso, clique com o botão esquerdo do mouse em cima do icone do WAMP, vá no menu PHP e clique em php.ini

Use Ctrl + F para fazer uma busca no arquivo, busque por oci8 e adicione as linhas:

 extension=php_oci8.dll
 extension=php_oci8_11g.dll
 extension=php_oci8_12c.dll

Caso não encontre nenhum resultado por oci8, procure outras extension e adicione a baixo delas.

Salve e feche o arquivo.

Depois de ter feito tudo, reinicie o WAMP.

Para saber se o OCI8 foi ativado, basta acessar o Localhost e ver se o OCI8 está listado.

PostgreSQL

**APENAS CONEXÃO COM POSTGRESQL**

Será preciso ativar duas extensões para que a conexão com o PostgreSQL funcione, para isso, clique com o botão esquerdo do mouse em cima do icone do WAMP, vá no menu PHP, Extensões PHP, e ativa as extensões php_pgsql e php_pdo_pgsql.

Depois de ter feito isso, reinicie o WAMP.

Firebird

**APENAS CONEXÃO COM FIREBIRD**

Para que o Firebird possa funcionar corretamente, é necessário a ativação da extensão php_interbase. Então, clique com o botão esquerdo do mouse em cima do ícone do WAMP, vá no menu PHP, Extensões PHP, e clique em interbase.

Para evitar possíveis problemas, execute os seguintes procedimentos:

1º)  Clique com o botão esquerdo do mouse em cima do icone do WAMP, vá no menu PHP e clique em php.ini

Use Ctrl + F para fazer uma busca no arquivo, busque por interbase e verifique se a linha extension=php_interbase.dll, não apresenta um ";" no começo. Caso tenha, apague-o.

2°) Verifique se existe o arquivo php_interbase.dll dentro do caminho C:\wamp64\bin\php\phpX.X.X\ext\. Caso não tenha, faça o download e o mova para este mesmo caminho.


A próxima etapa, consiste em baixar o arquivo executável da versão 2.5 do Firebird (32bits), disponível para download em https://firebirdsql.org/en/firebird-2-5/ . Escolha a versão que é compatível com o seu sistema operacional, isto é, se você estiver utilizando o Linux baixe a versão para o Linux, e assim por diante.

Abaixo segue os executáveis de cada sistema operacional para agilizar o processo:

Com o arquivo executável em mãos, faça a instalação do Firebird. Durante o setup, você pode customizar as configurações, mas se preferir manter os padrões, apenas aperte "Next" até a instalação iniciar.

Para finalizar, verifique se no caminho C:\wamp64\bin\apache\apachex.x.xx\ existe os arquivos fbclient.dll e gds32.dll. Se não houver, baixe-os e os movam para este caminho.



Configuração WEB

Obtendo os arquivos fontes

Para obter os arquivos fontes do SOMA Tarifador WEB, é necessário baixar o Git na máquina em que está instalado o servidor WEB (Apache ou Nginx).

Após a instalação do Git, é necessário a geração de uma chave SSH para a identificação dessa máquina no Bitbucket. Como ao instalar o Git, temos junto um shell (Bash) capaz de entender comandos Linux, podemos aproveitá-lo para utilizar o utilitário ssh-keygen na geração da chave SSH. Para abrir o Bash, clique com o botão direito do mouse no sistema de arquivos, já estando posicionado no diretório onde os fontes devem ficar. Depois, clique na opção “Git Bash Here”.

Será aberto o seguinte shell (Bash):

Os passos a seguir devem ser executados no Bash:

  1. Execute o seguinte comando para iniciar a geração da chave SSH: $ ssh-keygen -t ed25519
  2. A próxima etapa, consiste em informar um caminho para gerar os arquivos da chave privada e da chave pública. Caso queira trocar o caminho padrão, informe o mesmo, caso ao contrário basta apertar (Enter). Segue a pergunta feita nessa etapa:

  1. A seguir, você precisa informar uma frase que servira como senha. Essa frase, será solicitado toda vez que essa chave SSH for utilizada, inclusive no momento do download dos fontes do SOMA Tarifador WEB. Para padronização da senha da chave SSH, utilize o nome do cliente se for composto; caso o nome do cliente não for composto, tente utilizar "Grupo", "Empresa" ou "Unidade" antes do nome cliente. Por exemplo, se o cliente se chamar SOMA, a senha poderia ser "Empresa SOMA", "Grupo SOMA" ou "Unidade SOMA"; Se o cliente se chamar SOMA Soluções a senha será "SOMA Soluções". Segue a pergunta feita nessa etapa:

  1. A próxima etapa, será a confirmação da frase escolhida como senha. Basta digitar novamente a senha escolhida na etapa anterior. Pergunta feita nessa etapa:

  1. Após a execução das instruções acima, uma chave SSH utilizando a criptografia ed25519, será criada. Agora, é necessário adicionar a parte pública da chave gerada no Bitbucket para liberação do download dos fontes. Para recuperar a parte pública da chave, consulte o caminho do arquivo id_ed25519.pub gerado como resultado das instruções acima:

  1. Com o caminho da parte pública da chave, execute o seguinte comando: $ cat caminho-chave-publica
  2. O resultado será um texto, parecido com o da imagem a abaixo. Esse texto é o que chamamos de chave pública. Você deve passar essa chave pública juntamente com o nome fantasia do cliente para o setor WEB, que por sua vez irá liberar o acesso para essa chave no Bitbucket.

Após a liberação da chave SSH no Bitbucket, posicionado dentro do diretório onde os arquivos fontes devem ficar, execute o comando:

$ git clone [email protected]:programacao-soma/soma-tarifador-web.git somaweb

Será solicitado a frase utilizada como senha da chave SSH gerada nas etapas anteriores. Informe corretamente e aguarde o Git clonar o repositório (fazer o download dos arquivos fontes). Ao terminar, você terá a seguinte saída:

Configurando o MySQL

O banco MySQL, é utilizado para salvar os dados de conexão com a empresa principal do cliente, vinculando uma URL aos mesmos. Também é onde ficam salvas algumas preferências e informações dos usuários.

Para criar o banco MySQL do somaweb, acesse o phpmyadmin, digitando o IP da máquina ou localhost na URL.
Exemplo: http://localhost/phpmyadmin

O phpmyadmin, é uma ferramenta que vem junto a instalação do WAMP ou XAMPP feita para gerenciar bancos MySQL. Se na máquina possuir outra ferramenta capaz de realizar esse propósito, você não é obrigado a utilizar o phpmyadmin

Crie o banco soma_tarifador e importe o arquivo localizado na pasta database/database-dump.sql

Após ter feito a importação, abra o arquivo que se encontra na pasta application/config/database.php e altere os parâmetros para a conexão do banco de dados.

O hostname é o IP que se encontra o MySQL. Caso seja na mesma máquina que será configurada o somaweb, somente colocar localhost.
O username (usuário) é o usuário que será usado pelo MySQL, por padrão é root.
A password (senha) é a senha que será usado pelo MySQL, por padrão não tem, ou seja, poderá deixar em branco.
O database é o nome do banco de dados do MySQL, por padrão será soma_tarifador.

Construindo o projeto

Para construir o projeto, é necessário que alguns arquivos de configurações estejam nos locais adequados. Os arquivos a seguir, estarão no projeto com um sufixo "-example" compondo o seu nome, é necessário remover o sufixo do nome do arquivo e configurá-los.

Após os arquivos de configuração estiverem configurados corretamente, basta executar o seguinte comando na raiz do projeto: $ npm run build

E-mail para relatórios

A configuração para envio de e-mail fica no arquivo application/config/email.php

Outras Configurações

Outras configuração para envio de e-mail e diretório para geração de PDF se encontra no arquivo application/config/constants.php

Configuração Tarifador

Para que o Soma Tarifador Web funcione, você deverá alterar alguns campos nas tabelas do Banco de Dados Soma Tarifador do cliente.

Empresa

Na tabela empresa, coluna TIPO_CONEXAO, colocar o tipo de banco que o cliente utiliza, no caso, definimos o valor como ORACLE.

Operador

Na tabela CADOPE, na coluna AO_ACESSO_TOTAL_WEB, colocar valor S para usuários que irá ter acesso total ao sistema e N para usuários comuns.

Após ter realizado essa definição de acesso, ainda na tabela CADOPE, na coluna SENHA_WEB, a senha irá ser criptografada com o hash md5. As senhas que são 123 por exemplo, agora terá que colocar 202cb962ac59075b964b07152d234b70, para outras opções de senha, irá ter que criptografar. A criptografia pode ser realizada nesse site, onde você colocará a senha normalmente e irá retornar a mesma criptografada. Também terá a opção de usar uma procedure no Oracle para criar a senha criptografada, só criar essa procedure:


CREATE OR REPLACE FUNCTION md5 (valor VARCHAR) RETURN VARCHAR2

IS

v_input VARCHAR2(2000) := valor;

hexkey VARCHAR2(32) := NULL;

BEGIN

hexkey := RAWTOHEX(DBMS_OBFUSCATION_TOOLKIT.md5(input => UTL_RAW.cast_to_raw(v_input)));

RETURN NVL(LOWER(hexkey),'');

END;


Após compilar, poderá ser feito um teste para ver o funcionamento com o seguinte SQL:


SELECT md5('123') FROM dual;

Administração

Para configurar a empresa que será utilizado no Soma Tarifador Web acesse a url (http://ipdamaquina/somaweb/admin) e faça o login.

Usuário: [email protected]
Senha: tarifador

Cadastro de Empresa

Após realizar o acesso clique no botão "Buscar" e em seguida clique no botão "Nova Empresa". Preencha todos os campos relacionados a conexão com o Banco de Dados do cliente Soma Tarifador. O campo chamado “Endereço da página (URL)” é o endereço que será utilizado para acesso ao Soma Tarifador Web.
Exemplo:  “http://ipdamaquina/somaweb/” .

1

Acessar todos os PCs da empresa e verificar se o sistema está instalado e atualizado, com acessos em ordem;

2

Atualização do cadastro dos produtos: O cadastro de produto no Soma não está atualizado – portanto, vamos passar uma planilha de como está no Soma para que o Roger compare com seu cadastro de produtos real. Se houver necessidade de cadastrar novos produtos, o Rafael vai treinar o cliente a cadastrar os produtos manualmente e também a importar através da planilha do Excel.

3

Ao retornar para empresa no final da tarde, os vendedores apresentarão de volta os cupons das novas vendas e eventualmente os valores que recebeu das vendas anteriores – caso não tenha recebido as vendas, devolverá para a empresa os cupons dessas vendas não recebidas.

3

Ao retornar para empresa no final da tarde, os vendedores apresentarão de volta os cupons das novas vendas e eventualmente os valores que recebeu das vendas anteriores – caso não tenha recebido as vendas, devolverá para a empresa os cupons dessas vendas não recebidas.

3

Ao retornar para empresa no final da tarde, os vendedores apresentarão de volta os cupons das novas vendas e eventualmente os valores que recebeu das vendas anteriores – caso não tenha recebido as vendas, devolverá para a empresa os cupons dessas vendas não recebidas.

3

O cadastro dos produtos deverá ter atenção em dois pontos:

- Haverá uma tabela de preço “padrão” dos produtos;

- Cada cliente poderá ter preços diferenciados de alguns produtos, com base em critérios da própria empresa. Esse processo será gerido pelo Contrato.

Finalizando Instalação

Login

Depois de ter executado todos esses passos, basta acessar a página inicial do somaweb  (http://ipdamaquina/somaweb/) e fazer o login com o operador adm.

Por padrão o usuário e a senha é:
Usuário: adm
Senha: 123

Logo após ter feito o login, o dashboard do sistema será mostrado e isso significa que foi finalizado a configuração e instalação.

Análise do Sistema

Verificando Requisitos

Ao colocar /info no final do link é possível ir para uma página onde será exibido alguns requisitos do sistema, podendo assim verificar se está tudo correto.

OBS: dependendo da versão do sistema a tela pode existir ou não, e até mesmo apresentar informações diferentes.

Soluções de problemas

Acesso Bloqueado

Ao fazer o login, pode ocorrer que o usuário veja a tela de Acesso Bloqueado, isso significa que o acesso do cliente ao Soma Tarifador Web está bloqueado. 

Para liberar esse acesso, basta pedir para que o departamento responsável do Soma Tarifador WEB para liberar o acesso.

Erro oci8_connect/ocip_connect

Esse erro ocorre porque o PHP não reconheceu a instalação do oci8. Por favor, verifique novamente os passos do subtópico Instalando o OCI8.

Internal Server Error

Esse erro ocorre porque está faltando configuração no Apache.

Para arrumar esse erro, basta clicar com o botão esquerdo no WAMP e ir em Apache -> Módulos Apache e clicar em rewrite_module, feito isso reinicie o WAMP.

Wamp - ícone laranja

Clique com o botão direito do mouse em cima do ícone do wamp, vá no menu Ferramentas, e clique em Testar Porta 80.

Na janela que abrir, verifique se a porta 80 está sendo usada pelo IIS.

Se você usa o IIS para algo, então, clique com o botão direito do mouse no ícone do wamp, vá no menu Ferramentas, e clique em Use uma porta diferente de 80 e digite 8080 e clique em OK.

Se você não usa o IIS, então, aperte Windows + R para abrir o executar, em seguida escreva services.msc e clique em OK.

A seguir, procure por Serviço de publicação World Wide Web, clique duas vezes sobre ele, clique em parar, em Tipo de inicialização coloque como Desativado, aplique e salve.

Agora será preciso instalar o Apache, para isso, clique com o botão esquerdo do mouse no ícone do wamp, vá no menu Apache -> Opções do Serviço, e clique em Instalar Serviço.

Para finalizar, feche o wamp e abra novamente.

Erro ao cadastrar Empresa

Na tela de cadastro de empresa, caso estiver aparecendo uma tela igual ao da imagem a baixo, logo após clicar em cadastrar, pode ser que o OCI8 não esteja ativado. Então volte para o tópico Instalação - Instalando o OCI8, e refaça todos os passos.

Erro '403 Forbidden'

Antes de começar, clique com o botão direito do mouse no ícone do WAMP, vá no menu "Idioma" e verifique se o WAMP está em portuguese, caso não esteja, marque o idioma para portuguese.

Já com o WAMP em português, clique com o botão direito do mouse no ícone do WAMP, vá no menu Opções do Wamp e em seguida clique em Mostrar: Online / Offline.

Em seguida, clique com o botão esquerdo do mouse no ícone do WAMP, e clique em Colocar Online.

Depois de seguir esses passos, verifique se o erro ainda persiste. Caso o erro continuar, será preciso fazer mais um passo.

Clique com o botão esquerdo do mouse no ícone do WAMP, vá no menu Apache e clique em httpd-vhosts.conf

Você terá que criar um virtual host, para isso basta fazer uma copia do virtual host já existente, mas agora colocado o ip do computador e o diretório para o WAMP, de acordo com a imagem a baixo.

Salve e feche o arquivo.

Para finalizar, reinicie o WAMP.