Sistema Financeiro - Documentação Oficial

Sistema Financeiro

Documentação oficial da aplicação

Voltar para Documentações
Introdução

 

 

Deixar passar uma cobrança não é legal, ainda mais se você mantém uma hospedagem em algum cloud para seus clientes, e depende do recebimento para manter os serviços ativos!

Com essa aplicação, receitas e despesas nunca mais serão esquecidas ou passadas em branco. Além de registrar cobranças de seus clientes, você também pode registrar os gastos internos. 

Principais características da aplicação:

  • Cobranças recorrentes para assinaturas (boleto e cartão)
  • Envio de boletos automáticos antes do vencimento
  • Registro de receitas e despesas
  • Balanço para acompanhar seu financeiro
  • Anexo de comprovantes
  • Categorização de receitas e despesas
  • Gestão customizada para usuários e clientes, podendo criar Empresas e vincular vários usuários à mesma

Novidades da versão 1.3.0

Adicionado

  • Sub-módulo de integração com sistema EAD, onde o sistema financeiro lança registros extras quando um aluno é matriculado a um curso
  • Lançamento automático de receitas vindas do módulo EAD

Modificado

  • Removida obrigatoriedade de dados do cliente quando o lançamento não é via boleto bancário


Corrigido

  • Corrigido bug ao alterar o valor de um lançamento via modal, onde ao alterar o valor era "zerado"
Compatibilidade

É Garantido o bom funcionamento apenas em versões oficiais do WorkControl!

Esteja ciente que não podemos prever outras versões do WorkControl criadas e/ou disponibilizadas por você ou por outros profissionais! Caso tenha um WorkControl customizado e não tem conhecimento necessário para adaptação, você deve solicitar suporte para quem disponibilizou a customização para que possa instalar e usufruir essa aplicação!

  • WorkControl 3.1.4
Configurações Iniciais

