Browse Source

Ajuste na verificação de licenças quando houver falha com a licença o sistema so permitirá login com usuario admin e só irá carregar o menu de configurações para inserção de uma licença e o menu de sair do sistema.

pull_11
douglas.strappasson 1 year ago
parent
commit
3c36fdadfd
  1. 2
      configGeral.php
  2. 19
      include/util/funcoesApl.php
  3. 162
      include/util/funcoesLicenca.php

2
configGeral.php

@ -562,7 +562,7 @@ if ($idSubProg == CONFIG_BASE_DADOS) {
$perfils = GetPerfilApl(); $perfils = GetPerfilApl();
$slcOpt = ""; $slcOpt = "";
foreach ($perfils as $k => $v) { foreach ($perfils as $k => $v) {
$slcOpt .= "<option value='{$v['pfa_id']}'>{$v['prf_nome']} - [{$v['pfa_descricao']}]</option>"; $slcOpt .= "<option value='{$v['gp_id']}'>{$v['gp_nome']} - {$v['gp_descricao']}</option>";
} }
$smarty->assign('select_perfil', $slcOpt); $smarty->assign('select_perfil', $slcOpt);

19
include/util/funcoesApl.php

@ -422,22 +422,8 @@ function VerificaCadastroMenu($conn) {
} }
//registro apgados com sucesso //registro apgados com sucesso
if ($result) { if ($result) {
$permissions = existLicense($conn);
//verifica o grupo de permissoes de acordo com o tipo da licença
$query = "SELECT a.fun_id
FROM pbx_grupo_funcoes a
INNER JOIN pbx_grupo b ON a.gp_id = b.gp_id
WHERE a.gp_id IN (SELECT clto_perfil_aplicacao_id
FROM pbx_controle_licenciamento
)
GROUP BY a.fun_id
ORDER BY a.fun_id";
$result = pg_query($conn, $query);
while ($row = pg_fetch_assoc($result)) {
$permissions[] = $row['fun_id'];
}
foreach ($menuUsuario as $key => $value) { foreach ($menuUsuario as $key => $value) {
if (!in_array($value[0], $permissions) && ($value[0] != '112')) { if (!in_array($value[0], $permissions) && ($value[0] != '112')) {
unset($menuUsuario[$key]); unset($menuUsuario[$key]);
@ -496,6 +482,7 @@ function VerificaCadastroMenu($conn) {
} }
} }
function CriaPerfilSincronizacao($conn) { function CriaPerfilSincronizacao($conn) {
$result = true; $result = true;
$query = "delete from pbx_grupo_funcoes where gp_id = (select gp_id from pbx_grupo where gp_nome = 'SincContaSenha' )"; $query = "delete from pbx_grupo_funcoes where gp_id = (select gp_id from pbx_grupo where gp_nome = 'SincContaSenha' )";

162
include/util/funcoesLicenca.php

@ -145,7 +145,7 @@ function DownloadArquivo($nomeArquivo) {
*/ */
function validarLicenca($dbcon) { function validarLicenca($dbcon) {
$db = __getLicencaPBX($dbcon); $db = __getLicencaPBX($dbcon);
if (!$db) { if (!$db) {
return false; return false;
} }
@ -216,18 +216,12 @@ function __writeFile($file, $dados = null, $append = true) {
######################################## ########################################
function __getLicencaPBX($dbcon) { function __getLicencaPBX($dbcon) {
$query = sprintf("SELECT clto_cnpj, clto_data_log, clto_server_registro, clto_contrato_numero FROM pbx_controle_licenciamento;"); $query = "SELECT clto_cnpj, clto_data_log, clto_server_registro, clto_contrato_numero FROM pbx_controle_licenciamento;";
$result = pg_query($dbcon, $query); $result = pg_query($dbcon, $query);
$res = pg_fetch_assoc($result); $res = pg_fetch_assoc($result);
return $res; return $res;
} }
function __getLicencaVMais($document) {
$query = sprintf("SELECT clto_cnpj, clto_data_log, clto_server_registro, clto_contrato_numero FROM sip_controle_licenciamento WHERE clto_cnpj = '$document';");
$resp = __execSQLServer($query);
return $resp;
}
/** /**
* INSERE AS INFORMACOES PASSADAS NO ARQUIVO DE LICENCA PARA O BANCO DO SIMPLESIP * INSERE AS INFORMACOES PASSADAS NO ARQUIVO DE LICENCA PARA O BANCO DO SIMPLESIP
* @param type $dbcon * @param type $dbcon
@ -250,11 +244,6 @@ function __validLicenca($dbcon, $data) {
'clto_licenca_pa', 'clto_licenca_pa',
'clto_licenca_pa_fixo', 'clto_licenca_pa_fixo',
'clto_licenca_ramal', 'clto_licenca_ramal',
//'clto_licenca_supervisor',
//'clto_licenca_pesquisa',
//'clto_licenca_tarifador',
//'clto_licenca_mesaoperadora',
//'clto_licenca_manager_one',
'clto_server_registro', 'clto_server_registro',
'clto_contrato_numero', 'clto_contrato_numero',
'clto_data_registro', 'clto_data_registro',
@ -310,8 +299,9 @@ function __sendLicenca($dbcon, $data, $columns, $table, $where, $filter) {
} }
function GetPerfilApl() { function GetPerfilApl() {
$query = "SELECT * FROM sip_perfil_aplicacao"; $query = "SELECT * FROM pbx_grupo WHERE gp_system = 1 AND gp_id <> 43";
$resp = __execSQLServer($query); $resp = pg_query($query);
$resp = pg_fetch_all($resp);
return $resp; return $resp;
} }
@ -384,129 +374,27 @@ function generateRandomKey() {
return bin2hex(random_bytes(10)); return bin2hex(random_bytes(10));
} }
########################################
#### CONEXÃO VENDA+ ####
########################################
function __dadosLicenca($document, $contracts = []) {
$ctact = implode("','", $contracts);
$data = date('Y-m-d');
$query = "select a.CGC_CPF as cnpj,
d.Numero as contrato_numero,
upper(dbo.sip_remove_acentos(RazaoSocial)) razao_social,
upper(dbo.sip_remove_acentos(Fantasia)) nome_fantasia,
c.Descricao as atividade_empresa,
f.Cidade as cidade_empresa,
f.Uf as uf_empresa,
b.ContatoId as contato_id,
upper( dbo.sip_remove_acentos(b.PrimeiroNome)) as contato_nome,
lower( dbo.sip_remove_acentos(coalesce(b.Email1, b.Email2, Email))) as contato_email,
coalesce(b.Celular, b.TelefoneComercial, b.TelefoneResidencial, a.Telefone) as contato_fone,
0 as perfil_aplicacao_id,
dbo.FormataData(d.DataAssinatura) as contrato_assinatura,
dbo.FormataData(d.DataInicio) as contrato_inicio,
dbo.FormataData(d.DataFim) as contrato_fim,
isnull((
select sum( cast(ContratosItens.Quantidade as int))
from ContratosItens
inner join Produtos on Produtos.ProdutoId = ContratosItens.ProdutoId
inner join Linhas on Linhas.LinhaId = Produtos.LinhaId and Linhas.LinhaId = 32
inner join Divisoes on Divisoes.DivisaoId = Linhas.DivisaoId and Divisoes.DivisaoId = 11
where ContratosItens.ContratoId = d.ContratoId
and Produtos.Referencia like '%AG-P%(%PA)%' OR Produtos.Referencia like '%ISP-P%(%PA)%' OR Produtos.Referencia like '%SX-P%(%PA)%' OR Produtos.Referencia like '%SMT-P%(%PA)%'
),0) as licenca_pa,
isnull((
select sum( cast(ContratosItens.Quantidade as int))
from ContratosItens
inner join Produtos on Produtos.ProdutoId = ContratosItens.ProdutoId
inner join Linhas on Linhas.LinhaId = Produtos.LinhaId and Linhas.LinhaId = 32
inner join Divisoes on Divisoes.DivisaoId = Linhas.DivisaoId and Divisoes.DivisaoId = 11
where ContratosItens.ContratoId = d.ContratoId
and Produtos.Referencia like '%AG-R%(%RAMAL)%' OR Produtos.Referencia like '%ISP-R%(%RAMAL)%' OR Produtos.Referencia like '%SX-R%(%RAMAL)%' OR Produtos.Referencia like '%SMT-R%(%RAMAL)%'), 0) as licenca_ramal,
isnull ((select sum( cast(ContratosItens.Quantidade as int))
from ContratosItens
inner join Produtos on Produtos.ProdutoId = ContratosItens.ProdutoId
inner join Linhas on Linhas.LinhaId = Produtos.LinhaId and Linhas.LinhaId = 32
inner join Divisoes on Divisoes.DivisaoId = Linhas.DivisaoId and Divisoes.DivisaoId = 11
where ContratosItens.ContratoId = d.ContratoId
and Produtos.Referencia like '%LICENCA DE SUPERVISOR%'), 0) as licenca_supervisor,
0 as licenca_discador_preview,
0 as licenca_discador_powerdial,
0 as licenca_discador_predictive,
0 as licenca_pesquisa,
0 as licenca_tarifador,
0 as licenca_whatsapp,
0 as licenca_workflow,
0 as licenca_mesaoperadora,
0 as mult_channel,
0 as licenca_helpdesk,
0 as licenca_crm,
0 as licenca_manager_one,
0 as licenca_help_custom,
'$data' as data_registro,
0 as user_registro,
0 as server_registro,
'$data' as confirma_registro
from Clientes a
inner join Contatos b on b.ClienteId = a.ClienteId
inner join RamosDeAtividade c on c.RamoDeAtividadeId = a.RamoDeAtividadeId
inner join Contratos d on d.ClienteId = a.ClienteId
inner join ClientesEnderecos f on f.ClienteId = a.ClienteId and f.TipoDeEnderecoId = (select min(TipoDeEnderecoId) from ClientesEnderecos where ClienteId = a.ClienteId)
where a.AtivoCliente = 1
and b.ContatoPrincipal = 1
and d.status = 1
and a.CGC_CPF = '$document'
and d.Numero in('$ctact')
group by a.ClienteId,
d.ContratoId,
d.Numero,
b.ContatoId,
a.CGC_CPF,
upper(dbo.sip_remove_acentos(a.RazaoSocial)),
upper(dbo.sip_remove_acentos(a.Fantasia)),
c.Descricao,
dbo.FormataData(d.DataAssinatura),
dbo.FormataData(d.DataInicio),
dbo.FormataData(d.DataFim),
f.Cidade,
f.Uf,
dbo.NumToText(isnull(d.ValorMensal,0)),
upper( dbo.sip_remove_acentos(b.PrimeiroNome)),
coalesce(b.Celular,
b.TelefoneComercial,
b.TelefoneResidencial, a.Telefone),
lower(dbo.sip_remove_acentos(coalesce(b.Email1, b.Email2, Email)));";
$resp = __execSQLServer($query);
return $resp;
}
/** /**
* Realiza conexao com o banco do venda+ * VERIFICA SE EXISTE LICENÇA CADASTRADA NO BANCO DE DADOS E RETORNA AS PERMISSÕES.
* @return type
*/ */
function ConectaMssql() { function existLicense($conn){
$dbhost = "vendas.simplesip.com.br"; //verifica o grupo de permissoes de acordo com o tipo da licença
$dbname = "VendaMaisDB_simplesip"; $query = "SELECT a.fun_id
$user = "sa"; FROM pbx_grupo_funcoes a
$passwd = "SimpleS_root"; INNER JOIN pbx_grupo b ON a.gp_id = b.gp_id
$conn = mssql_connect($dbhost, $user, $passwd); WHERE a.gp_id IN (SELECT clto_perfil_aplicacao_id
mssql_select_db($dbname); FROM pbx_controle_licenciamento
)
return $conn; GROUP BY a.fun_id
} ORDER BY a.fun_id";
$result = pg_query($conn, $query);
function __execSQLServer($query, $return = true) {
$msql = ConectaMssql(); if (!pg_num_rows($result) || !validarLicenca($conn)){
$result = mssql_query($query, $msql); $permissions = array('1', '4');
} else {
if ($return) { while ($row = pg_fetch_assoc($result)) {
$resp = []; $permissions[] = $row['fun_id'];
while ($data = mssql_fetch_array($result)) {
$resp[] = $data;
} }
} }
return $permissions;
mssql_close($msql); }
return $resp ? $resp : $result;
}
Loading…
Cancel
Save