diff --git a/CHANGELOG.md b/CHANGELOG.md
index 26ade355..60d6c0c1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,28 @@ Todas as alterações serão documentadas neste arquivo
Formato baseado em [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
e [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [4.39.0] - 2022-10-28
+### Fixed
+
+- Correções em editarVenda.php corrigido erro para permitir adicionar desconto em venda com valor superior a mil reais, erro de mascará, consequentemente foi atualizado imprimirVenda.php e imprimirVendaTermica.php para tratar o mesmo problema. [@Rodrigo-Paz](https://github.com/Rodrigo-Paz)
+- Correções no relatorioFinanceiro.php valor total que não estava informado assim como o valor total do relatorio visto que nao puxava vendas sem desconto, foi corrigido e adicionado simbolo de % no lugar de R$ para o campo desconto. [@Rodrigo-Paz](https://github.com/Rodrigo-Paz)
+
+### Changed
+
+- Trocado link parta envio via Whatsapp, afim de abranger usuários do Whastapp desktop e Whatsapp mobile, já que o atual web.whatsapp.com não faz o redirecionamento para os apps citados anteriormente. Essa alteração não afeta usuários do Whatsapp Web. [@lukasabino](https://github.com/lukasabino)
+
+## [4.38.0] - 2022-04-29
+
+### Fixed
+
+- Correções gerais de bugs. [@Wilmerson](https://github.com/willph)
+
+### Added
+
+- Desconto em OS e Vendas. [@Wilmerson](https://github.com/willph)
+- Financeiro (parcelamento, desconto e melhorias). [@luizrn](https://github.com/luizrn)
+- Documentação de cronjobs no Windows. [@luizrn](https://github.com/luizrn)
+
## [4.37.0] - 2022-03-27
### Fixed
diff --git a/Cronjobs no Windows para enviar os e-emails.md b/Cronjobs no Windows para enviar os e-emails.md
new file mode 100644
index 00000000..a006225c
--- /dev/null
+++ b/Cronjobs no Windows para enviar os e-emails.md
@@ -0,0 +1,99 @@
+Esse tutorial ensinará a criar cronjobs para envio de e-mails do sistema Map-os utlizando um programa do próprio Windows.
+
+1- Abra o menu de pesquisa do Windows e digite 'Agendador de Tarefas' conforme imagem:
+
+![07mDyiE](https://user-images.githubusercontent.com/10822915/158883875-d688412a-a331-408f-8f17-856f0731edf3.png)
+
+
+
+
+
+
+2- Na janela que se abre, clique em 'Criar Tarefa' ou nas guias em cima 'Ação > Criar Tarefa':
+
+![iFptNra](https://user-images.githubusercontent.com/10822915/158883952-63244787-ec9c-4789-91be-c847715f2e14.png)
+
+
+
+
+
+
+3- Coloque um nome para a tarefa exemplo 'Enviar e-mails map-os' (para o processo rodar em backgraund e não ficar encomodando aparecendo a tela de cmd executando o comando a cada vez no intervalo de tempo informado, marque a opção 'Executar estando o usuário conectado ou não', esta opção irá exigir seus dados de login do Windows):
+
+![cQxX11L](https://user-images.githubusercontent.com/10822915/158884024-a0f113a9-952c-4721-9f5a-d3af29b03d48.png)
+
+
+
+
+
+
+4- Vá para a guia 'Disparadores' depois 'Novo...':
+
+![E7mqa66](https://user-images.githubusercontent.com/10822915/158884109-3d7ff889-e2a2-4426-a4b9-5172978295fe.png)
+
+
+
+
+
+
+5- Deixei conforme a imagem, 'Iniciar a tarafa: Em Agendamento', 'Uma vez', marque a opção 'Repetir a tarefa a cada (coloque o tempo que deseja)', e na opção ao lado 'por um período de tempo de: Indefinidamente' e clique em 'Ok':
+
+![bNxPRpx](https://user-images.githubusercontent.com/10822915/158884165-be3fd21f-42fc-49a4-addc-84b841bfc451.png)
+
+
+
+
+
+
+6- Vá para a guia 'Ações' e clique em 'Novo...':
+
+![N4uggns](https://user-images.githubusercontent.com/10822915/158884203-00a3da70-359a-4767-9167-86ec3728f021.png)
+
+
+
+
+
+
+7- Nesta janela, deixa a opção selecionada 'Iniciar um programa',
+e em 'Programa/Script' coloque o caminho do seu php.exe, se for Xampp o caminho padrão é 'C:\xampp\php\php.exe',
+em baixo em 'Adicione argumentos' coloque o comando do map-os para processar a fila de e-mails 'index.php email/process' na próxima opção 'Iniciar em' coloque o diretório onde está a pasta do seu map-os desta forma (Para o Xampp) 'C:\xampp\htdocs\mapos' e clique em 'Ok':
+
+![Oi07I9J](https://user-images.githubusercontent.com/10822915/158884265-64539007-95a2-4e71-b80a-7d4ae14bee49.png)
+
+
+
+
+
+
+8- Feito os passos acima, clique em 'OK' e a tarefa será criada (Se for solicitado dados de login do windows siga o passo 9, se não pule para o 10):
+
+![2JBbi0Q](https://user-images.githubusercontent.com/10822915/158884324-4d92ef4e-b849-481e-bb29-5b6fbcdced30.png)
+
+
+
+
+
+
+9- Se você marcou a opção do passo 3 na primeira guia 'Geral' a opção 'Executar estando o usuário conectado ou não', ao clicar em 'Ok' vai ser solicitado uma credencial de login do Windows, selecione qualquer uma da lista ou o seu usuário do windows e preencha a senha de login (Talves tenha na lista alguma opção que não exija senha),
+se mesmo assim informando os dados certos de login nao der certo e ficar dando mensagem de erro, você pode voltar na primeira guia 'Geral' e desmarcar a opção 'Executar estando o usuário conectado ou não', lembrando que está opção é somente para quando a tarefa for executada nao ficar aparecendo uma janela de cmd por uns 3 segundos executando o comando
+(Se mesmo seguindo tudo do passo 9 nao aceitar o usuário, você pode clicar na opção 'Alterar usuário ou grupo', na janela que abre, no último campo escreva seu nome de USer ou 'sistema' e depois em verificar nomes ):
+
+![T5XSXql](https://user-images.githubusercontent.com/10822915/158884385-cd5ed389-07c1-438e-9704-424f99c325ca.png)
+
+
+
+
+
+
+10- Para testar se funcionou, não precisa esperar o intervalo de tempo selecionado, basta clicar com o botão direito na tarefa e 'Executar', pode tambem selecionar com um clique a tarefa e ao lado nas opções em 'Executar':
+
+![iEY2U45](https://user-images.githubusercontent.com/10822915/158884432-ecf5efda-1974-4c3b-be1f-1e8ec8825e9e.png)
+
+
+
+
+
+
+11- Para conferir se executou a fila, vá em seu Map-os 'Configurações' e em 'Emails' e veja o 'Status', se tiver com o status 'Falhou' possivelmente o problema é na sua configuração smtp, para saber se executou ou não basta nao estar em 'Pendente', lembrando que o email em Emitente em configurações precisa estar o mesmo no smtp (Para problemas com configuração de smtp procure por Issues abertas ou fechadas exemplo 'envio de email smtp')
+
+Por fim, você pode criar outra tarefa para o comando 'index.php email/retry', que serve para reenviar e-mails com erros ou não enviados, basta seguir os mesmos passos, somente alterando conforme o passo 7 a opção 'Adicione argumentos'
diff --git a/README.md b/README.md
index df30c208..697719f8 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,13 @@
![MapOS](https://raw.githubusercontent.com/RamonSilva20/mapos/master/assets/img/logo.png)
-![version](https://img.shields.io/badge/version-4.37.0-blue.svg?longCache=true&style=flat-square)
+![version](https://img.shields.io/badge/version-4.39.0-blue.svg?longCache=true&style=flat-square)
![license](https://img.shields.io/badge/license-MIT-green.svg?longCache=true&style=flat-square)
![theme](https://img.shields.io/badge/theme-Matrix--Admin-lightgrey.svg?longCache=true&style=flat-square)
![issues](https://img.shields.io/github/issues/RamonSilva20/mapos.svg?longCache=true&style=flat-square)
![contributors](https://img.shields.io/github/contributors/RamonSilva20/mapos.svg?longCache=true&style=flat-square)
+### Contato: contato@mapos.com.br
### [Feedback](https://github.com/RamonSilva20/mapos/discussions) - Vote ou sugira melhorias
![Map-OS](https://raw.githubusercontent.com/RamonSilva20/mapos/master/docs/dashboard.png)
@@ -91,7 +92,7 @@ Para listar todos os comandos de terminal disponíveis, basta executar o comando
* [filp/whoops](https://github.com/filp/whoops)
### Requerimentos
-* PHP >= 7.3
+* PHP >= 8.1
* MySQL
* Composer
@@ -108,8 +109,7 @@ Doações podem ser realizadas nos links:
|:-:|:-:|:-:|:-:|:-:|
| [
Daniel Bastos](https://github.com/daniellbastos) | [
drelldeveloper](https://github.com/drelldeveloper) | [
Samuel Fontebasso](https://github.com/fontebasso) | [
marllonferreira](https://github.com/marllonferreira) | [
Rodrigo Ribeiro](https://github.com/rodrigo3d)
| [
Wilmerson](https://github.com/willph) | [
Thiago Rodrigues](https://github.com/bulfaitelo) | [
Marcos Pereira](https://github.com/mvnp)| [
Marcos](https://github.com/marcotuliomtb)| [
ZanzouShio](https://github.com/ZanzouShio)
-| [
Djunio](https://github.com/seitbnao) | [
Milson Elias](https://github.com/MilsonElias) |
-
+| [
Djunio](https://github.com/seitbnao) | [
Milson Elias](https://github.com/MilsonElias) | [
Rodrigo Paz](https://github.com/Rodrigo-Paz) | [
Luka Sabino](https://github.com/lukasabino)
## Autor
| [
Ramon Silva](https://github.com/RamonSilva20) |
diff --git a/application/config/config.php b/application/config/config.php
index 96498ae7..845ad6b4 100644
--- a/application/config/config.php
+++ b/application/config/config.php
@@ -4,7 +4,7 @@
/**
* App current version
*/
-$config['app_version'] = '4.37.0';
+$config['app_version'] = '4.39.0';
/**
* Nome do sistema
@@ -16,6 +16,10 @@
*/
$config['app_subname'] = 'Sistema de Controle de Ordens de Serviço';
+/**
+ * Definição da hora local.
+ */
+date_default_timezone_set('America/Sao_Paulo');
/*
|--------------------------------------------------------------------------
@@ -496,9 +500,3 @@
| Array: array('10.0.1.200', '192.168.5.0/24')
*/
$config['proxy_ips'] = '';
-
-
-
-$config['modules_locations'] = [
- APPPATH.'modules/' => '../modules/',
-];
diff --git a/application/config/form_validation.php b/application/config/form_validation.php
index 997e4a8c..904719c9 100644
--- a/application/config/form_validation.php
+++ b/application/config/form_validation.php
@@ -10,7 +10,7 @@
[
'field' => 'documento',
'label' => 'CPF/CNPJ',
- 'rules' => 'trim|verific_cpf_cnpj|unique[clientes.documento.' . $this->uri->segment(3) . '.idClientes]',
+ 'rules' => 'trim|verific_cpf_cnpj|unique[clientes.documento.' . get_instance()->uri->segment(3) . '.idClientes]',
'errors' => [
'verific_cpf_cnpj' => "O campo %s não é um CPF ou CNPJ válido."
],
diff --git a/application/config/payment_gateways.php b/application/config/payment_gateways.php
index 0632597a..b085e052 100644
--- a/application/config/payment_gateways.php
+++ b/application/config/payment_gateways.php
@@ -4,7 +4,7 @@
$config['payment_gateways'] = [
'GerencianetSdk' => [
- 'name' => 'GerenciaNet',
+ 'name' => 'GerenciaNet (Efí)',
'library_name' => 'GerencianetSdk',
'production' => false,
'credentials' => [
diff --git a/application/controllers/Arquivos.php b/application/controllers/Arquivos.php
index a96b7c24..10073fa1 100644
--- a/application/controllers/Arquivos.php
+++ b/application/controllers/Arquivos.php
@@ -4,7 +4,6 @@
class Arquivos extends MY_Controller
{
-
/**
* author: Ramon Silva
* email: silva018-mg@yahoo.com.br
diff --git a/application/controllers/Clientes.php b/application/controllers/Clientes.php
index 44aae81d..8d4adee0 100644
--- a/application/controllers/Clientes.php
+++ b/application/controllers/Clientes.php
@@ -4,7 +4,6 @@
class Clientes extends MY_Controller
{
-
/**
* author: Ramon Silva
* email: silva018-mg@yahoo.com.br
@@ -55,12 +54,21 @@ public function adicionar()
$senhaCliente = $this->input->post('senha') ? $this->input->post('senha') : preg_replace('/[^\p{L}\p{N}\s]/', '', set_value('documento'));
+ $cpf_cnpj = preg_replace('/[^\p{L}\p{N}\s]/', '', set_value('documento'));
+
+ if (strlen($cpf_cnpj) == 11) {
+ $pessoa_fisica = true;
+ } else {
+ $pessoa_fisica = false;
+ }
+
if ($this->form_validation->run('clientes') == false) {
$this->data['custom_error'] = (validation_errors() ? '
' . validation_errors() . '
' : false);
} else {
$data = [
'nomeCliente' => set_value('nomeCliente'),
'contato' => set_value('contato'),
+ 'pessoa_fisica' => $pessoa_fisica,
'documento' => set_value('documento'),
'telefone' => set_value('telefone'),
'celular' => set_value('celular'),
diff --git a/application/controllers/Cobrancas.php b/application/controllers/Cobrancas.php
index 03a23e0c..9467d62e 100644
--- a/application/controllers/Cobrancas.php
+++ b/application/controllers/Cobrancas.php
@@ -4,7 +4,6 @@
class Cobrancas extends MY_Controller
{
-
/**
* author: Ramon Silva
* email: silva018-mg@yahoo.com.br
diff --git a/application/controllers/Financeiro.php b/application/controllers/Financeiro.php
index 2891818b..0006acda 100644
--- a/application/controllers/Financeiro.php
+++ b/application/controllers/Financeiro.php
@@ -4,7 +4,6 @@
class Financeiro extends MY_Controller
{
-
/**
* author: Ramon Silva
* email: silva018-mg@yahoo.com.br
@@ -37,9 +36,12 @@ public function lancamentos()
$cliente = $this->input->get('cliente');
$tipo = $this->input->get('tipo');
$status = $this->input->get('status');
+ $valor_desconto = $this->input->get('valor_desconto');
+ $desconto = $this->input->get('desconto');
+
$periodo = $this->input->get('periodo');
- if (! empty($vencimento_de)) {
+ if (!empty($vencimento_de)) {
$date = DateTime::createFromFormat('d/m/Y', $vencimento_de)->format('Y-m-d');
if (empty($where)) {
@@ -49,7 +51,7 @@ public function lancamentos()
}
}
- if (! empty($vencimento_ate)) {
+ if (!empty($vencimento_ate)) {
$date = DateTime::createFromFormat('d/m/Y', $vencimento_ate)->format('Y-m-d');
if (empty($where)) {
@@ -67,15 +69,15 @@ public function lancamentos()
}
}
- if (! empty($cliente)) {
+ if (!empty($cliente)) {
if (empty($where)) {
- $where = "cliente_fornecedor LIKE '%${cliente}%'";
+ $where = "cliente_fornecedor LIKE '%{$cliente}%'";
} else {
- $where .= " AND cliente_fornecedor LIKE '%${cliente}%'";
+ $where .= " AND cliente_fornecedor LIKE '%{$cliente}%'";
}
}
- if (! empty($tipo)) {
+ if (!empty($tipo)) {
if (empty($where)) {
$where = "tipo = '$tipo'";
} else {
@@ -94,6 +96,8 @@ public function lancamentos()
$this->data['results'] = $this->financeiro_model->get('lancamentos', '*', $where, $this->data['configuration']['per_page'], $this->input->get('per_page'));
$this->data['totals'] = $this->financeiro_model->getTotals($where);
+ $this->data['estatisticas_financeiro'] = $this->financeiro_model->getEstatisticasFinanceiro2();
+
$this->data['view'] = 'financeiro/lancamentos';
return $this->layout();
}
@@ -132,6 +136,22 @@ public function adicionarReceita()
$valor = $this->input->post('valor');
+ //Se o valor_desconto for vázio, seta a variavel com valor 0, se não for vazio recebe o valor de desconto
+
+ $valor_desconto = floatval($this->input->post('valor_desconto'));
+
+ $desconto = $valor_desconto;
+ //cria variavel para pegar o valor total ja sem o desconto e soma com o desconto
+ $total_sem_desconto = $valor + $valor_desconto;
+ $valor = $total_sem_desconto;
+ //cria variavel para pegar o valor total ja com o desconto e diminui com o desconto
+ $total_com_desconto = $valor - $valor_desconto;
+ $valor_desconto = $total_com_desconto;
+
+ if (!validate_money($valor_desconto)) {
+ $valor_desconto = str_replace([',', '.'], ['', ''], $valor_desconto);
+ }
+
if (!validate_money($valor)) {
$valor = str_replace([',', '.'], ['', ''], $valor);
}
@@ -139,6 +159,9 @@ public function adicionarReceita()
$data = [
'descricao' => set_value('descricao'),
'valor' => $valor,
+ 'valor_desconto' => $valor_desconto,
+ 'desconto' => $desconto,
+ 'tipo_desconto' => 'real',
'data_vencimento' => $vencimento,
'data_pagamento' => $recebimento != null ? $recebimento : date('Y-m-d'),
'baixado' => $this->input->post('recebido') ?: 0,
@@ -146,7 +169,7 @@ public function adicionarReceita()
'forma_pgto' => $this->input->post('formaPgto'),
'tipo' => set_value('tipo'),
'observacoes' => set_value('observacoes'),
- 'usuarios_id' => $this->session->userdata('id'),
+ 'usuarios_id' => $this->session->userdata('id_admin'),
];
if (set_value('idFornecedor')) {
@@ -155,16 +178,204 @@ public function adicionarReceita()
if (set_value('idCliente')) {
$data['clientes_id'] = set_value('idCliente');
}
+
+
if ($this->financeiro_model->add('lancamentos', $data) == true) {
- $this->session->set_flashdata('success', 'Receita adicionada com sucesso!');
- log_info('Adicionou uma receita');
+ $this->session->set_flashdata('success', 'Lançamento adicionado com sucesso!');
+ log_info('Adicionou um lançamento em Financeiro');
redirect($urlAtual);
} else {
$this->data['custom_error'] = '';
}
}
- $this->session->set_flashdata('error', 'Ocorreu um erro ao tentar adicionar receita.');
+ $this->session->set_flashdata('error', 'Ocorreu um erro ao tentar adicionar o lançamento.');
+ redirect($urlAtual);
+ }
+
+ public function adicionarReceita_parc()
+ {
+ //$this->load->library('form_validation');
+ //$this->data['custom_error'] = '';
+ $urlAtual = $this->input->post('urlAtual');
+ if (!$this->permission->checkPermission($this->session->userdata('permissao'), 'aLancamento')) {
+ $this->session->set_flashdata('error', 'Você não tem permissão para adicionar lançamentos.');
+ redirect(base_url());
+ } else {
+
+ $valor_desconto = $this->input->post('desconto_parc') ?: 0;
+ $entrada = $this->input->post('entrada') ?: 0;
+ $valor_desconto = str_replace(',', '.', $valor_desconto);
+
+ $qtdparcelas_parc = $this->input->post('qtdparcelas_parc') ?: 1; //4x
+ $valor_parc = $this->input->post('valor_parc'); //450
+ $valorparcelas = ($valor_parc - $entrada) / $qtdparcelas_parc;
+
+ $desconto_por_parcela = $valor_desconto > 0 ? ($valor_desconto / $qtdparcelas_parc) : 0;
+
+ //para por na descrição, valor total sem desconto e sem parcelamento
+ $descricao_parc_valor = $valor_parc + $valor_desconto;
+
+ //cria variavel para pegar o valor total ja com o desconto e diminui com o desconto
+ $total_com_desconto = $valorparcelas + $desconto_por_parcela;
+
+
+ if ($entrada >= $valor_parc) {
+ $this->session->set_flashdata('error', 'O valor da entrada não pode ser maior ou igual ao valor total da receita/Despesa!');
+ redirect($urlAtual);
+ }
+
+ $dia_pgto = $this->input->post('dia_pgto');
+ $dia_base_pgto = $this->input->post('dia_base_pgto');
+ $recebimento = $this->input->post('recebimento');
+
+ try {
+ $dia_pgto = explode('/', $dia_pgto);
+ $dia_pgto = $dia_pgto[2] . '-' . $dia_pgto[1] . '-' . $dia_pgto[0];
+
+ $dia_base_pgto = explode('/', $dia_base_pgto);
+ $dia_base_pgto = $dia_base_pgto[2] . '-' . $dia_base_pgto[1] . '-' . $dia_base_pgto[0];
+ } catch (Exception $e) {
+ $dia_pgto = date('Y/m/d');
+ $dia_base_pgto = date('Y/m/d');
+ }
+
+ if ($recebimento) {
+ try {
+
+ $recebimento = explode('/', $recebimento);
+ $recebimento = $recebimento[2] . '-' . $recebimento[1] . '-' . $recebimento[0];
+ } catch (Exception) {
+ }
+ }
+
+ $comissao = $this->input->post('comissao');
+
+ if (!validate_money($comissao)) {
+ $comissao = str_replace([',', '.'], ['', ''], $comissao);
+ }
+
+ if ($entrada == 0) {
+ $loops = 1;
+ while ($loops <= $qtdparcelas_parc) {
+ $myDateTimeISO = $dia_base_pgto;
+ $loopsmes = $loops - 1;
+ $addThese = $loopsmes;
+ $myDateTime = new DateTime($myDateTimeISO);
+ $myDayOfMonth = date_format($myDateTime, 'j');
+ date_modify($myDateTime, "+$addThese months");
+
+ //Descobre se o dia do mês caiu
+ $myNewDayOfMonth = date_format($myDateTime, 'j');
+ if ($myDayOfMonth > 28 && $myNewDayOfMonth < 4) {
+ //Em caso afirmativo, corrija voltando o número de dias que transbordaram
+ date_modify($myDateTime, "-$myNewDayOfMonth days");
+ }
+
+ $data = [
+ 'descricao' => $this->input->post('descricao_parc') . ' - Parcelamento de R$' . $descricao_parc_valor . ' [' . $loops . '/' . $qtdparcelas_parc . ']',
+ 'valor' => $total_com_desconto,
+ 'desconto' => $desconto_por_parcela,
+ 'tipo_desconto' => 'real',
+ 'valor_desconto' => $valorparcelas,
+ 'data_vencimento' => date_format($myDateTime, "Y-m-d"),
+ 'data_pagamento' => $recebimento ?: date_format($myDateTime, "Y-m-d"),
+ 'baixado' => 0,
+ 'cliente_fornecedor' => $this->input->post('cliente_parc'),
+ 'observacoes' => $this->input->post('observacoes_parc'),
+ 'forma_pgto' => $this->input->post('formaPgto_parc'),
+ 'tipo' => $this->input->post('tipo_parc'),
+ 'usuarios_id' => $this->session->userdata('id_admin'),
+
+ ];
+
+ if ($this->financeiro_model->add('lancamentos', $data) == true) {
+ $this->session->set_flashdata('success', 'Lançamento adicionado com sucesso!');
+ log_info('Adicionou um lançamento em Financeiro');
+ } else {
+ $this->data['custom_error'] = '';
+ }
+ $loops++;
+ }
+
+ redirect($urlAtual);
+ } else {
+ $desconto_entrada = "0";
+ $data1 = [
+ 'descricao' => $this->input->post('descricao_parc') . ' - Entrada do parc. de R$' . $descricao_parc_valor . ' ',
+ 'valor' => $entrada,
+ 'desconto' => $desconto_entrada,
+ 'valor_desconto' => $entrada,
+ 'tipo_desconto' => 'real',
+ 'data_vencimento' => $dia_pgto,
+ 'data_pagamento' => $dia_pgto != null ? $dia_pgto : date_format($myDateTime, "Y-m-d"),
+ 'baixado' => 1,
+ 'cliente_fornecedor' => $this->input->post('cliente_parc'),
+ 'observacoes' => $this->input->post('observacoes_parc'),
+ 'forma_pgto' => $this->input->post('formaPgto_parc'),
+ 'tipo' => $this->input->post('tipo_parc'),
+ 'usuarios_id' => $this->session->userdata('id_admin'),
+
+
+
+ ];
+ // if (empty($data['valor_desconto'])) {
+ // $data['valor_desconto'] = "0";
+ // }
+
+ $this->financeiro_model->add1('lancamentos', $data1);
+
+ $loops = 1;
+ while ($loops <= $qtdparcelas_parc) {
+ $myDateTimeISO = $dia_base_pgto;
+ $loopsmes = $loops - 1;
+ $addThese = $loopsmes;
+ $myDateTime = new DateTime($myDateTimeISO);
+ $myDayOfMonth = date_format($myDateTime, 'j');
+ date_modify($myDateTime, "+$addThese months");
+
+ //Find out if the day-of-month has dropped
+ $myNewDayOfMonth = date_format($myDateTime, 'j');
+ if ($myDayOfMonth > 28 && $myNewDayOfMonth < 4) {
+ //If so, fix by going back the number of days that have spilled over
+ date_modify($myDateTime, "-$myNewDayOfMonth days");
+ }
+
+ $data = [
+ 'descricao' => $this->input->post('descricao_parc') . ' - Parcelamento de R$' . $descricao_parc_valor . ' [' . $loops . '/' . $qtdparcelas_parc . ']',
+ 'valor' => $total_com_desconto,
+ 'desconto' => $desconto_por_parcela,
+ 'tipo_desconto' => 'real',
+ 'valor_desconto' => $valorparcelas,
+ 'data_vencimento' => date_format($myDateTime, "Y-m-d"),
+ 'data_pagamento' => date_format($myDateTime, "Y-m-d"),
+ 'baixado' => 0,
+ 'cliente_fornecedor' => $this->input->post('cliente_parc'),
+ 'observacoes' => $this->input->post('observacoes_parc'),
+ 'forma_pgto' => $this->input->post('formaPgto_parc'),
+ 'tipo' => $this->input->post('tipo_parc'),
+ 'usuarios_id' => $this->session->userdata('id_admin'),
+
+ ];
+
+ // if (empty($data['valor_desconto'])) {
+ // $data['valor_desconto'] = "0";
+ // }
+
+ if ($this->financeiro_model->add('lancamentos', $data) == true) {
+ $this->session->set_flashdata('success', 'Lançamento adicionado com sucesso!');
+ log_info('Adicionou um lançamento em Financeiro');
+ } else {
+ $this->data['custom_error'] = '';
+ }
+ $loops++;
+ }
+
+ redirect($urlAtual);
+ }
+ }
+
+ $this->session->set_flashdata('error', 'Ocorreu um erro ao tentar adicionar o lançamento');
redirect($urlAtual);
}
@@ -216,7 +427,7 @@ public function adicionarDespesa()
'forma_pgto' => $this->input->post('formaPgto'),
'tipo' => set_value('tipo'),
'observacoes' => set_value('observacoes'),
- 'usuarios_id' => $this->session->userdata('id'),
+ 'usuarios_id' => $this->session->userdata('id_admin'),
];
if (set_value('idFornecedor')) {
@@ -256,6 +467,7 @@ public function editar()
$this->form_validation->set_rules('vencimento', '', 'trim|required');
$this->form_validation->set_rules('pagamento', '', 'trim');
+
if ($this->form_validation->run() == false) {
$this->data['custom_error'] = (validation_errors() ? '' . validation_errors() . '
' : false);
} else {
@@ -272,22 +484,37 @@ public function editar()
$vencimento = date('Y/m/d');
}
+
+ $valor = floatval($this->input->post('valor'));
+ //Se o valor_desconto for vázio, seta a variavel com valor 0, se não for vazio recebe o valor de desconto
+ $valor_desconto = floatval($this->input->post('valor_desconto_editar')); // valor do total + desconto
+
+ $valor_total = $valor + $valor_desconto; //90 + 10=100
+ $valor_com_desconto = $valor_total - $valor_desconto;
+
$data = [
'descricao' => $this->input->post('descricao'),
'data_vencimento' => $vencimento,
'data_pagamento' => $pagamento,
- 'valor' => $this->input->post('valor'),
+ 'valor' => $valor_total,
+ 'desconto' => $valor_desconto,
+ 'tipo_desconto' => 'real',
+ 'valor_desconto' => $valor_com_desconto,
'baixado' => $this->input->post('pago') ?: 0,
'cliente_fornecedor' => $this->input->post('fornecedor'),
'forma_pgto' => $this->input->post('formaPgto'),
'tipo' => $this->input->post('tipo'),
'observacoes' => $this->input->post('observacoes'),
- 'usuarios_id' => $this->session->userdata('id'),
+ 'usuarios_id' => $this->session->userdata('id_admin'),
];
if (set_value('idFornecedor')) {
$data['clientes_id'] = set_value('idFornecedor');
}
+ if (empty($data['valor_desconto'])) {
+ $data['valor_desconto'] = "0";
+ }
+
if (set_value('idCliente')) {
$data['clientes_id'] = set_value('idCliente');
}
@@ -309,15 +536,20 @@ public function editar()
'data_vencimento' => $this->input->post('vencimento'),
'data_pagamento' => $pagamento,
'valor' => $this->input->post('valor'),
+ 'valor_desconto' => $this->input->post('valor_desconto_editar'),
+ 'tipo_desconto' => 'real',
'baixado' => $this->input->post('pago'),
'cliente_fornecedor' => set_value('fornecedor'),
'forma_pgto' => $this->input->post('formaPgto'),
'tipo' => $this->input->post('tipo'),
- 'usuarios_id' => $this->session->userdata('id'),
+ 'usuarios_id' => $this->session->userdata('id_admin'),
];
if (set_value('idFornecedor')) {
$data['clientes_id'] = set_value('idFornecedor');
}
+ if (empty($data['valor_desconto'])) {
+ $data['valor_desconto'] = "0";
+ }
if (set_value('idCliente')) {
$data['clientes_id'] = set_value('idCliente');
}
diff --git a/application/controllers/Garantias.php b/application/controllers/Garantias.php
index b2e2b856..699fc74b 100644
--- a/application/controllers/Garantias.php
+++ b/application/controllers/Garantias.php
@@ -4,7 +4,6 @@
class Garantias extends MY_Controller
{
-
/**
* author: Wilmerson Felipe
* email: will.phelipe@gmail.com
@@ -62,7 +61,7 @@ public function adicionar()
'dataGarantia' => date('Y/m/d'),
'refGarantia' => $this->input->post('refGarantia'),
'textoGarantia' => $this->input->post('textoGarantia'),
- 'usuarios_id' => $this->session->userdata('id'),
+ 'usuarios_id' => $this->session->userdata('id_admin'),
];
if (is_numeric($id = $this->garantias_model->add('garantias', $data, true))) {
@@ -156,6 +155,26 @@ public function imprimir()
$this->load->view('garantias/imprimirGarantia', $this->data);
}
+ public function imprimirGarantiaOs()
+ {
+ if (!$this->uri->segment(3) || !is_numeric($this->uri->segment(3))) {
+ $this->session->set_flashdata('error', 'Item não pode ser encontrado, parâmetro não foi passado corretamente.');
+ redirect('mapos');
+ }
+
+ if (!$this->permission->checkPermission($this->session->userdata('permissao'), 'vGarantia')) {
+ $this->session->set_flashdata('error', 'Você não tem permissão para imprimir o Termo de Garantia.');
+ redirect(base_url());
+ }
+
+ $this->data['custom_error'] = '';
+ $this->load->model('mapos_model');
+ $this->data['osGarantia'] = $this->garantias_model->getByIdOsGarantia($this->uri->segment(3));
+ $this->data['emitente'] = $this->mapos_model->getEmitente();
+
+ $this->load->view('garantias/imprimirGarantiaOs', $this->data);
+ }
+
public function excluir()
{
if (!$this->permission->checkPermission($this->session->userdata('permissao'), 'dGarantia')) {
diff --git a/application/controllers/Login.php b/application/controllers/Login.php
index beb1a9bd..396ba63e 100644
--- a/application/controllers/Login.php
+++ b/application/controllers/Login.php
@@ -48,8 +48,8 @@ public function verificarLogin()
// Verificar credenciais do usuário
if (password_verify($password, $user->senha)) {
- $session_data = ['nome' => $user->nome, 'email' => $user->email, 'url_image_user' => $user->url_image_user, 'id' => $user->idUsuarios, 'permissao' => $user->permissoes_id, 'logado' => true];
- $this->session->set_userdata($session_data);
+ $session_admin_data = ['nome_admin' => $user->nome, 'email_admin' => $user->email, 'url_image_user_admin' => $user->url_image_user, 'id_admin' => $user->idUsuarios, 'permissao' => $user->permissoes_id, 'logado' => true];
+ $this->session->set_userdata($session_admin_data);
log_info('Efetuou login no sistema');
$json = ['result' => true];
echo json_encode($json);
diff --git a/application/controllers/Mapos.php b/application/controllers/Mapos.php
index 2b3bee5a..715668b6 100644
--- a/application/controllers/Mapos.php
+++ b/application/controllers/Mapos.php
@@ -3,7 +3,6 @@
}
class Mapos extends MY_Controller
{
-
/**
* author: Ramon Silva
* email: silva018-mg@yahoo.com.br
@@ -34,14 +33,14 @@ public function index()
public function minhaConta()
{
- $this->data['usuario'] = $this->mapos_model->getById($this->session->userdata('id'));
+ $this->data['usuario'] = $this->mapos_model->getById($this->session->userdata('id_admin'));
$this->data['view'] = 'mapos/minhaConta';
return $this->layout();
}
public function alterarSenha()
{
- $current_user = $this->mapos_model->getById($this->session->userdata('id'));
+ $current_user = $this->mapos_model->getById($this->session->userdata('id_admin'));
if (!$current_user) {
$this->session->set_flashdata('error', 'Ocorreu um erro ao pesquisar usuário!');
@@ -135,7 +134,7 @@ public function do_upload()
$this->upload_config = [
'upload_path' => $image_upload_folder,
- 'allowed_types' => 'png|jpg|jpeg|bmp',
+ 'allowed_types' => 'png|jpg|jpeg|bmp|svg',
'max_size' => 2048,
'remove_space' => true,
'encrypt_name' => true,
@@ -320,7 +319,7 @@ public function uploadUserImage()
redirect(base_url());
}
- $id = $this->session->userdata('id');
+ $id = $this->session->userdata('id_admin');
if ($id == null || !is_numeric($id)) {
$this->session->set_flashdata('error', 'Ocorreu um erro ao tentar alterar sua foto.');
redirect(site_url('mapos/minhaConta'));
@@ -416,6 +415,7 @@ public function configurar()
$this->form_validation->set_rules('control_edit_vendas', 'Controle de Edição de Vendas', 'required|trim');
$this->form_validation->set_rules('control_datatable', 'Controle de Visualização em DataTables', 'required|trim');
$this->form_validation->set_rules('os_status_list[]', 'Controle de visualização de OS', 'required|trim', ['required' => 'Selecione ao menos uma das opções!']);
+ $this->form_validation->set_rules('control_2vias', 'Controle Impressão 2 Vias', 'required|trim');
$this->form_validation->set_rules('pix_key', 'Chave Pix', 'trim|valid_pix_key', [
'valid_pix_key' => 'Chave Pix inválida!',
]);
@@ -437,6 +437,7 @@ public function configurar()
'control_datatable' => $this->input->post('control_datatable'),
'pix_key' => $this->input->post('pix_key'),
'os_status_list' => json_encode($this->input->post('os_status_list')),
+ 'control_2vias' => $this->input->post('control_2vias'),
];
if ($this->mapos_model->saveConfiguracao($data) == true) {
$this->session->set_flashdata('success', 'Configurações do sistema atualizadas com sucesso!');
@@ -549,15 +550,16 @@ public function calendario()
'extendedProps' => [
'id' => $os->idOs,
'cliente' => 'Cliente: ' . $os->nomeCliente,
- 'dataInicial' => 'Data Inicial: ' . $os->dataInicial,
- 'dataFinal' => 'Data Final: ' . $os->dataFinal,
- 'garantia' => 'Garantia: ' . $os->garantia,
+ 'dataInicial' => 'Data Inicial: ' . date('d/m/Y', strtotime($os->dataInicial)),
+ 'dataFinal' => 'Data Final: ' . date('d/m/Y', strtotime($os->dataFinal)),
+ 'garantia' => 'Garantia: ' . $os->garantia . ' dias',
'status' => 'Status da OS: ' . $os->status,
- 'description' => 'Descrição/Produto: ' . $os->descricaoProduto,
- 'defeito' => 'Defeito: ' . $os->defeito,
- 'observacoes' => 'Observações: ' . $os->observacoes,
+ 'description' => 'Descrição/Produto: ' . strip_tags(html_entity_decode($os->descricaoProduto)),
+ 'defeito' => 'Defeito: ' . strip_tags(html_entity_decode($os->defeito)),
+ 'observacoes' => 'Observações: ' . strip_tags(html_entity_decode($os->observacoes)),
'total' => 'Valor Total: R$ ' . number_format($os->totalProdutos + $os->totalServicos, 2, ',', '.'),
- 'valorFaturado' => 'Valor Faturado: R$ ' . number_format($os->valorTotal, 2, ',', '.'),
+ 'desconto' => 'Desconto: R$ ' . number_format($os->desconto, 2, ',', '.'),
+ 'valorFaturado' => 'Valor Faturado: R$ ' . number_format($os->valorTotal - $os->desconto, 2, ',', '.'),
'editar' => $this->os_model->isEditable($os->idOs),
]
];
diff --git a/application/controllers/Mine.php b/application/controllers/Mine.php
index 2e3a8c64..8d8c4706 100644
--- a/application/controllers/Mine.php
+++ b/application/controllers/Mine.php
@@ -42,8 +42,8 @@ public function senhaSalvar()
$cliente = $this->check_credentials($token->email);
if ($token == null && $cliente == null) {
- $session_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente'];
- $this->session->set_userdata($session_data);
+ $session_mine_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente'];
+ $this->session->set_userdata($session_mine_data);
log_info('Alteração de senha. Porém, os dados de acesso estão incorretos.');
echo json_encode(['result' => false, 'message' => 'Os dados de acesso estão incorretos.']);
} else {
@@ -58,15 +58,15 @@ public function senhaSalvar()
$this->load->model('resetSenhas_model', '', true);
if ($this->Conecte_model->edit('clientes', $data, 'idClientes', $cliente->idClientes) == true) {
if ($this->resetSenhas_model->edit('resets_de_senha', $dataToken, 'id', $token->id) == true) {
- $session_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente'];
- $this->session->set_userdata($session_data);
+ $session_mine_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente'];
+ $this->session->set_userdata($session_mine_data);
log_info('Alteração da senha realizada com sucesso.');
echo json_encode(['result' => true]);
}
}
} else {
- $session_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente'];
- $this->session->set_userdata($session_data);
+ $session_mine_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente'];
+ $this->session->set_userdata($session_mine_data);
log_info('Alteração de senha. Porém, dados divergentes.');
echo json_encode(['result' => false, 'message' => 'Dados divergentes.']);
}
@@ -88,16 +88,16 @@ public function tokenManual()
if ($this->validateDate($token->data_expiracao)) {
$this->session->set_flashdata(['error' => 'Token expirado']);
- $session_data = $token->email ? ['nome' => $token->email] : ['nome' => 'Inexistente'];
- $this->session->set_userdata($session_data);
+ $session_mine_data = $token->email ? ['nome' => $token->email] : ['nome' => 'Inexistente'];
+ $this->session->set_userdata($session_mine_data);
log_info('Digitou Token. Porém, Token expirado');
return redirect(base_url() . 'index.php/mine');
} else {
if ($token) {
if (($cliente = $this->check_credentials($token->email)) == null) {
$this->session->set_flashdata(['error' => 'Os dados de acesso estão incorretos.']);
- $session_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente'];
- $this->session->set_userdata($session_data);
+ $session_mine_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente'];
+ $this->session->set_userdata($session_mine_data);
log_info('Digitou Token. Porém, os dados de acesso estão incorretos.');
return $this->load->view('conecte/token_digita');
} else {
@@ -105,16 +105,16 @@ public function tokenManual()
return $this->load->view('conecte/nova_senha', $token);
} else {
$this->session->set_flashdata('error', 'Dados divergentes ou Token invalido.');
- $session_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente'];
- $this->session->set_userdata($session_data);
+ $session_mine_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente'];
+ $this->session->set_userdata($session_mine_data);
log_info('Digitou Token. Porém, dados divergentes ou Token invalido.');
return redirect(base_url() . 'index.php/mine');
}
}
} else {
$this->session->set_flashdata(['error' => 'Token Invalido']);
- $session_data = $token->email ? ['nome' => $token->email] : ['nome' => 'Inexistente'];
- $this->session->set_userdata($session_data);
+ $session_mine_data = $token->email ? ['nome' => $token->email] : ['nome' => 'Inexistente'];
+ $this->session->set_userdata($session_mine_data);
log_info('Digitou Token. Porém, Token invalido.');
return $this->load->view('conecte/token_digita');
}
@@ -130,23 +130,23 @@ public function verifyTokenSenha()
if ($token == null || $token == "") {
$this->session->set_flashdata(['error' => 'Token invalido']);
- $session_data = $token->email ? ['nome' => $token->email] : ['nome' => 'Inexistente'];
- $this->session->set_userdata($session_data);
+ $session_mine_data = $token->email ? ['nome' => $token->email] : ['nome' => 'Inexistente'];
+ $this->session->set_userdata($session_mine_data);
log_info('Acesso via link do email (Token). Porém, Token invalido.');
return $this->load->view('conecte/token_digita');
} else {
if ($this->validateDate($token->data_expiracao)) {
$this->session->set_flashdata(['error' => 'Token expirado']);
- $session_data = $token->email ? ['nome' => $token->email] : ['nome' => 'Inexistente'];
- $this->session->set_userdata($session_data);
+ $session_mine_data = $token->email ? ['nome' => $token->email] : ['nome' => 'Inexistente'];
+ $this->session->set_userdata($session_mine_data);
log_info('Acesso via link do email (Token). Porém, Token expirado');
return redirect(base_url() . 'index.php/mine');
} else {
if ($token) {
if (($cliente = $this->check_credentials($token->email)) == null) {
$this->session->set_flashdata(['error' => 'Os dados de acesso estão incorretos.']);
- $session_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente'];
- $this->session->set_userdata($session_data);
+ $session_mine_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente'];
+ $this->session->set_userdata($session_mine_data);
log_info('Acesso via link do email (Token). Porém, dados de acesso estão incorretos.');
return $this->load->view('conecte/token_digita');
} else {
@@ -154,16 +154,16 @@ public function verifyTokenSenha()
return $this->load->view('conecte/nova_senha', $token);
} else {
$this->session->set_flashdata('error', 'Dados divergentes ou Token invalido.');
- $session_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente'];
- $this->session->set_userdata($session_data);
+ $session_mine_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente'];
+ $this->session->set_userdata($session_mine_data);
log_info('Acesso via link do email (Token). Porém, dados divergentes ou Token invalido.');
return redirect(base_url() . 'index.php/mine');
}
}
} else {
$this->session->set_flashdata(['error' => 'Token Invalido']);
- $session_data = $token->email ? ['nome' => $token->email] : ['nome' => 'Inexistente'];
- $this->session->set_userdata($session_data);
+ $session_mine_data = $token->email ? ['nome' => $token->email] : ['nome' => 'Inexistente'];
+ $this->session->set_userdata($session_mine_data);
log_info('Acesso via link do email (Token). Porém, Token invalido.');
return $this->load->view('conecte/token_digita');
}
@@ -176,8 +176,8 @@ public function gerarTokenResetarSenha()
{
if (!$cliente = $this->check_credentials($this->input->post('email'))) {
$this->session->set_flashdata(['error' => 'Os dados de acesso estão incorretos.']);
- $session_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente'];
- $this->session->set_userdata($session_data);
+ $session_mine_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente'];
+ $this->session->set_userdata($session_mine_data);
log_info('Cliente solicitou alteração de senha. Porém falhou ao realizar solicitação!');
redirect($_SERVER['HTTP_REFERER']);
} else {
@@ -190,15 +190,15 @@ public function gerarTokenResetarSenha()
];
if ($this->resetSenhas_model->add('resets_de_senha', $data) == true) {
$this->enviarRecuperarSenha($cliente->idClientes, $cliente->email, "Recuperar Senha", json_encode($data));
- $session_data = ['nome' => $cliente->nomeCliente];
- $this->session->set_userdata($session_data);
+ $session_mine_data = ['nome' => $cliente->nomeCliente];
+ $this->session->set_userdata($session_mine_data);
log_info('Cliente solicitou alteração de senha.');
$this->session->set_flashdata('success', 'Solicitação realizada com sucesso!
Um e-mail com as instruções será enviado para ' . $cliente->email);
redirect(base_url() . 'index.php/mine');
} else {
$this->session->set_flashdata('error', 'Falha ao realizar solicitação!');
- $session_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente'];
- $this->session->set_userdata($session_data);
+ $session_mine_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente'];
+ $this->session->set_userdata($session_mine_data);
log_info('Cliente solicitou alteração de senha. Porém falhou ao realizar solicitação!');
redirect(current_url());
}
@@ -225,9 +225,9 @@ public function login()
if ($cliente) {
// Verificar credenciais do usuário
if (password_verify($password, $cliente->senha)) {
- $session_data = ['nome' => $cliente->nomeCliente, 'cliente_id' => $cliente->idClientes, 'email' => $cliente->email, 'conectado' => true, 'isCliente' => true];
- $this->session->set_userdata($session_data);
- log_info($_SERVER['HTTP_CLIENT_IP'] . 'Efetuou login no sistema');
+ $session_mine_data = ['nome' => $cliente->nomeCliente, 'cliente_id' => $cliente->idClientes, 'email' => $cliente->email, 'conectado' => true, 'isCliente' => true];
+ $this->session->set_userdata($session_mine_data);
+ log_info($_SERVER['REMOTE_ADDR'] . ' Efetuou login no sistema');
echo json_encode(['result' => true]);
} else {
echo json_encode(['result' => false, 'message' => 'Os dados de acesso estão incorretos.']);
@@ -602,7 +602,6 @@ public function imprimirCompra($id = null)
public function minha_ordem_de_servico($y = null, $when = null)
{
if (($y != null) && (is_numeric($y))) {
-
// Do not forget this number -> 44023
// function sending => y = (7653 * ID) + 44023
// function recieving => x = (y - 44023) / 7653
@@ -818,8 +817,7 @@ private function enviarRecuperarSenha($idClientes, $clienteEmail, $assunto, $tok
$dados['cliente'] = $this->clientes_model->getById($idClientes);
$dados['resets_de_senha'] = json_decode($token);
- $emitente = $dados['emitente'][0]->email;
- $emitenteNome = $dados['emitente'][0]->nome;
+ $emitente = $dados['emitente'];
$remetente = $clienteEmail;
$html = $this->load->view('conecte/emails/clientenovasenha', $dados, true);
@@ -827,7 +825,7 @@ private function enviarRecuperarSenha($idClientes, $clienteEmail, $assunto, $tok
$this->load->model('email_model');
$headers = [
- 'From' => "\"$emitenteNome\" <$emitente>",
+ 'From' => "\"$emitente->nome\" <$emitente->email>",
'Subject' => $assunto,
'Return-Path' => ''
];
@@ -857,7 +855,7 @@ private function enviarOsPorEmail($idOs, $remetentes, $assunto)
$dados['servicos'] = $this->os_model->getServicos($idOs);
$dados['emitente'] = $this->mapos_model->getEmitente();
- $emitente = $dados['emitente'][0]->email;
+ $emitente = $dados['emitente'];
if (!isset($emitente)) {
return false;
}
@@ -869,7 +867,7 @@ private function enviarOsPorEmail($idOs, $remetentes, $assunto)
$remetentes = array_unique($remetentes);
foreach ($remetentes as $remetente) {
$headers = [
- 'From' => $emitente,
+ 'From' => $emitente->email,
'Subject' => $assunto,
'Return-Path' => ''
];
@@ -895,9 +893,8 @@ private function enviarEmailBoasVindas($id)
$dados['emitente'] = $this->mapos_model->getEmitente();
$dados['cliente'] = $this->clientes_model->getById($id);
- $emitente = $dados['emitente'][0]->email;
- $emitenteNome = $dados['emitente'][0]->nome;
- $remetente = $dados['cliente']->email;
+ $emitente = $dados['emitente'];
+ $remetente = $dados['cliente'];
$assunto = 'Bem-vindo!';
$html = $this->load->view('os/emails/clientenovo', $dados, true);
@@ -905,12 +902,12 @@ private function enviarEmailBoasVindas($id)
$this->load->model('email_model');
$headers = [
- 'From' => "\"$emitenteNome\" <$emitente>",
+ 'From' => "\"$emitente->nome\" <$emitente->email>",
'Subject' => $assunto,
'Return-Path' => ''
];
$email = [
- 'to' => $remetente,
+ 'to' => $remetente->email,
'message' => $html,
'status' => 'pending',
'date' => date('Y-m-d H:i:s'),
@@ -930,8 +927,7 @@ private function enviarEmailTecnicoNotificaClienteNovo($id)
$dados['emitente'] = $this->mapos_model->getEmitente();
$dados['cliente'] = $this->clientes_model->getById($id);
- $emitente = $dados['emitente'][0]->email;
- $emitenteNome = $dados['emitente'][0]->nome;
+ $emitente = $dados['emitente'];
$assunto = 'Novo Cliente Cadastrado no Sistema';
$usuarios = [];
@@ -941,7 +937,7 @@ private function enviarEmailTecnicoNotificaClienteNovo($id)
$dados['usuario'] = $usuario;
$html = $this->load->view('os/emails/clientenovonotifica', $dados, true);
$headers = [
- 'From' => "\"$emitenteNome\" <$emitente>",
+ 'From' => "\"$emitente->nome\" <$emitente->email>",
'Subject' => $assunto,
'Return-Path' => ''
];
diff --git a/application/controllers/Os.php b/application/controllers/Os.php
index 7261b233..11e96c0b 100644
--- a/application/controllers/Os.php
+++ b/application/controllers/Os.php
@@ -132,7 +132,8 @@ public function adicionar()
$idOs = $id;
$os = $this->os_model->getById($idOs);
- $emitente = $this->mapos_model->getEmitente()[0];
+ $emitente = $this->mapos_model->getEmitente();
+
$tecnico = $this->usuarios_model->getById($os->usuarios_id);
// Verificar configuração de notificação
@@ -244,7 +245,7 @@ public function editar()
$idOs = $this->input->post('idOs');
$os = $this->os_model->getById($idOs);
- $emitente = $this->mapos_model->getEmitente()[0];
+ $emitente = $this->mapos_model->getEmitente();
$tecnico = $this->usuarios_model->getById($os->usuarios_id);
// Verificar configuração de notificação
@@ -322,6 +323,11 @@ public function visualizar()
$this->data['anexos'] = $this->os_model->getAnexos($this->uri->segment(3));
$this->data['anotacoes'] = $this->os_model->getAnotacoes($this->uri->segment(3));
$this->data['editavel'] = $this->os_model->isEditable($this->uri->segment(3));
+ $this->data['qrCode'] = $this->os_model->getQrCode(
+ $this->uri->segment(3),
+ $this->data['configuration']['pix_key'],
+ $this->data['emitente']
+ );
$this->data['modalGerarPagamento'] = $this->load->view(
'cobrancas/modalGerarPagamento',
[
@@ -361,7 +367,7 @@ public function imprimir()
$this->data['qrCode'] = $this->os_model->getQrCode(
$this->uri->segment(3),
$this->data['configuration']['pix_key'],
- $this->data['emitente'][0]
+ $this->data['emitente']
);
$this->load->view('os/imprimirOs', $this->data);
@@ -413,14 +419,14 @@ public function enviar_email()
$this->data['servicos'] = $this->os_model->getServicos($this->uri->segment(3));
$this->data['emitente'] = $this->mapos_model->getEmitente();
- if (!isset($this->data['emitente'][0]->email)) {
+ if (!isset($this->data['emitente']->email)) {
$this->session->set_flashdata('error', 'Efetue o cadastro dos dados de emitente');
redirect(site_url('os'));
}
$idOs = $this->uri->segment(3);
- $emitente = $this->data['emitente'][0];
+ $emitente = $this->data['emitente'];
$tecnico = $this->usuarios_model->getById($this->data['result']->usuarios_id);
// Verificar configuração de notificação
@@ -516,7 +522,7 @@ public function excluir()
}
}
- if ($os->idCobranca != null) {
+ if (isset($os->idCobranca) != null) {
if ($os->status == "canceled") {
$this->os_model->delete('cobrancas', 'os_id', $id);
} else {
@@ -633,6 +639,7 @@ public function adicionarProduto()
$this->db->set('desconto', 0.00);
$this->db->set('valor_desconto', 0.00);
+ $this->db->set('tipo_desconto', null);
$this->db->where('idOs', $id);
$this->db->update('os');
@@ -673,6 +680,7 @@ public function excluirProduto()
$this->db->set('desconto', 0.00);
$this->db->set('valor_desconto', 0.00);
+ $this->db->set('tipo_desconto', null);
$this->db->where('idOs', $idOs);
$this->db->update('os');
@@ -710,6 +718,7 @@ public function adicionarServico()
$this->db->set('desconto', 0.00);
$this->db->set('valor_desconto', 0.00);
+ $this->db->set('tipo_desconto', null);
$this->db->where('idOs', $this->input->post('idOsServico'));
$this->db->update('os');
@@ -734,6 +743,7 @@ public function excluirServico()
log_info('Removeu serviço de uma OS. ID (OS): ' . $idOs);
$this->db->set('desconto', 0.00);
$this->db->set('valor_desconto', 0.00);
+ $this->db->set('tipo_desconto', null);
$this->db->where('idOs', $idOs);
$this->db->update('os');
echo json_encode(['result' => true]);
@@ -788,7 +798,6 @@ public function anexar()
$upload_data = $this->upload->data();
if ($upload_data['is_image'] == 1) {
-
// set the resize config
$resize_conf = [
@@ -872,6 +881,7 @@ public function adicionarDesconto()
} else {
$idOs = $this->input->post('idOs');
$data = [
+ 'tipo_desconto' => $this->input->post('tipoDesconto'),
'desconto' => $this->input->post('desconto'),
'valor_desconto' => $this->input->post('resultado')
];
@@ -928,6 +938,7 @@ public function faturar()
$data = [
'descricao' => set_value('descricao'),
'valor' => getAmount($this->input->post('valor')),
+ 'tipo_desconto' => ($this->input->post('tipoDesconto')),
'desconto' => $os->desconto,
'valor_desconto' => $os->valor_desconto,
'clientes_id' => $this->input->post('clientes_id'),
@@ -938,7 +949,7 @@ public function faturar()
'forma_pgto' => $this->input->post('formaPgto'),
'tipo' => $this->input->post('tipo'),
'observacoes' => set_value('observacoes'),
- 'usuarios_id' => $this->session->userdata('id'),
+ 'usuarios_id' => $this->session->userdata('id_admin'),
];
$editavel = $this->os_model->isEditable($this->input->post('idOs'));
@@ -990,9 +1001,8 @@ private function enviarOsPorEmail($idOs, $remetentes, $assunto)
$dados['produtos'] = $this->os_model->getProdutos($idOs);
$dados['servicos'] = $this->os_model->getServicos($idOs);
$dados['emitente'] = $this->mapos_model->getEmitente();
-
- $emitente = $dados['emitente'][0]->email;
- if (!isset($emitente)) {
+ $emitente = $dados['emitente'];
+ if (!isset($emitente->email)) {
return false;
}
@@ -1002,7 +1012,7 @@ private function enviarOsPorEmail($idOs, $remetentes, $assunto)
$remetentes = array_unique($remetentes);
foreach ($remetentes as $remetente) {
- $headers = ['From' => $emitente, 'Subject' => $assunto, 'Return-Path' => ''];
+ $headers = ['From' => $emitente->email, 'Subject' => $assunto, 'Return-Path' => ''];
$email = [
'to' => $remetente,
'message' => $html,
diff --git a/application/controllers/Permissoes.php b/application/controllers/Permissoes.php
index 43bbb82c..07b688f6 100644
--- a/application/controllers/Permissoes.php
+++ b/application/controllers/Permissoes.php
@@ -4,7 +4,6 @@
class Permissoes extends MY_Controller
{
-
/**
* author: Ramon Silva
* email: silva018-mg@yahoo.com.br
diff --git a/application/controllers/Produtos.php b/application/controllers/Produtos.php
index da29426d..6af0a57b 100644
--- a/application/controllers/Produtos.php
+++ b/application/controllers/Produtos.php
@@ -4,7 +4,6 @@
class Produtos extends MY_Controller
{
-
/**
* author: Ramon Silva
* email: silva018-mg@yahoo.com.br
diff --git a/application/controllers/Relatorios.php b/application/controllers/Relatorios.php
index 10339be7..0875614b 100644
--- a/application/controllers/Relatorios.php
+++ b/application/controllers/Relatorios.php
@@ -10,7 +10,6 @@
class Relatorios extends MY_Controller
{
-
/**
* author: Ramon Silva
* email: silva018-mg@yahoo.com.br
@@ -95,23 +94,33 @@ public function clientesRapid()
'Documento' => 'string',
'Telefone' => 'string',
'Celular' => 'string',
+ 'Contato' => 'string',
'E-mail' => 'string',
+ 'Fornecedor' => 'string',
'Data de Cadastro' => 'YYYY-MM-DD',
'Rua' => 'string',
'Número' => 'string',
+ 'Complemento' => 'string',
'Bairro' => 'string',
'Cidade' => 'string',
'Estado' => 'string',
'CEP' => 'string',
- 'Contato' => 'string',
- 'Complemento' => 'string',
- 'Fornecedor' => 'string',
];
$writer = new XLSXWriter();
$writer->writeSheetHeader('Sheet1', $cabecalho);
foreach ($clientes as $cliente) {
+ if ($cliente["fornecedor"]) {
+ $cliente["fornecedor"] = "sim";
+ } else {
+ $cliente["fornecedor"] = "não";
+ }
+ if ($cliente["pessoa_fisica"]) {
+ $cliente["pessoa_fisica"] = "sim";
+ } else {
+ $cliente["pessoa_fisica"] = "não";
+ }
$writer->writeSheetRow('Sheet1', $cliente);
}
@@ -410,9 +419,13 @@ public function osRapid()
$isXls
?
- $totalValorDesconto += $o['valor_desconto'] ? floatval($o['valor_desconto']) : floatval($o['total_servico']) + floatval($o['total_produto'])
+ $totalValorDesconto += $o['valor_desconto']
+ ? floatval($o['valor_desconto'])
+ : floatval($o['total_servico']) + floatval($o['total_produto'])
:
- $totalValorDesconto += $o->valor_desconto ? floatval($o->valor_desconto) : floatval($o->total_produto) + floatval($o->total_servico);
+ $totalValorDesconto += $o->valor_desconto
+ ? floatval($o->valor_desconto)
+ : floatval($o->total_produto) + floatval($o->total_servico);
}
if ($isXls) {
@@ -431,6 +444,7 @@ public function osRapid()
'valorSubTotal' => $subTotal ? $subTotal : 0,
'valorTotal' => $total ? $total : 0,
'total_geral_desconto' => $item['desconto'] ?: 0,
+ 'tipo_desconto' => $item['tipo_desconto'] ?: "-",
];
}, $os);
@@ -444,7 +458,8 @@ public function osRapid()
'Total Serviços' => 'price',
'Total' => 'price',
'Total Com Desconto' => 'price',
- 'Desconto %' => 'number',
+ 'Desconto' => 'number',
+ 'Tipo Desconto' => 'string',
];
$writer = new XLSXWriter();
@@ -541,6 +556,7 @@ public function osCustom()
'valorSubTotal' => $subTotal ? $subTotal : 0,
'valorTotal' => $total ? $total : 0,
'valorSubTotal' => $subTotal ? $subTotal : 0,
+ 'tipo_desconto' => $item['tipo_desconto'] ?: "-",
];
}, $os);
@@ -554,7 +570,8 @@ public function osCustom()
'Total Serviços' => 'price',
'Total' => 'price',
'Total Com Desconto' => 'price',
- 'Desconto %' => 'number',
+ 'Desconto' => 'number',
+ 'Tipo Desconto' => 'string',
];
$writer = new XLSXWriter();
@@ -638,6 +655,7 @@ public function financeiroRapid()
'valor' => $item['valor'],
'desconto' => $item['desconto'],
'valor_desconto' => $item['valor_desconto'],
+ 'tipo_desconto' => $item['tipo_desconto'],
'data_vencimento' => $item['data_vencimento'],
'data_pagamento' => $item['data_pagamento'],
'baixado' => $item['baixado'],
@@ -651,7 +669,8 @@ public function financeiroRapid()
'ID Lançamentos' => 'integer',
'Descricao' => 'string',
'Valor' => 'price',
- 'Desconto %' => 'price',
+ 'Desconto' => 'price',
+ 'Tipo Desconto' => 'string',
'Valor Com Desc.' => 'price',
'Data Vencimento' => 'YYYY-MM-DD',
'Data Pagamento' => 'YYYY-MM-DD',
@@ -708,6 +727,7 @@ public function financeiroCustom()
'valor' => $item['valor'],
'desconto' => $item['desconto'],
'valor_desconto' => $item['valor_desconto'],
+ 'tipo_desconto' => $item['tipo_desconto'],
'data_vencimento' => $item['data_vencimento'],
'data_pagamento' => $item['data_pagamento'],
'baixado' => $item['baixado'],
@@ -721,7 +741,8 @@ public function financeiroCustom()
'ID Lançamentos' => 'integer',
'Descricao' => 'string',
'Valor' => 'price',
- 'Desconto %' => 'price',
+ 'Desconto' => 'price',
+ 'Tipo Desconto' => 'string',
'Valor Com Desc.' => 'price',
'Data Vencimento' => 'YYYY-MM-DD',
'Data Pagamento' => 'YYYY-MM-DD',
@@ -804,6 +825,7 @@ public function vendasRapid()
'total' => $item['valorTotal'] ?: 0,
'totalDesconto' => $item['valor_desconto'] ?: 0,
'desconto' => $item['desconto'] ?: 0,
+ 'tipo_desconto' => $item['tipo_desconto'] ?: '-',
];
}, $vendas);
@@ -815,6 +837,7 @@ public function vendasRapid()
'Total' => 'price',
'Total Com Desconto' => 'price',
'Desconto' => 'number',
+ 'Tipo Desconto' => 'string',
];
$writer = new XLSXWriter();
@@ -898,6 +921,7 @@ public function vendasCustom()
'total' => $item['valorTotal'] ?: 0,
'totalDesconto' => $item['valor_desconto'] ?: 0,
'desconto' => $item['desconto'] ?: 0,
+ 'tipo_desconto' => $item['tipo_desconto'] ?: '-',
];
}, $vendas);
diff --git a/application/controllers/Servicos.php b/application/controllers/Servicos.php
index b8dee916..7ef38024 100644
--- a/application/controllers/Servicos.php
+++ b/application/controllers/Servicos.php
@@ -4,7 +4,6 @@
class Servicos extends MY_Controller
{
-
/**
* author: Ramon Silva
* email: silva018-mg@yahoo.com.br
diff --git a/application/controllers/Usuarios.php b/application/controllers/Usuarios.php
index 1d7b6662..ae922a40 100644
--- a/application/controllers/Usuarios.php
+++ b/application/controllers/Usuarios.php
@@ -4,7 +4,6 @@
class Usuarios extends MY_Controller
{
-
/**
* author: Ramon Silva
* email: silva018-mg@yahoo.com.br
diff --git a/application/controllers/Vendas.php b/application/controllers/Vendas.php
index e38d2f86..20cfb540 100644
--- a/application/controllers/Vendas.php
+++ b/application/controllers/Vendas.php
@@ -4,7 +4,6 @@
class Vendas extends MY_Controller
{
-
/**
* author: Ramon Silva
* email: silva018-mg@yahoo.com.br
@@ -156,6 +155,11 @@ public function visualizar()
$this->data['result'] = $this->vendas_model->getById($this->uri->segment(3));
$this->data['produtos'] = $this->vendas_model->getProdutos($this->uri->segment(3));
$this->data['emitente'] = $this->mapos_model->getEmitente();
+ $this->data['qrCode'] = $this->vendas_model->getQrCode(
+ $this->uri->segment(3),
+ $this->data['configuration']['pix_key'],
+ $this->data['emitente']
+ );
$this->data['modalGerarPagamento'] = $this->load->view(
'cobrancas/modalGerarPagamento',
[
@@ -191,7 +195,7 @@ public function imprimir()
$this->data['qrCode'] = $this->vendas_model->getQrCode(
$this->uri->segment(3),
$this->data['configuration']['pix_key'],
- $this->data['emitente'][0]
+ $this->data['emitente']
);
$this->load->view('vendas/imprimirVenda', $this->data);
@@ -244,7 +248,7 @@ public function excluir()
}
}
- if ($venda->idCobranca != null) {
+ if (isset($venda->idCobranca) != null) {
if ($venda->status == "canceled") {
$this->vendas_model->delete('cobrancas', 'vendas_id', $id);
} else {
@@ -333,6 +337,7 @@ public function adicionarProduto()
$this->db->set('desconto', 0.00);
$this->db->set('valor_desconto', 0.00);
+ $this->db->set('tipo_desconto', null);
$this->db->where('idVendas', $this->input->post('idVendasProduto'));
$this->db->update('vendas');
@@ -373,6 +378,7 @@ public function excluirProduto()
$this->db->set('desconto', 0.00);
$this->db->set('valor_desconto', 0.00);
+ $this->db->set('tipo_desconto', null);
$this->db->where('idVendas', $this->input->post('idVendas'));
$this->db->update('vendas');
@@ -394,6 +400,7 @@ public function adicionarDesconto()
$idVendas = $this->input->post('idVendas');
$data = [
'desconto' => $this->input->post('desconto'),
+ 'tipo_desconto' => $this->input->post('tipoDesconto'),
'valor_desconto' => $this->input->post('resultado')
];
$editavel = $this->vendas_model->isEditable($idVendas);
@@ -457,6 +464,7 @@ public function faturar()
'descricao' => set_value('descricao'),
'valor' => $this->input->post('valor'),
'desconto' => $vendas->desconto,
+ 'tipo_desconto' => $vendas->tipo_desconto,
'valor_desconto' => $vendas->valor_desconto,
'clientes_id' => $this->input->post('clientes_id'),
'data_vencimento' => $vencimento,
@@ -465,7 +473,7 @@ public function faturar()
'cliente_fornecedor' => set_value('cliente'),
'forma_pgto' => $this->input->post('formaPgto'),
'tipo' => $this->input->post('tipo'),
- 'usuarios_id' => $this->session->userdata('id'),
+ 'usuarios_id' => $this->session->userdata('id_admin'),
];
if ($this->vendas_model->add('lancamentos', $data) == true) {
diff --git a/application/database/migrations/20220320173741_add_desconto_lancamentos_os_vendas.php b/application/database/migrations/20220320173741_add_desconto_lancamentos_os_vendas.php
index e7b5d0f1..16bf1f91 100644
--- a/application/database/migrations/20220320173741_add_desconto_lancamentos_os_vendas.php
+++ b/application/database/migrations/20220320173741_add_desconto_lancamentos_os_vendas.php
@@ -4,23 +4,33 @@ class Migration_add_desconto_lancamentos_os_vendas extends CI_Migration
{
public function up()
{
- $this->db->query("ALTER TABLE `lancamentos` ADD `desconto` DECIMAL(10, 2) NULL DEFAULT 0;");
- $this->db->query("ALTER TABLE `lancamentos` ADD `valor_desconto` DECIMAL(10, 2) NULL DEFAULT 0;");
- $this->db->query("ALTER TABLE `os` ADD `desconto` DECIMAL(10, 2) NULL DEFAULT 0;");
- $this->db->query("ALTER TABLE `os` ADD `valor_desconto` DECIMAL(10, 2) NULL DEFAULT 0;");
- $this->db->query("ALTER TABLE `vendas` ADD `desconto` DECIMAL(10, 2) NULL DEFAULT 0;");
- $this->db->query("ALTER TABLE `vendas` ADD `valor_desconto` DECIMAL(10, 2) NULL DEFAULT 0;");
- $this->db->query("INSERT INTO `configuracoes` (`idConfig`, `config`, `valor`) VALUES (14, 'email_automatico', 1);");
+ $this->db->query("ALTER TABLE `lancamentos` CHANGE `valor` `valor` DECIMAL(10,2) NOT NULL DEFAULT 0");
+ $this->db->query("ALTER TABLE `lancamentos` ADD `desconto` DECIMAL(10, 2) NULL DEFAULT 0");
+ $this->db->query("ALTER TABLE `lancamentos` ADD `valor_desconto` DECIMAL(10, 2) NULL DEFAULT 0");
+ $this->db->query("ALTER TABLE `os` CHANGE `valorTotal` `valorTotal` DECIMAL(10,2) NULL DEFAULT 0");
+ $this->db->query("ALTER TABLE `os` ADD `desconto` DECIMAL(10, 2) NULL DEFAULT 0");
+ $this->db->query("ALTER TABLE `os` ADD `valor_desconto` DECIMAL(10, 2) NULL DEFAULT 0");
+ $this->db->query("ALTER TABLE `vendas` CHANGE `valorTotal` `valorTotal` DECIMAL(10,2) NULL DEFAULT 0");
+ $this->db->query("ALTER TABLE `vendas` CHANGE `desconto` `desconto` DECIMAL(10,2) NULL DEFAULT 0");
+ $this->db->query("ALTER TABLE `vendas` ADD `valor_desconto` DECIMAL(10, 2) NULL DEFAULT 0");
+ $this->db->query("ALTER TABLE `cobrancas` CHANGE `total` `total` DECIMAL(10,2) NULL DEFAULT 0");
+ $this->db->query("ALTER TABLE `produtos_os` CHANGE `preco` `preco` DECIMAL(10,2) NULL DEFAULT 0");
+ $this->db->query("ALTER TABLE `produtos_os` CHANGE `subTotal` `subTotal` DECIMAL(10,2) NULL DEFAULT 0");
+ $this->db->query("ALTER TABLE `servicos_os` CHANGE `preco` `preco` DECIMAL(10,2) NULL DEFAULT 0");
+ $this->db->query("ALTER TABLE `servicos_os` CHANGE `subTotal` `subTotal` DECIMAL(10,2) NULL DEFAULT 0");
+ $this->db->query("ALTER TABLE `itens_de_vendas` CHANGE `subTotal` `subTotal` DECIMAL(10,2) NULL DEFAULT 0");
+ $this->db->query("ALTER TABLE `itens_de_vendas` CHANGE `preco` `preco` DECIMAL(10,2) NULL DEFAULT 0");
+ $this->db->query("INSERT INTO `configuracoes` (`idConfig`, `config`, `valor`) VALUES (14, 'email_automatico', 1)");
}
public function down()
{
- $this->db->query("ALTER TABLE `lancamentos` DROP `desconto`;");
- $this->db->query("ALTER TABLE `lancamentos` DROP `valor_desconto`;");
- $this->db->query("ALTER TABLE `os` DROP `desconto`;");
- $this->db->query("ALTER TABLE `os` DROP `valor_desconto`;");
- $this->db->query("ALTER TABLE `vendas` DROP `desconto`;");
- $this->db->query("ALTER TABLE `vendas` DROP `valor_desconto`;");
+ $this->db->query("ALTER TABLE `lancamentos` DROP `desconto`");
+ $this->db->query("ALTER TABLE `lancamentos` DROP `valor_desconto`");
+ $this->db->query("ALTER TABLE `os` DROP `desconto`");
+ $this->db->query("ALTER TABLE `os` DROP `valor_desconto`");
+ $this->db->query("ALTER TABLE `vendas` DROP `desconto`");
+ $this->db->query("ALTER TABLE `vendas` DROP `valor_desconto`");
$this->db->query("DELETE FROM `configuracoes` WHERE `configuracoes`.`idConfig` = 14");
}
}
diff --git a/application/database/migrations/20221112173741_add_tipo_desconto_os_vendas.php b/application/database/migrations/20221112173741_add_tipo_desconto_os_vendas.php
new file mode 100644
index 00000000..a24d4164
--- /dev/null
+++ b/application/database/migrations/20221112173741_add_tipo_desconto_os_vendas.php
@@ -0,0 +1,18 @@
+db->query("ALTER TABLE `os` ADD `tipo_desconto` VARCHAR(8) NULL DEFAULT NULL");
+ $this->db->query("ALTER TABLE `vendas` ADD `tipo_desconto` VARCHAR(8) NULL DEFAULT NULL");
+ $this->db->query("ALTER TABLE `lancamentos` ADD `tipo_desconto` VARCHAR(8) NULL DEFAULT NULL");
+ }
+
+ public function down()
+ {
+ $this->db->query("ALTER TABLE `os` DROP `tipo_desconto`");
+ $this->db->query("ALTER TABLE `vendas` DROP `tipo_desconto`");
+ $this->db->query("ALTER TABLE `lancamentos` DROP `tipo_desconto`");
+ }
+}
diff --git a/application/database/migrations/20221119210810_add_asaas_id_clientes.php b/application/database/migrations/20221119210810_add_asaas_id_clientes.php
new file mode 100644
index 00000000..e08a34e2
--- /dev/null
+++ b/application/database/migrations/20221119210810_add_asaas_id_clientes.php
@@ -0,0 +1,16 @@
+db->query("ALTER TABLE `clientes` ADD `asaas_id` VARCHAR(255) NULL DEFAULT NULL");
+ $this->db->query("ALTER TABLE `usuarios` DROP `asaas_id`");
+ }
+
+ public function down()
+ {
+ $this->db->query("ALTER TABLE `clientes` DROP `asaas_id`");
+ $this->db->query("ALTER TABLE `usuarios` DROP `asaas_id`");
+ }
+}
diff --git a/application/database/migrations/20221130180810_add_config_control_print_2ways_os.php b/application/database/migrations/20221130180810_add_config_control_print_2ways_os.php
new file mode 100644
index 00000000..b7084a97
--- /dev/null
+++ b/application/database/migrations/20221130180810_add_config_control_print_2ways_os.php
@@ -0,0 +1,14 @@
+db->query("INSERT INTO `configuracoes` (`idConfig`, `config`, `valor`) VALUES (15, 'control_2vias', 0);");
+ }
+
+ public function down()
+ {
+ $this->db->query("DELETE FROM `configuracoes` WHERE `configuracoes`.`idConfig` = 15");
+ }
+}
diff --git a/application/database/migrations/20230428110810_alter_charset_configuracoes.php b/application/database/migrations/20230428110810_alter_charset_configuracoes.php
new file mode 100644
index 00000000..09ffbe0d
--- /dev/null
+++ b/application/database/migrations/20230428110810_alter_charset_configuracoes.php
@@ -0,0 +1,15 @@
+db->query("ALTER TABLE `configuracoes` CHANGE `config` `config` VARCHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL;");
+ $this->db->query("UPDATE `configuracoes` SET `valor` = 'Prezado(a), {CLIENTE_NOME} a OS de nº {NUMERO_OS} teve o status alterado para: {STATUS_OS} segue a descrição {DESCRI_PRODUTOS} com valor total de {VALOR_OS}! Para mais informações entre em contato conosco. Atenciosamente, {EMITENTE} {TELEFONE_EMITENTE}.' WHERE `configuracoes`.`idConfig` = 7");
+ }
+
+ public function down()
+ {
+ $this->db->query("DELETE FROM `configuracoes` WHERE `configuracoes`.`idConfig` = 7");
+ }
+}
diff --git a/application/helpers/audit_helper.php b/application/helpers/audit_helper.php
index c4e49263..bd3bcc0a 100644
--- a/application/helpers/audit_helper.php
+++ b/application/helpers/audit_helper.php
@@ -7,7 +7,7 @@ function log_info($task)
$ci->load->model('Audit_model');
$data = [
- 'usuario' => $ci->session->userdata('nome'),
+ 'usuario' => $ci->session->userdata('nome_admin'),
'ip' => $ci->input->ip_address(),
'tarefa' => $task,
'data' => date('Y-m-d'),
diff --git a/application/libraries/Gateways/Asaas.php b/application/libraries/Gateways/Asaas.php
index 057be0e9..180d693f 100644
--- a/application/libraries/Gateways/Asaas.php
+++ b/application/libraries/Gateways/Asaas.php
@@ -167,6 +167,10 @@ protected function gerarCobrancaBoleto($id, $tipo)
$desconto = [$tipo === PaymentGateway::PAYMENT_TYPE_OS
? $this->ci->Os_model->getById($id)
: $this->ci->vendas_model->getById($id)];
+
+ $tipo_desconto = [$tipo === PaymentGateway::PAYMENT_TYPE_OS
+ ? $this->ci->Os_model->getById($id)
+ : $this->ci->vendas_model->getById($id)];
$totalProdutos = array_reduce(
$produtos,
@@ -182,6 +186,13 @@ function ($total, $item) {
},
0
);
+ $tipoDesconto = array_reduce(
+ $tipo_desconto,
+ function ($total, $item) {
+ return $item->tipo_desconto;
+ },
+ 0
+ );
$totalDesconto = array_reduce(
$desconto,
function ($total, $item) {
@@ -208,7 +219,7 @@ function ($total, $item) {
'customer' => $this->criarOuRetornarClienteAsaasId($entity->clientes_id),
'billingType' => 'BOLETO',
'dueDate' => $expirationDate,
- 'value' => $this->valorTotal($totalProdutos, $totalServicos, $totalDesconto),
+ 'value' => $this->valorTotal($totalProdutos, $totalServicos, $totalDesconto, $tipoDesconto),
'description' => $tipo === PaymentGateway::PAYMENT_TYPE_OS ? "OS #$id" : "Venda #$id",
'externalReference' => $id,
'postalService' => false,
@@ -228,7 +239,7 @@ function ($total, $item) {
'expire_at' => $result->dueDate,
'charge_id' => $result->id,
'status' => $result->status,
- 'total' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto)),
+ 'total' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto, $tipoDesconto)),
'payment' => $result->billingType,
'clientes_id' => $entity->idClientes,
'payment_method' => 'boleto',
@@ -261,6 +272,9 @@ protected function gerarCobrancaLink($id, $tipo)
$servicos = $tipo === PaymentGateway::PAYMENT_TYPE_OS
? $this->ci->Os_model->getServicos($id)
: [];
+ $tipo_desconto = [$tipo === PaymentGateway::PAYMENT_TYPE_OS
+ ? $this->ci->Os_model->getById($id)
+ : $this->ci->vendas_model->getById($id)];
$desconto = [$tipo === PaymentGateway::PAYMENT_TYPE_OS
? $this->ci->Os_model->getById($id)
@@ -281,7 +295,13 @@ function ($total, $item) {
},
0
);
-
+ $tipoDesconto = array_reduce(
+ $tipo_desconto,
+ function ($total, $item) {
+ return $item->tipo_desconto;
+ },
+ 0
+ );
$totalDesconto = array_reduce(
$desconto,
function ($total, $item) {
@@ -308,7 +328,7 @@ function ($total, $item) {
'name' => $tipo === PaymentGateway::PAYMENT_TYPE_OS ? "OS #$id" : "Venda #$id",
'description' => $tipo === PaymentGateway::PAYMENT_TYPE_OS ? "OS #$id" : "Venda #$id",
'endDate' => $expirationDate,
- 'value' => $this->valorTotal($totalProdutos, $totalServicos, $totalDesconto),
+ 'value' => $this->valorTotal($totalProdutos, $totalServicos, $totalDesconto, $tipoDesconto),
'billingType' => 'UNDEFINED',
'chargeType' => 'DETACHED',
'dueDateLimitDays' => preg_replace('/[^0-9]/', '', $this->asaasConfig['boleto_expiration']),
@@ -326,7 +346,7 @@ function ($total, $item) {
'expire_at' => $result->endDate,
'charge_id' => $result->id,
'status' => 'PENDING',
- 'total' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto)),
+ 'total' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto, $tipoDesconto)),
'clientes_id' => $entity->idClientes,
'payment_method' => 'link',
'payment_gateway' => 'Asaas',
@@ -352,9 +372,17 @@ function ($total, $item) {
return $data;
}
- private function valorTotal($produtosValor, $servicosValor, $desconto)
+ private function valorTotal($produtosValor, $servicosValor, $desconto, $tipo_desconto)
{
- return (($produtosValor + $servicosValor) - $desconto * ($produtosValor + $servicosValor) / 100);
+ if ($tipo_desconto == "porcento") {
+ $def_desconto = $desconto * ($produtosValor + $servicosValor) / 100;
+ } elseif ($tipo_desconto == "real") {
+ $def_desconto = $desconto;
+ } else {
+ $def_desconto = 0;
+ }
+
+ return ($produtosValor + $servicosValor) - $def_desconto;
}
private function criarOuRetornarClienteAsaasId($clienteId)
@@ -379,8 +407,12 @@ private function criarOuRetornarClienteAsaasId($clienteId)
'addressNumber' => $cliente['numero'],
'complement' => $cliente['complemento'],
'province' => $cliente['bairro'],
+ 'city' => $cliente['cidade'],
+ 'state' => $cliente['estado'],
+ 'country' => 'Brasil',
'externalReference' => $clienteId,
'notificationDisabled' => $this->asaasConfig['notify'] === false,
+ 'observations' => '',
'groupName' => 'mapos',
]);
diff --git a/application/libraries/Gateways/GerencianetSdk.php b/application/libraries/Gateways/GerencianetSdk.php
index e07a537b..b9f0f504 100644
--- a/application/libraries/Gateways/GerencianetSdk.php
+++ b/application/libraries/Gateways/GerencianetSdk.php
@@ -143,9 +143,17 @@ public function confirmarPagamento($id)
return $this->atualizarDados($id);
}
- private function valorTotal($produtosValor, $servicosValor, $desconto)
+ private function valorTotal($produtosValor, $servicosValor, $desconto, $tipo_desconto)
{
- return (($produtosValor + $servicosValor) - $desconto * ($produtosValor + $servicosValor) / 100);
+ if ($tipo_desconto == "porcento") {
+ $def_desconto = $desconto * ($produtosValor + $servicosValor) / 100;
+ } elseif ($tipo_desconto == "real") {
+ $def_desconto = $desconto;
+ } else {
+ $def_desconto = 0;
+ }
+
+ return ($produtosValor + $servicosValor) - $def_desconto;
}
protected function gerarCobrancaBoleto($id, $tipo)
@@ -161,6 +169,10 @@ protected function gerarCobrancaBoleto($id, $tipo)
$desconto = [$tipo === PaymentGateway::PAYMENT_TYPE_OS
? $this->ci->Os_model->getById($id)
: $this->ci->vendas_model->getById($id)];
+
+ $tipo_desconto = [$tipo === PaymentGateway::PAYMENT_TYPE_OS
+ ? $this->ci->Os_model->getById($id)
+ : $this->ci->vendas_model->getById($id)];
$totalProdutos = array_reduce(
$produtos,
@@ -184,6 +196,14 @@ function ($total, $item) {
0
);
+ $tipoDesconto = array_reduce(
+ $tipo_desconto,
+ function ($total, $item) {
+ return $item->tipo_desconto;
+ },
+ 0
+ );
+
if (empty($entity)) {
throw new \Exception('OS ou venda não existe!');
}
@@ -234,7 +254,7 @@ function ($total, $item) {
[
'name' => $tipo === PaymentGateway::PAYMENT_TYPE_OS ? "OS #$id" : "Venda #$id",
'amount' => 1,
- 'value' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto))
+ 'value' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto, $tipoDesconto))
]
],
'metadata' => [
@@ -261,7 +281,7 @@ function ($total, $item) {
'expire_at' => $result['data']['expire_at'],
'charge_id' => $result['data']['charge_id'],
'status' => $result['data']['status'],
- 'total' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto)),
+ 'total' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto, $tipoDesconto)),
'payment' => $result['data']['payment'],
'clientes_id' => $entity->idClientes,
'payment_method' => 'boleto',
@@ -296,6 +316,10 @@ protected function gerarCobrancaLink($id, $tipo)
$desconto = [$tipo === PaymentGateway::PAYMENT_TYPE_OS
? $this->ci->Os_model->getById($id)
: $this->ci->vendas_model->getById($id)];
+
+ $tipo_desconto = [$tipo === PaymentGateway::PAYMENT_TYPE_OS
+ ? $this->ci->Os_model->getById($id)
+ : $this->ci->vendas_model->getById($id)];
$totalProdutos = array_reduce(
$produtos,
@@ -311,6 +335,15 @@ function ($total, $item) {
},
0
);
+
+ $tipoDesconto = array_reduce(
+ $tipo_desconto,
+ function ($total, $item) {
+ return $item->tipo_desconto;
+ },
+ 0
+ );
+
$totalDesconto = array_reduce(
$desconto,
function ($total, $item) {
@@ -339,7 +372,7 @@ function ($total, $item) {
[
'name' => $tipo === PaymentGateway::PAYMENT_TYPE_OS ? "OS #$id" : "Venda #$id",
'amount' => 1,
- 'value' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto))
+ 'value' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto, $tipoDesconto))
]
],
]
@@ -371,7 +404,7 @@ function ($total, $item) {
'expire_at' => $result['data']['expire_at'],
'charge_id' => $result['data']['charge_id'],
'status' => $result['data']['status'],
- 'total' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto)),
+ 'total' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto, $tipoDesconto)),
'clientes_id' => $entity->idClientes,
'payment_method' => 'link',
'payment_gateway' => 'GerencianetSdk',
diff --git a/application/libraries/Gateways/MercadoPago.php b/application/libraries/Gateways/MercadoPago.php
index 30a89cd9..625fc7c5 100644
--- a/application/libraries/Gateways/MercadoPago.php
+++ b/application/libraries/Gateways/MercadoPago.php
@@ -172,6 +172,9 @@ protected function gerarCobrancaBoleto($id, $tipo)
$desconto = [$tipo === PaymentGateway::PAYMENT_TYPE_OS
? $this->ci->Os_model->getById($id)
: $this->ci->vendas_model->getById($id)];
+ $tipo_desconto = [$tipo === PaymentGateway::PAYMENT_TYPE_OS
+ ? $this->ci->Os_model->getById($id)
+ : $this->ci->vendas_model->getById($id)];
$totalProdutos = array_reduce(
$produtos,
@@ -187,6 +190,13 @@ function ($total, $item) {
},
0
);
+ $tipoDesconto = array_reduce(
+ $tipo_desconto,
+ function ($total, $item) {
+ return $item->tipo_desconto;
+ },
+ 0
+ );
$totalDesconto = array_reduce(
$desconto,
function ($total, $item) {
@@ -213,7 +223,7 @@ function ($total, $item) {
$expirationDate = ($expirationDate->format(DateTime::RFC3339_EXTENDED));
$payment = new Payment();
- $payment->transaction_amount = floatval($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto));
+ $payment->transaction_amount = floatval($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto, $tipoDesconto));
$payment->description = PaymentGateway::PAYMENT_TYPE_OS ? "OS #$id" : "Venda #$id";
$payment->payment_method_id = "bolbradesco";
$payment->notification_url = "http://mapos.com.br/";
@@ -248,7 +258,7 @@ function ($total, $item) {
'expire_at' => $payment->date_of_expiration,
'charge_id' => $payment->id,
'status' => $payment->status,
- 'total' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto)),
+ 'total' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto, $tipoDesconto)),
'clientes_id' => $entity->idClientes,
'payment_method' => 'boleto',
'payment_gateway' => 'MercadoPago',
@@ -275,8 +285,16 @@ protected function gerarCobrancaLink($id, $tipo)
throw new Exception('MercadoPago não suporta gerar link pela API, somente pelo painel!');
}
- private function valorTotal($produtosValor, $servicosValor, $desconto)
+ private function valorTotal($produtosValor, $servicosValor, $desconto, $tipo_desconto)
{
- return (($produtosValor + $servicosValor) - $desconto * ($produtosValor + $servicosValor) / 100);
+ if ($tipo_desconto == "porcento") {
+ $def_desconto = $desconto * ($produtosValor + $servicosValor) / 100;
+ } elseif ($tipo_desconto == "real") {
+ $def_desconto = $desconto;
+ } else {
+ $def_desconto = 0;
+ }
+
+ return ($produtosValor + $servicosValor) - $def_desconto;
}
}
diff --git a/application/libraries/Sqltoci.php b/application/libraries/Sqltoci.php
index d82b4f26..20e652d3 100644
--- a/application/libraries/Sqltoci.php
+++ b/application/libraries/Sqltoci.php
@@ -142,7 +142,6 @@ public function generate($tables = null)
## if write file, check if we can
if ($this->write_file) {
-
/* make subdir */
$path = $this->path . '/' . $this->file_name;
@@ -235,8 +234,8 @@ public function generate($tables = null)
if ($column_default == 'CURRENT_TIMESTAMP') {
$up .= PHP_EOL."\t\t\t"."'`$column[Field]` $column[Type] " . ($column['Null'] == 'NO' ? 'NOT NULL' : 'NULL') .
(
- # if its timestamp column, don't '' around default value .... crap way, but should work for now
- $column['Default'] ? ' DEFAULT ' . ($column['Type'] == 'timestamp' ? $column['Default'] : '' . $column['Default'] . '') : ''
+ # if its timestamp column, don't '' around default value .... crap way, but should work for now
+ $column['Default'] ? ' DEFAULT ' . ($column['Type'] == 'timestamp' ? $column['Default'] : '' . $column['Default'] . '') : ''
)
. " $column[Extra]',";
} else {
diff --git a/application/models/Arquivos_model.php b/application/models/Arquivos_model.php
index c68492a7..6239f5b0 100644
--- a/application/models/Arquivos_model.php
+++ b/application/models/Arquivos_model.php
@@ -4,7 +4,6 @@
class Arquivos_model extends CI_Model
{
-
/**
* author: Ramon Silva
* email: silva018-mg@yahoo.com.br
diff --git a/application/models/Clientes_model.php b/application/models/Clientes_model.php
index 899d0f81..bec9c5e8 100644
--- a/application/models/Clientes_model.php
+++ b/application/models/Clientes_model.php
@@ -1,7 +1,6 @@
db->select("
- SUM(case when tipo = 'despesa' then valor end) as despesas,
- SUM(case when tipo = 'receita' then IF(valor_desconto, `valor_desconto`, `valor`) end) as receitas
+ SUM(case when tipo = 'despesa' then valor - desconto end) as despesas,
+ SUM(case when tipo = 'receita' then (IF(valor_desconto = 0, valor, valor_desconto)) end) as receitas
");
$this->db->from('lancamentos');
@@ -50,6 +49,19 @@ public function getTotals($where = '')
return (array) $this->db->get()->row();
}
+ public function getEstatisticasFinanceiro2()
+ {
+ $sql = "SELECT SUM(CASE WHEN baixado = 1 AND tipo = 'receita' THEN IF(valor_desconto = 0, valor, valor_desconto) END) as total_receita,
+ SUM(CASE WHEN baixado = 1 AND tipo = 'despesa' THEN valor - desconto END) as total_despesa,
+ SUM(CASE WHEN baixado = 1 THEN desconto END) as total_valor_desconto,
+ SUM(CASE WHEN baixado = 0 THEN desconto END) as total_valor_desconto_pendente,
+ SUM(CASE WHEN tipo = 'receita' THEN valor END) as total_receita_sem_desconto,
+ SUM(CASE WHEN tipo = 'despesa' THEN valor END) as total_despesa_sem_desconto,
+ SUM(CASE WHEN baixado = 0 AND tipo = 'receita' THEN valor_desconto END) as total_receita_pendente,
+ SUM(CASE WHEN baixado = 0 AND tipo = 'despesa' THEN valor_desconto END) as total_despesa_pendente FROM lancamentos";
+
+ return $this->db->query($sql)->row();
+ }
public function getById($id)
{
@@ -68,6 +80,16 @@ public function add($table, $data)
return false;
}
+ public function add1($table, $data1)
+ {
+ $this->db->insert($table, $data1);
+ if ($this->db->affected_rows() == '1') {
+ return true;
+ }
+
+ return false;
+ }
+
public function edit($table, $data, $fieldID, $ID)
{
$this->db->where($fieldID, $ID);
diff --git a/application/models/Garantias_model.php b/application/models/Garantias_model.php
index a6c7c025..e83ae143 100644
--- a/application/models/Garantias_model.php
+++ b/application/models/Garantias_model.php
@@ -4,7 +4,6 @@
class Garantias_model extends CI_Model
{
-
/**
* author: Wilmerson Felipe
* email: will.phelipe@gmail.com
@@ -44,6 +43,19 @@ public function getById($id)
return $this->db->get()->row();
}
+ public function getByIdOsGarantia($id)
+ {
+ $this->db->select('garantias.*, clientes.nomeCliente, os.idOS as idOs, os.dataFinal as osDataFinal,
+ usuarios.telefone as tecnicoTelefone, usuarios.email as tecnicoEmail, usuarios.nome as tecnicoName');
+ $this->db->from('garantias');
+ $this->db->join('os', 'os.garantias_id = garantias.idGarantias');
+ $this->db->join('clientes', 'os.clientes_id = clientes.idClientes');
+ $this->db->join('usuarios', 'os.usuarios_id = usuarios.idUsuarios');
+ $this->db->where('garantias.idGarantias', $id);
+ $this->db->limit(1);
+ return $this->db->get()->row();
+ }
+
public function add($table, $data, $returnId = false)
{
diff --git a/application/models/Mapos_model.php b/application/models/Mapos_model.php
index 1a49cb2d..b5b87972 100644
--- a/application/models/Mapos_model.php
+++ b/application/models/Mapos_model.php
@@ -1,7 +1,6 @@
db->query($sql)->row();
+ if ($this->db->query($sql) !== false) {
+ return $this->db->query($sql)->row();
+ }
+ return false;
}
public function getEstatisticasFinanceiroMes($year)
@@ -203,35 +204,37 @@ public function getEstatisticasFinanceiroMes($year)
$sql = "
SELECT
- SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 1) AND baixado = 1 AND tipo = 'receita' THEN valor - ((desconto * valor) / 100) END) AS VALOR_JAN_REC,
+ SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 1) AND baixado = 1 AND tipo = 'receita' THEN valor - (IF(tipo_desconto = 'real', desconto, (desconto * valor) / 100)) END) AS VALOR_JAN_REC,
SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 1) AND baixado = 1 AND tipo = 'despesa' THEN valor END) AS VALOR_JAN_DES,
- SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 2) AND baixado = 1 AND tipo = 'receita' THEN valor - ((desconto * valor) / 100) END) AS VALOR_FEV_REC,
+ SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 2) AND baixado = 1 AND tipo = 'receita' THEN valor - (IF(tipo_desconto = 'real', desconto, (desconto * valor) / 100)) END) AS VALOR_FEV_REC,
SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 2) AND baixado = 1 AND tipo = 'despesa' THEN valor END) AS VALOR_FEV_DES,
- SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 3) AND baixado = 1 AND tipo = 'receita' THEN valor - ((desconto * valor) / 100) END) AS VALOR_MAR_REC,
+ SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 3) AND baixado = 1 AND tipo = 'receita' THEN valor - (IF(tipo_desconto = 'real', desconto, (desconto * valor) / 100)) END) AS VALOR_MAR_REC,
SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 3) AND baixado = 1 AND tipo = 'despesa' THEN valor END) AS VALOR_MAR_DES,
- SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 4) AND baixado = 1 AND tipo = 'receita' THEN valor - ((desconto * valor) / 100) END) AS VALOR_ABR_REC,
+ SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 4) AND baixado = 1 AND tipo = 'receita' THEN valor - (IF(tipo_desconto = 'real', desconto, (desconto * valor) / 100)) END) AS VALOR_ABR_REC,
SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 4) AND baixado = 1 AND tipo = 'despesa' THEN valor END) AS VALOR_ABR_DES,
- SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 5) AND baixado = 1 AND tipo = 'receita' THEN valor - ((desconto * valor) / 100) END) AS VALOR_MAI_REC,
+ SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 5) AND baixado = 1 AND tipo = 'receita' THEN valor - (IF(tipo_desconto = 'real', desconto, (desconto * valor) / 100)) END) AS VALOR_MAI_REC,
SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 5) AND baixado = 1 AND tipo = 'despesa' THEN valor END) AS VALOR_MAI_DES,
- SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 6) AND baixado = 1 AND tipo = 'receita' THEN valor - ((desconto * valor) / 100) END) AS VALOR_JUN_REC,
+ SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 6) AND baixado = 1 AND tipo = 'receita' THEN valor - (IF(tipo_desconto = 'real', desconto, (desconto * valor) / 100)) END) AS VALOR_JUN_REC,
SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 6) AND baixado = 1 AND tipo = 'despesa' THEN valor END) AS VALOR_JUN_DES,
- SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 7) AND baixado = 1 AND tipo = 'receita' THEN valor - ((desconto * valor) / 100) END) AS VALOR_JUL_REC,
+ SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 7) AND baixado = 1 AND tipo = 'receita' THEN valor - (IF(tipo_desconto = 'real', desconto, (desconto * valor) / 100)) END) AS VALOR_JUL_REC,
SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 7) AND baixado = 1 AND tipo = 'despesa' THEN valor END) AS VALOR_JUL_DES,
- SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 8) AND baixado = 1 AND tipo = 'receita' THEN valor - ((desconto * valor) / 100) END) AS VALOR_AGO_REC,
+ SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 8) AND baixado = 1 AND tipo = 'receita' THEN valor - (IF(tipo_desconto = 'real', desconto, (desconto * valor) / 100)) END) AS VALOR_AGO_REC,
SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 8) AND baixado = 1 AND tipo = 'despesa' THEN valor END) AS VALOR_AGO_DES,
- SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 9) AND baixado = 1 AND tipo = 'receita' THEN valor - ((desconto * valor) / 100) END) AS VALOR_SET_REC,
+ SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 9) AND baixado = 1 AND tipo = 'receita' THEN valor - (IF(tipo_desconto = 'real', desconto, (desconto * valor) / 100)) END) AS VALOR_SET_REC,
SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 9) AND baixado = 1 AND tipo = 'despesa' THEN valor END) AS VALOR_SET_DES,
- SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 10) AND baixado = 1 AND tipo = 'receita' THEN valor - ((desconto * valor) / 100) END) AS VALOR_OUT_REC,
+ SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 10) AND baixado = 1 AND tipo = 'receita' THEN valor - (IF(tipo_desconto = 'real', desconto, (desconto * valor) / 100)) END) AS VALOR_OUT_REC,
SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 10) AND baixado = 1 AND tipo = 'despesa' THEN valor END) AS VALOR_OUT_DES,
- SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 11) AND baixado = 1 AND tipo = 'receita' THEN valor - ((desconto * valor) / 100) END) AS VALOR_NOV_REC,
+ SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 11) AND baixado = 1 AND tipo = 'receita' THEN valor - (IF(tipo_desconto = 'real', desconto, (desconto * valor) / 100)) END) AS VALOR_NOV_REC,
SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 11) AND baixado = 1 AND tipo = 'despesa' THEN valor END) AS VALOR_NOV_DES,
- SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 12) AND baixado = 1 AND tipo = 'receita' THEN valor - ((desconto * valor) / 100) END) AS VALOR_DEZ_REC,
+ SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 12) AND baixado = 1 AND tipo = 'receita' THEN valor - (IF(tipo_desconto = 'real', desconto, (desconto * valor) / 100)) END) AS VALOR_DEZ_REC,
SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 12) AND baixado = 1 AND tipo = 'despesa' THEN valor END) AS VALOR_DEZ_DES
FROM lancamentos
WHERE EXTRACT(YEAR FROM data_pagamento) = ?
";
-
- return $this->db->query($sql, [intval($numbersOnly)])->row();
+ if ($this->db->query($sql, [intval($numbersOnly)]) !== false) {
+ return $this->db->query($sql, [intval($numbersOnly)])->row();
+ }
+ return false;
}
public function getEstatisticasFinanceiroDia($year)
@@ -242,12 +245,15 @@ public function getEstatisticasFinanceiroDia($year)
}
$sql = "
SELECT
- SUM(CASE WHEN (EXTRACT(DAY FROM data_pagamento) = " . date('d') . ") AND EXTRACT(MONTH FROM data_pagamento) = " . date('m') . " AND baixado = 1 AND tipo = 'receita' THEN valor - ((desconto * valor) / 100) END) AS VALOR_" . date('m') . "_REC,
+ SUM(CASE WHEN (EXTRACT(DAY FROM data_pagamento) = " . date('d') . ") AND EXTRACT(MONTH FROM data_pagamento) = " . date('m') . " AND baixado = 1 AND tipo = 'receita' THEN valor - (IF(tipo_desconto = 'real', desconto, (desconto * valor) / 100)) END) AS VALOR_" . date('m') . "_REC,
SUM(CASE WHEN (EXTRACT(DAY FROM data_pagamento) = " . date('d') . ") AND EXTRACT(MONTH FROM data_pagamento) = " . date('m') . " AND baixado = 1 AND tipo = 'despesa' THEN valor END) AS VALOR_" . date('m') . "_DES
FROM lancamentos
WHERE EXTRACT(YEAR FROM data_pagamento) = ?
";
- return $this->db->query($sql, [intval($numbersOnly)])->row();
+ if ($this->db->query($sql, [intval($numbersOnly)]) !== false) {
+ return $this->db->query($sql, [intval($numbersOnly)])->row();
+ }
+ return false;
}
public function getEstatisticasFinanceiroMesInadimplencia($year)
@@ -287,13 +293,15 @@ public function getEstatisticasFinanceiroMesInadimplencia($year)
FROM lancamentos
WHERE EXTRACT(YEAR FROM data_pagamento) = ?
";
-
- return $this->db->query($sql, [intval($numbersOnly)])->row();
+ if ($this->db->query($sql, [intval($numbersOnly)]) !== false) {
+ return $this->db->query($sql, [intval($numbersOnly)])->row();
+ }
+ return false;
}
public function getEmitente()
{
- return $this->db->get('emitente')->result();
+ return $this->db->get('emitente')->row();
}
public function addEmitente($nome, $cnpj, $ie, $cep, $logradouro, $numero, $bairro, $cidade, $uf, $telefone, $email, $logo)
diff --git a/application/models/Os_model.php b/application/models/Os_model.php
index 5e21370f..135b513a 100644
--- a/application/models/Os_model.php
+++ b/application/models/Os_model.php
@@ -4,7 +4,6 @@
class Os_model extends CI_Model
{
-
/**
* author: Ramon Silva
* email: silva018-mg@yahoo.com.br
@@ -94,7 +93,7 @@ public function getOs($table, $fields, $where = [], $perpage = 0, $start = 0, $o
public function getById($id)
{
- $this->db->select('os.*, clientes.*, clientes.celular as celular_cliente, clientes.documento as documento_cliente, garantias.refGarantia, usuarios.telefone as telefone_usuario, usuarios.email as email_usuario, usuarios.nome');
+ $this->db->select('os.*, clientes.*, clientes.celular as celular_cliente, garantias.refGarantia, usuarios.telefone as telefone_usuario, usuarios.email as email_usuario, usuarios.nome');
$this->db->from('os');
$this->db->join('clientes', 'clientes.idClientes = os.clientes_id');
$this->db->join('usuarios', 'usuarios.idUsuarios = os.usuarios_id');
@@ -364,14 +363,12 @@ public function getQrCode($id, $pixKey, $emitente)
}
$pix = (new StaticPayload())
- ->applyValidCharacters()
- ->applyUppercase()
- ->setPixKey(getPixKeyType($pixKey), $pixKey)
- ->setMerchantName($emitente->nome, true)
- ->setMerchantCity($emitente->cidade, true)
->setAmount($amount)
->setTid($id)
- ->setDescription(sprintf("%s OS %s", $emitente->nome, $id), true);
+ ->setDescription(sprintf("%s OS %s", substr($emitente->nome, 0, 18), $id), true)
+ ->setPixKey(getPixKeyType($pixKey), $pixKey)
+ ->setMerchantName($emitente->nome)
+ ->setMerchantCity($emitente->cidade);
return $pix->getQRCode();
}
diff --git a/application/models/Permissoes_model.php b/application/models/Permissoes_model.php
index 61b3e013..b88013cb 100644
--- a/application/models/Permissoes_model.php
+++ b/application/models/Permissoes_model.php
@@ -1,8 +1,6 @@
db->escape($tipo);
}
- $query = "SELECT * FROM clientes WHERE dataCadastro $whereData ORDER BY nomeCliente";
+ $query = "SELECT idClientes, nomeCliente, sexo, pessoa_fisica,
+ documento, telefone, celular, contato, email, fornecedor,
+ dataCadastro, rua, numero, complemento, bairro, cidade, estado,
+ cep FROM clientes WHERE dataCadastro $whereData ORDER BY nomeCliente";
return $this->db->query($query, [$dataInicial, $dataFinal])->result();
}
public function clientesRapid($array = false)
{
+ $this->db->select('idClientes, nomeCliente, sexo, pessoa_fisica,
+ documento, telefone, celular, contato, email, fornecedor,
+ dataCadastro, rua, numero, complemento, bairro, cidade, estado,
+ cep');
+
$this->db->order_by('nomeCliente', 'asc');
+ $this->db->select('idClientes, nomeCliente, sexo, pessoa_fisica,
+ documento, telefone, celular, contato, email, fornecedor,
+ dataCadastro, rua, numero, complemento, bairro, cidade, estado,
+ cep');
+
$result = $this->db->get('clientes');
if ($array) {
return $result->result_array();
@@ -412,8 +424,8 @@ public function receitasBrutasRapid()
SELECT
SUM(valor) total,
SUM(case when descricao NOT LIKE '%Fatura de OS%' AND descricao NOT LIKE '%Fatura de Venda%' then valor else 0 end) as totalOutros,
- SUM(case when descricao LIKE '%Fatura de OS%' then valor else 0 end) as totalServicos,
- SUM(case when descricao LIKE '%Fatura de Venda%' then valor else 0 end) as totalVendas
+ SUM(case when descricao LIKE '%Fatura de OS%' then valor - desconto else 0 end) as totalServicos,
+ SUM(case when descricao LIKE '%Fatura de Venda%' then valor - desconto else 0 end) as totalVendas
FROM lancamentos
WHERE baixado = 1
AND tipo = 'receita'
diff --git a/application/models/ResetSenhas_model.php b/application/models/ResetSenhas_model.php
index 1eabb040..299adab6 100644
--- a/application/models/ResetSenhas_model.php
+++ b/application/models/ResetSenhas_model.php
@@ -4,7 +4,6 @@
class ResetSenhas_model extends CI_Model
{
-
/**
* author: Wilmerson
* email: will.phelipe@gmail.com
diff --git a/application/models/Servicos_model.php b/application/models/Servicos_model.php
index 2cdb2947..bb28e4bd 100644
--- a/application/models/Servicos_model.php
+++ b/application/models/Servicos_model.php
@@ -1,8 +1,6 @@
applyValidCharacters()
- ->applyUppercase()
- ->setPixKey(getPixKeyType($pixKey), $pixKey)
- ->setMerchantName($emitente->nome, true)
- ->setMerchantCity($emitente->cidade, true)
->setAmount($amount)
->setTid($id)
- ->setDescription(sprintf("%s Venda %s", $emitente->nome, $id), true);
+ ->setDescription(sprintf("%s Venda %s", substr($emitente->nome, 0, 18), $id), true)
+ ->setPixKey(getPixKeyType($pixKey), $pixKey)
+ ->setMerchantName($emitente->nome)
+ ->setMerchantCity($emitente->cidade);
return $pix->getQRCode();
}
diff --git a/application/third_party/MX/Loader.php b/application/third_party/MX/Loader.php
index fd1f904a..01e6a1a1 100644
--- a/application/third_party/MX/Loader.php
+++ b/application/third_party/MX/Loader.php
@@ -616,7 +616,7 @@ public function _autoloader($autoload)
if ($this->_module) {
- // Backward function
+ // Backward function
// Before PHP 7.1.0, list() only worked on numerical arrays and assumes the numerical indices start at 0.
if (version_compare(phpversion(), '7.1', '<')) {
// php version isn't high enough
diff --git a/application/vendor/autoload.php b/application/vendor/autoload.php
index 31bcba53..d2516c67 100644
--- a/application/vendor/autoload.php
+++ b/application/vendor/autoload.php
@@ -2,6 +2,24 @@
// autoload.php @generated by Composer
+if (PHP_VERSION_ID < 50600) {
+ if (!headers_sent()) {
+ header('HTTP/1.1 500 Internal Server Error');
+ }
+ $err = 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL;
+ if (!ini_get('display_errors')) {
+ if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
+ fwrite(STDERR, $err);
+ } elseif (!headers_sent()) {
+ echo $err;
+ }
+ }
+ trigger_error(
+ $err,
+ E_USER_ERROR
+ );
+}
+
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit248570faf8273b26bc60a7daaac4ff08::getLoader();
diff --git a/application/vendor/bin/php-cs-fixer b/application/vendor/bin/php-cs-fixer
new file mode 100644
index 00000000..ffb11433
--- /dev/null
+++ b/application/vendor/bin/php-cs-fixer
@@ -0,0 +1,120 @@
+#!/usr/bin/env php
+realpath = realpath($opened_path) ?: $opened_path;
+ $opened_path = $this->realpath;
+ $this->handle = fopen($this->realpath, $mode);
+ $this->position = 0;
+
+ return (bool) $this->handle;
+ }
+
+ public function stream_read($count)
+ {
+ $data = fread($this->handle, $count);
+
+ if ($this->position === 0) {
+ $data = preg_replace('{^#!.*\r?\n}', '', $data);
+ }
+
+ $this->position += strlen($data);
+
+ return $data;
+ }
+
+ public function stream_cast($castAs)
+ {
+ return $this->handle;
+ }
+
+ public function stream_close()
+ {
+ fclose($this->handle);
+ }
+
+ public function stream_lock($operation)
+ {
+ return $operation ? flock($this->handle, $operation) : true;
+ }
+
+ public function stream_seek($offset, $whence)
+ {
+ if (0 === fseek($this->handle, $offset, $whence)) {
+ $this->position = ftell($this->handle);
+ return true;
+ }
+
+ return false;
+ }
+
+ public function stream_tell()
+ {
+ return $this->position;
+ }
+
+ public function stream_eof()
+ {
+ return feof($this->handle);
+ }
+
+ public function stream_stat()
+ {
+ return array();
+ }
+
+ public function stream_set_option($option, $arg1, $arg2)
+ {
+ return true;
+ }
+
+ public function url_stat($path, $flags)
+ {
+ $path = substr($path, 17);
+ if (file_exists($path)) {
+ return stat($path);
+ }
+
+ return false;
+ }
+ }
+ }
+
+ if (
+ (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true))
+ || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper'))
+ ) {
+ include("phpvfscomposer://" . __DIR__ . '/..'.'/friendsofphp/php-cs-fixer/php-cs-fixer');
+ exit(0);
+ }
+}
+
+include __DIR__ . '/..'.'/friendsofphp/php-cs-fixer/php-cs-fixer';
diff --git a/application/vendor/bin/php-cs-fixer.bat b/application/vendor/bin/php-cs-fixer.bat
new file mode 100644
index 00000000..83db5d59
--- /dev/null
+++ b/application/vendor/bin/php-cs-fixer.bat
@@ -0,0 +1,5 @@
+@ECHO OFF
+setlocal DISABLEDELAYEDEXPANSION
+SET BIN_TARGET=%~dp0/php-cs-fixer
+SET COMPOSER_RUNTIME_BIN_DIR=%~dp0
+php "%BIN_TARGET%" %*
diff --git a/application/vendor/bin/var-dump-server b/application/vendor/bin/var-dump-server
new file mode 100644
index 00000000..c52c7727
--- /dev/null
+++ b/application/vendor/bin/var-dump-server
@@ -0,0 +1,120 @@
+#!/usr/bin/env php
+realpath = realpath($opened_path) ?: $opened_path;
+ $opened_path = $this->realpath;
+ $this->handle = fopen($this->realpath, $mode);
+ $this->position = 0;
+
+ return (bool) $this->handle;
+ }
+
+ public function stream_read($count)
+ {
+ $data = fread($this->handle, $count);
+
+ if ($this->position === 0) {
+ $data = preg_replace('{^#!.*\r?\n}', '', $data);
+ }
+
+ $this->position += strlen($data);
+
+ return $data;
+ }
+
+ public function stream_cast($castAs)
+ {
+ return $this->handle;
+ }
+
+ public function stream_close()
+ {
+ fclose($this->handle);
+ }
+
+ public function stream_lock($operation)
+ {
+ return $operation ? flock($this->handle, $operation) : true;
+ }
+
+ public function stream_seek($offset, $whence)
+ {
+ if (0 === fseek($this->handle, $offset, $whence)) {
+ $this->position = ftell($this->handle);
+ return true;
+ }
+
+ return false;
+ }
+
+ public function stream_tell()
+ {
+ return $this->position;
+ }
+
+ public function stream_eof()
+ {
+ return feof($this->handle);
+ }
+
+ public function stream_stat()
+ {
+ return array();
+ }
+
+ public function stream_set_option($option, $arg1, $arg2)
+ {
+ return true;
+ }
+
+ public function url_stat($path, $flags)
+ {
+ $path = substr($path, 17);
+ if (file_exists($path)) {
+ return stat($path);
+ }
+
+ return false;
+ }
+ }
+ }
+
+ if (
+ (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true))
+ || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper'))
+ ) {
+ include("phpvfscomposer://" . __DIR__ . '/..'.'/symfony/var-dumper/Resources/bin/var-dump-server');
+ exit(0);
+ }
+}
+
+include __DIR__ . '/..'.'/symfony/var-dumper/Resources/bin/var-dump-server';
diff --git a/application/vendor/bin/var-dump-server.bat b/application/vendor/bin/var-dump-server.bat
new file mode 100644
index 00000000..94333da5
--- /dev/null
+++ b/application/vendor/bin/var-dump-server.bat
@@ -0,0 +1,5 @@
+@ECHO OFF
+setlocal DISABLEDELAYEDEXPANSION
+SET BIN_TARGET=%~dp0/var-dump-server
+SET COMPOSER_RUNTIME_BIN_DIR=%~dp0
+php "%BIN_TARGET%" %*
diff --git a/application/vendor/codeigniter/framework/.gitignore b/application/vendor/codeigniter/framework/.gitignore
index 269044ea..323f0646 100644
--- a/application/vendor/codeigniter/framework/.gitignore
+++ b/application/vendor/codeigniter/framework/.gitignore
@@ -9,6 +9,7 @@ application/logs/*
!application/*/.htaccess
composer.lock
+tests/mocks/database/ci_test.sqlite
user_guide_src/build/*
user_guide_src/cilexer/build/*
diff --git a/application/vendor/codeigniter/framework/application/config/config.php b/application/vendor/codeigniter/framework/application/config/config.php
index 10315220..35ace5cc 100644
--- a/application/vendor/codeigniter/framework/application/config/config.php
+++ b/application/vendor/codeigniter/framework/application/config/config.php
@@ -13,9 +13,9 @@
|
| WARNING: You MUST set this value!
|
-| If it is not set, then CodeIgniter will try guess the protocol and path
-| your installation, but due to security concerns the hostname will be set
-| to $_SERVER['SERVER_ADDR'] if available, or localhost otherwise.
+| If it is not set, then CodeIgniter will try to guess the protocol and
+| path to your installation, but due to security concerns the hostname will
+| be set to $_SERVER['SERVER_ADDR'] if available, or localhost otherwise.
| The auto-detection mechanism exists only for convenience during
| development and MUST NOT be used in production!
|
@@ -62,7 +62,9 @@
| This option allows you to add a suffix to all URLs generated by CodeIgniter.
| For more information please see the user guide:
|
-| https://codeigniter.com/user_guide/general/urls.html
+| https://codeigniter.com/userguide3/general/urls.html
+|
+| Note: This option is ignored for CLI requests.
*/
$config['url_suffix'] = '';
@@ -110,8 +112,8 @@
| This item allows you to set the filename/classname prefix when extending
| native libraries. For more information please see the user guide:
|
-| https://codeigniter.com/user_guide/general/core_classes.html
-| https://codeigniter.com/user_guide/general/creating_libraries.html
+| https://codeigniter.com/userguide3/general/core_classes.html
+| https://codeigniter.com/userguide3/general/creating_libraries.html
|
*/
$config['subclass_prefix'] = 'MY_';
@@ -321,7 +323,7 @@
| If you use the Encryption class, you must set an encryption key.
| See the user guide for more info.
|
-| https://codeigniter.com/user_guide/libraries/encryption.html
+| https://codeigniter.com/userguide3/libraries/encryption.html
|
*/
$config['encryption_key'] = '';
@@ -339,6 +341,10 @@
|
| The session cookie name, must contain only [0-9a-z_-] characters
|
+| 'sess_samesite'
+|
+| Session cookie SameSite attribute: Lax (default), Strict or None
+|
| 'sess_expiration'
|
| The number of SECONDS you want the session to last.
@@ -379,6 +385,7 @@
*/
$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
+$config['sess_samesite'] = 'Lax';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = NULL;
$config['sess_match_ip'] = FALSE;
@@ -395,6 +402,7 @@
| 'cookie_path' = Typically will be a forward slash
| 'cookie_secure' = Cookie will only be set if a secure HTTPS connection exists.
| 'cookie_httponly' = Cookie will only be accessible via HTTP(S) (no javascript)
+| 'cookie_samesite' = Cookie's samesite attribute (Lax, Strict or None)
|
| Note: These settings (with the exception of 'cookie_prefix' and
| 'cookie_httponly') will also affect sessions.
@@ -405,6 +413,7 @@
$config['cookie_path'] = '/';
$config['cookie_secure'] = FALSE;
$config['cookie_httponly'] = FALSE;
+$config['cookie_samesite'] = 'Lax';
/*
|--------------------------------------------------------------------------
diff --git a/application/vendor/codeigniter/framework/application/config/hooks.php b/application/vendor/codeigniter/framework/application/config/hooks.php
index a8f38a5d..79c5c162 100644
--- a/application/vendor/codeigniter/framework/application/config/hooks.php
+++ b/application/vendor/codeigniter/framework/application/config/hooks.php
@@ -8,6 +8,6 @@
| This file lets you define "hooks" to extend CI without hacking the core
| files. Please see the user guide for info:
|
-| https://codeigniter.com/user_guide/general/hooks.html
+| https://codeigniter.com/userguide3/general/hooks.html
|
*/
diff --git a/application/vendor/codeigniter/framework/application/config/memcached.php b/application/vendor/codeigniter/framework/application/config/memcached.php
index 5c23b39c..65a14961 100644
--- a/application/vendor/codeigniter/framework/application/config/memcached.php
+++ b/application/vendor/codeigniter/framework/application/config/memcached.php
@@ -7,7 +7,7 @@
| -------------------------------------------------------------------------
| Your Memcached servers can be specified below.
|
-| See: https://codeigniter.com/user_guide/libraries/caching.html#memcached
+| See: https://codeigniter.com/userguide3/libraries/caching.html#memcached
|
*/
$config = array(
diff --git a/application/vendor/codeigniter/framework/application/config/mimes.php b/application/vendor/codeigniter/framework/application/config/mimes.php
index 7aa5c9e4..b2e989fe 100644
--- a/application/vendor/codeigniter/framework/application/config/mimes.php
+++ b/application/vendor/codeigniter/framework/application/config/mimes.php
@@ -5,7 +5,7 @@
| -------------------------------------------------------------------
| MIME TYPES
| -------------------------------------------------------------------
-| This file contains an array of mime types. It is used by the
+| This file contains an array of mime types. It is used by the
| Upload class to help identify allowed file types.
|
*/
@@ -85,9 +85,11 @@
'jpm' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
'mj2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
'mjp2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
- 'png' => array('image/png', 'image/x-png'),
+ 'png' => array('image/png', 'image/x-png'),
'tiff' => 'image/tiff',
'tif' => 'image/tiff',
+ 'heic' => 'image/heic',
+ 'heif' => 'image/heif',
'css' => array('text/css', 'text/plain'),
'html' => array('text/html', 'text/plain'),
'htm' => array('text/html', 'text/plain'),
@@ -160,7 +162,7 @@
'cdr' => array('application/cdr', 'application/coreldraw', 'application/x-cdr', 'application/x-coreldraw', 'image/cdr', 'image/x-cdr', 'zz-application/zz-winassoc-cdr'),
'wma' => array('audio/x-ms-wma', 'video/x-ms-asf'),
'jar' => array('application/java-archive', 'application/x-java-application', 'application/x-jar', 'application/x-compressed'),
- 'svg' => array('image/svg+xml', 'application/xml', 'text/xml'),
+ 'svg' => array('image/svg+xml', 'image/svg', 'application/xml', 'text/xml'),
'vcf' => 'text/x-vcard',
'srt' => array('text/srt', 'text/plain'),
'vtt' => array('text/vtt', 'text/plain'),
diff --git a/application/vendor/codeigniter/framework/application/config/profiler.php b/application/vendor/codeigniter/framework/application/config/profiler.php
index 3db22e39..3436e931 100644
--- a/application/vendor/codeigniter/framework/application/config/profiler.php
+++ b/application/vendor/codeigniter/framework/application/config/profiler.php
@@ -9,6 +9,6 @@
| data are displayed when the Profiler is enabled.
| Please see the user guide for info:
|
-| https://codeigniter.com/user_guide/general/profiling.html
+| https://codeigniter.com/userguide3/general/profiling.html
|
*/
diff --git a/application/vendor/codeigniter/framework/application/config/routes.php b/application/vendor/codeigniter/framework/application/config/routes.php
index 1b45740d..e8e2296f 100644
--- a/application/vendor/codeigniter/framework/application/config/routes.php
+++ b/application/vendor/codeigniter/framework/application/config/routes.php
@@ -19,7 +19,7 @@
|
| Please see the user guide for complete details:
|
-| https://codeigniter.com/user_guide/general/routing.html
+| https://codeigniter.com/userguide3/general/routing.html
|
| -------------------------------------------------------------------------
| RESERVED ROUTES
diff --git a/application/vendor/codeigniter/framework/application/config/smileys.php b/application/vendor/codeigniter/framework/application/config/smileys.php
index abf9a898..a9b9191c 100644
--- a/application/vendor/codeigniter/framework/application/config/smileys.php
+++ b/application/vendor/codeigniter/framework/application/config/smileys.php
@@ -10,7 +10,7 @@
| :-) and :) use the same image replacement.
|
| Please see user guide for more info:
-| https://codeigniter.com/user_guide/helpers/smiley_helper.html
+| https://codeigniter.com/userguide3/helpers/smiley_helper.html
|
*/
$smileys = array(
diff --git a/application/vendor/codeigniter/framework/application/config/user_agents.php b/application/vendor/codeigniter/framework/application/config/user_agents.php
index c1581e5c..5e1f6afb 100644
--- a/application/vendor/codeigniter/framework/application/config/user_agents.php
+++ b/application/vendor/codeigniter/framework/application/config/user_agents.php
@@ -152,6 +152,11 @@
'open web' => 'Open Web',
'openweb' => 'OpenWeb',
'meizu' => 'Meizu',
+ 'huawei' => 'Huawei',
+ 'xiaomi' => 'Xiaomi',
+ 'oppo' => 'Oppo',
+ 'vivo' => 'Vivo',
+ 'infinix' => 'Infinix',
// Operating Systems
'android' => 'Android',
@@ -212,5 +217,6 @@
'curious george' => 'Curious George',
'ia_archiver' => 'Alexa Crawler',
'MJ12bot' => 'Majestic-12',
- 'Uptimebot' => 'Uptimebot'
+ 'Uptimebot' => 'Uptimebot',
+ 'UptimeRobot' => 'UptimeRobot'
);
diff --git a/application/vendor/codeigniter/framework/application/controllers/Welcome.php b/application/vendor/codeigniter/framework/application/controllers/Welcome.php
index 9213c0cf..5f82771b 100644
--- a/application/vendor/codeigniter/framework/application/controllers/Welcome.php
+++ b/application/vendor/codeigniter/framework/application/controllers/Welcome.php
@@ -16,7 +16,7 @@ class Welcome extends CI_Controller {
*
* So any other public methods not prefixed with an underscore will
* map to /index.php/welcome/
- * @see https://codeigniter.com/user_guide/general/urls.html
+ * @see https://codeigniter.com/userguide3/general/urls.html
*/
public function index()
{
diff --git a/application/vendor/codeigniter/framework/application/views/welcome_message.php b/application/vendor/codeigniter/framework/application/views/welcome_message.php
index f5115630..9db22bc5 100644
--- a/application/vendor/codeigniter/framework/application/views/welcome_message.php
+++ b/application/vendor/codeigniter/framework/application/views/welcome_message.php
@@ -22,6 +22,11 @@
color: #003399;
background-color: transparent;
font-weight: normal;
+ text-decoration: none;
+ }
+
+ a:hover {
+ color: #97310e;
}
h1 {
@@ -47,6 +52,12 @@
#body {
margin: 0 15px 0 15px;
+ min-height: 96px;
+ }
+
+ p {
+ margin: 0 0 10px;
+ padding:0;
}
p.footer {
@@ -79,11 +90,11 @@
The corresponding controller for this page is found at:
application/controllers/Welcome.php
- If you are exploring CodeIgniter for the very first time, you should start by reading the User Guide.
+ If you are exploring CodeIgniter for the very first time, you should start by reading the User Guide.