Arquivo /_app/Config.inc.php (a partir da linha #112 do WC original).
Adicione somente o conteúdo em negrito no arquivo, conforme abaixo:

(...)
require 'Config/Config.inc.php';
require 'Config/Agency.inc.php';
require 'Config/Client.inc.php';
// SISTEMA FINANCEIRO
require 'Config/Custom.inc.php';


Importante
:
Caso você já tenha instalado alguma outra aplicação comprada aqui no meu market e o require para esse arquivo Custom.inc.php já existir, você não precisa (e não deve) chamá-lo novamente neste local... O que você precisa fazer é copiar o conteúdo do novo arquivo e mesclar com o conteúdo existente!

APP - Pastas e Arquivos

Para começar, precisamos copiar os arquivos para dentro do painel administrativo WorkControl. Siga a lista abaixo de arquivos e seu respectivo local de destino:

Nome da pasta ou arquivo Local de destino
/APP/Custom.inc.php BASE-DO-PROJETO/_app/Config/aqui
/APP/rr_Finance.ajax.php BASE-DO-PROJETO/admin/_ajax/aqui
/APP/rr_Clients.ajax.php BASE-DO-PROJETO/admin/_ajax/aqui
/APP/finan/ BASE-DO-PROJETO/admin/_siswc/aqui
/APP/clients/ BASE-DO-PROJETO/admin/_siswc/aqui
/APP/elements/ BASE-DO-PROJETO/admin/_tpl/aqui

* Caso a ultima pasta 'elements' já esteja na pasta, você pode substitui-la pela pasta mais atual

APP - Adicionando o menu

Para que possamos exibir a nova função no menu principal do WC é necessário uma alteração simples no arquivo wc_menu.php ... OU, se preferir, copie o arquivo 'wc_menu.php' que está dentro da pasta /APP

Arquivo /admin/_siswc/wc_menu.php
Adicione o conteúdo abaixo no arquivo:

<?php 

/**==================
 * SISTEMA FINANCEIRO
* Versão Atual: v1.3.0
* https://rodrichard.com.br/financeiro
* ====================================
/*/
if (APP_FINANCE && $Admin['user_level'] >= LEVEL_FINANCE):
$wc_fin_alerts = null; ?>
<li class="dashboard_nav_menu_li <?= strstr($getViewInput, 'finan/') ? 'dashboard_nav_menu_active' : ''; ?>"><a class="icon-coin-dollar" title="Ver Financeiro" href="dashboard.php?wc=finan/home">Financeiro <?= $wc_fin_alerts; ?></a>
<ul class="dashboard_nav_menu_sub">
<li class="dashboard_nav_menu_sub_li <?= ($getViewInput == 'finan/home' && !filter_input(INPUT_GET, "type", FILTER_DEFAULT)) ? 'dashboard_nav_menu_active' : ''; ?>"><a title="Ver Lançamentos" href="dashboard.php?wc=finan/home">&raquo; Ver Financeiro <?= $wc_fin_alerts; ?></a></li>
<li class="dashboard_nav_menu_sub_li <?= ($getViewInput == 'finan/home' && filter_input(INPUT_GET, "type", FILTER_DEFAULT) == 'rec') ? 'dashboard_nav_menu_active' : ''; ?>"><a title="Ver Lançamentos" href="dashboard.php?wc=finan/home&type=rec">&raquo; Receitas</a></li>
<li class="dashboard_nav_menu_sub_li <?= ($getViewInput == 'finan/home' && filter_input(INPUT_GET, "type", FILTER_DEFAULT) == 'des') ? 'dashboard_nav_menu_active' : ''; ?>"><a title="Ver Lançamentos" href="dashboard.php?wc=finan/home&type=des">&raquo; Despesas</a></li>
<li class="dashboard_nav_menu_sub_li <?= $getViewInput == 'finan/categories' || $getViewInput == 'finan/category' ? 'dashboard_nav_menu_active' : ''; ?>"><a title="Ver categorias cadastradas" href="dashboard.php?wc=finan/categories">&raquo; Categorias</a></li>
<?php if (FINANCE_INTEGRATION_EAD || FINANCE_INTEGRATION_ECOMMERCE): ?>
<li class="dashboard_nav_menu_sub_li <?= $getViewInput == 'finan/integrations' ? 'dashboard_nav_menu_active' : ''; ?>"><a title="Ver Integrações do Financeiro" href="dashboard.php?wc=finan/integrations">&raquo; Integrações</a></li>
<?php endif; ?>
</ul>
</li>
<li class="dashboard_nav_menu_li <?= strstr($getViewInput, 'finan/reports') ? 'dashboard_nav_menu_active' : ''; ?>"><a class="icon-stats-bars" title="Ver Relatórios do Financeiro" href="dashboard.php?wc=finan/reports">Relatórios Financ.</a></li>
<?php
endif;

/**=======================
* APP USUÁRIOS E CLIENTES
* Versão Atual: v1.0.0
* https://rodrichard.com.br/clientes
*===================================
/*/
if (APP_CLIENTS && $_SESSION['userLogin']['user_level'] >= LEVEL_CLIENTS): ?>
<li class="dashboard_nav_menu_li <?= strstr($getViewInput, 'clients') ? 'dashboard_nav_menu_active' : ''; ?>"><a class="icon-users" title="Usuários" href="dashboard.php?wc=clients/home">Usuários</a>
<ul class="dashboard_nav_menu_sub">
<li class="dashboard_nav_menu_sub_li <?= strstr($getViewInput, 'clients/home') ? 'dashboard_nav_menu_active' : ''; ?>"><a title="Ver Todos os Usuários" href="dashboard.php?wc=clients/home">» Usuários</a></li>
<li class="dashboard_nav_menu_sub_li <?= strstr($getViewInput, 'clients/update-users') ? 'dashboard_nav_menu_active' : ''; ?>"><a title="Novo Usuário" href="dashboard.php?wc=clients/update-users">» Novo Usuário</a></li>
<li class="dashboard_nav_menu_sub_li <?= strstr($getViewInput, 'clients/clients') ? 'dashboard_nav_menu_active' : ''; ?>"><a title="Ver Clientes" href="dashboard.php?wc=clients/clients">» Clientes</a></li>
</ul>
</li>
<?php
endif;
Cron Job e Recorrência

Para que o siistema possa fazer os lançamentos recorrentes, é preciso configurar a cronjob no servidor chamando o arquivo PHP responsável por fazer os lançamentos em segundo plano, sem que precise você botar a mão na massa!

Configurando Cron Job

Primeiramente, acesse seu cPanel. Faça login e vá até o menu "Cron Jobs":

Configurando Cron Job


Configurações

1) Na primeira opção chamada Common Settings você vai selecionar a opção "Once per minute"

2) No input chamado Command você vai preencher:

php /home/SEUPROJETO/public_html/admin/_siswc/finan/files/cronjob.php >/dev/null 2>&1

Lembre-se de substituir SEUPROJETO pela raiz do seu ambiente!

Toda vez que o servidor rodar esse arquivo PHP, fará uma verificação se há boletos em aberto para um usuário específico - e essa execução acontece apenas para registros Recorrentes (mensal, quinzenal, semestral e anual).

Por exemplo: Hoje é dia 1º de um mês qualquer, o sistema vai rodar a cron e verificar se os boletos dentro do intervalo configurado estão criados. Caso falte o boleto do mês atual (lembra que hoje é dia 1º) o sistema cria o boleto automaticamente no Gateway com a data de vencimento e valor configurado de acordo com o registro!

Caso todos os boletos estejam de acordo, o sistema não faz mais nada... Não tem problema a cron continuar rodando pois não há nenhuma execução acontecendo! 

IMPORTANTE: Essa cron deve ser configurada em um período curto de tempo, pois para que não haja sobrecarga, a cada execução é processado um registro apenas. Ou seja, um cadastro de cada vez. É recomendado selecionar o intervalo de 1 x 1 minuto!

Configurando Recorrências

A configuraçao de recorrência acontece dentro do arquivo _app/Config/Custom.inc.php na linha #19:

define("FINANCE_RECURRENT_PERIOD", 2);

Esse parâmetro controla o número de MESES em que o sistema cria automaticamente lançamentos recorrentes (contando com atual)

  • Se informar '0' (zero), o sistema mantém apenas o boleto do mês atual enquanto a cron é executada
  • Se informar um valor maior ou igual a '1' (um), o sistema entenderá que você quer um mês de "folga", e irá lançar o mês atual + a quantidade de meses que você informar

No caso acima, FINANCE_RECURRENT_PERIOD está configurado com o número dois. Ou seja, se estivermos e Janeiro, a cron fará o lançamento de Fevereiro e Março para nós, e toda vez que um novo mês virar, manterá os lançamentos obedecendo esse período

Dump de Tabelas

Precisamos fazer a importação das tabelas responsáveis pelo gerenciamento da sua aplicação. Para isso, utilize o seu SGBD padrão ou utilize o seu phpmyadmin

Na raiz da pasta baixada temos o arquivo sistema-financeiro_1.3.0.sql! Você deve importá-lo para dentro do banco de dados de sua aplicação!

Conexão com Gateways

Para que o sistema possa criar os boletos é necessária a conexão entre o sistema e os Gateways e bibliotecas externas. E para que isso seja possível, é uma regra que você informe seus dados de conexão, e assim o sistema consegue conversar com a API do Gateway e fazer todas as ações pra você, sem que precise criar, editar e/ou excluir nada manualmente!

Hoje, o sistema conta apenas com geração de boletos via Gerencianet. Mas, em um futuro bem próximo outros Gateways serão implementados. Julgue o Gerencianet como a porta de entrada e validação... E aguarde por novas conexões de Gateways e opções nativas de geração de boletos direto com os Bancos (em breve).

Configurando o Gerencianet

Siga os passos abaixo para configurar o ambiente. Caso já tenha uma API configurada, você pode pular para o Passo 2


Passo 1)

É necesário criar uma API Gerencianet. Você pode usar uma API que você já tenha, ou pode seguir os passos abaixo para criar uma nova. Caso queira usar uma API já existente, pule para o Passo 2

  • CRIAR API - https://sistema.gerencianet.com.br/api/minhas-aplicacoes/nova-aplicacao. 
  • 1 - Insira o nome da sua nova API (livre e sem espaços e sem caracteres especiais)
  • 2 - Mantenha a opção "Modo de compatibilidade" como DESATIVADO e clique no botão "Criar nova aplicação"
  • 3 - Clique em "Minhas Aplicações" e em seguida na sua API
  • 4 - Na tela teremos três abas: 'Produção' - 'Desenvolvimento' - 'Playground'.
  • 5 - Você irá selecionar a aba correspondente e irá preencher os dados de acordo com os ambientes abaixo:


Passo 2)

Agora que temos a API, vamos informá-la no sistema: Você precisa abrir o arquivo _app/Config/Custom.inc.php a partir da linha #47 e informar os dados da sua API:

(...) 

define('FINANCE_GTW_GERENCIANET_ACCOUNT_ID', ''); // Seu ID Identificador de Conta. Disponível em (https://sistema.gerencianet.com.br/minha-conta/validacoes)
define('FINANCE_GTW_GERENCIANET_NOTIFICATION_EMAIL', ''); //E-mail para receber as notificações do sistema

// [Desenvolvimento] AMBIENTE DE TESTES
define('FINANCE_GTW_GERENCIANET_SANDBOX_CLIENT_ID', ''); // Client ID
define('FINANCE_GTW_GERENCIANET_SANDBOX_CLIENT_SECRET', ''); // Client Secret

// [Produção] AMBIENTE REAL
define('FINANCE_GTW_GERENCIANET_CLIENT_ID', ''); // Client ID
define('FINANCE_GTW_GERENCIANET_CLIENT_SECRET', ''); // Client Secret
O toque final

Agora, depois de tudo feito é necessário dar um reset dentro da área administrativa do WorkControl.
Para fazer isso basta ir até Menu > Configurações > Configurações Gerais e clicar no botão Resetar Configurações.

Tudo pronto! Se tudo foi feito como descrito neste tutorial sua Aplicação deve estar funcionando corretamente.


Changelog de versões

  • •  v1.3.0
  • •  v1.2.0
  • •  v1.1.1
  • •  v1.1.0
  • •  v1.0.0

Assuntos desta APP

    Ainda não há assuntos relacionados a essa aplicação