forked from SimplesIP/pabx-app
AMARILDO PEREIRA
2 years ago
12 changed files with 614 additions and 325 deletions
@ -1,4 +1,7 @@ |
|||||||
compara |
compara |
||||||
templates_c |
templates_c |
||||||
integracao/arquivoCampanha |
integracao/arquivoCampanha |
||||||
|
cadastro/licenca/*.lca |
||||||
|
cadastro/licenca/tmp/*.lca |
||||||
|
nbproject |
||||||
|
audios |
||||||
|
@ -1,233 +0,0 @@ |
|||||||
TERMOS DE USO E PRIVACIDADE APLICAÇÃO SIMPLES IP |
|
||||||
|
|
||||||
Última Atualização: 12 de julho de 2021 |
|
||||||
|
|
||||||
Esta aplicação e seu conteúdo ("SIMPLES IP") são controlados e operados pelo próprio |
|
||||||
SIMPLES IP. Todos os direitos reservados. |
|
||||||
|
|
||||||
De acordo com a disposição do artigo 41 da Lei Geral de Proteção de Dados, o SIMPLES |
|
||||||
IP indica Gardemann & Vidotti Advogados Associados, como encarregado pelo |
|
||||||
tratamento de dados, sendo possível o contato através o seguinte e-mail: |
|
||||||
encarregado.simplesip@gev.adv.br e WhatsApp (43) 3373-9394. |
|
||||||
|
|
||||||
Este Termo de Uso e Privacidade, pelas cláusulas adiante descritas, regulamentam o uso |
|
||||||
da aplicação SIMPLES IP, e de seus conteúdos, adiante denominados como |
|
||||||
CONTEÚDOS, sem prejuízo da aplicação da legislação vigente. |
|
||||||
|
|
||||||
AO UTILIZAR O SIMPLES IP, VOCÊ AUTOMATICAMENTE CONCORDA COM ESTES |
|
||||||
TERMOS DE USO E PRIVACIDADE, RESPONSABILIZANDO-SE INTEGRALMENTE POR |
|
||||||
TODOS E QUAISQUER ATOS PRATICADOS POR VOCÊ NO SIMPLES IP OU EM SERVIÇOS A |
|
||||||
ELE RELACIONADOS. CASO VOCÊ NÃO CONCORDE COM QUALQUER DOS TERMOS E |
|
||||||
CONDIÇÕES ABAIXO ESTABELECIDOS, VOCÊ NÃO DEVE UTILIZAR O SIMPLES IP. |
|
||||||
|
|
||||||
Integram os presentes TERMOS DE USO todos os avisos, regulamentos de uso e |
|
||||||
instruções levados ao conhecimento do USUÁRIO pelo SIMPLES IP. |
|
||||||
|
|
||||||
GLOSSÁRIO |
|
||||||
|
|
||||||
Para fins destes Termos de Uso, devem-se considerar as seguintes definições e |
|
||||||
descrições para melhor entendimento: |
|
||||||
Conta de Acesso: Credencial de um usuário cadastrado que permite o acesso à área |
|
||||||
restrita e às funcionalidades exclusivas, que é definida por nome de usuário (login) e |
|
||||||
senha. |
|
||||||
Dados Cadastrais: Conjunto de informações pessoais de um usuário, quando aplicável, |
|
||||||
de modo que o identifique, diferenciando-o dos demais, a exemplo do número do |
|
||||||
documento de identidade (RG), cadastro de pessoa física (CPF) ou jurídica (CNPJ), |
|
||||||
endereço residencial ou comercial, sede, nome completo, "apelido" (login), entre |
|
||||||
outros. |
|
||||||
Layout: Conjunto compreendido entre aparência, design e fluxos da aplicação. |
|
||||||
Login: Nome de Usuário escolhido pelo usuário quando preenche o cadastro para |
|
||||||
acesso a funcionalidades exclusivas da aplicação. |
|
||||||
Logon: Ato de o usuário cadastrado ingressar na área restrita da aplicação |
|
||||||
utilizando login e senha. |
|
||||||
Logs: Registros de atividades do usuário efetuadas na aplicação. |
|
||||||
Senha: Conjunto de caracteres que serve como prova de identidade digital do usuário, |
|
||||||
cujo conhecimento deve ser exclusivo e único. |
|
||||||
Usuário: Indivíduo/pessoa jurídica que acessa a área restrita da aplicação mediante |
|
||||||
login e senha. |
|
||||||
|
|
||||||
1. O QUE É SIMPLES IP? |
|
||||||
|
|
||||||
1.1. Serviços. O SIMPLES IP é uma aplicação que oferece os seguintes serviços: |
|
||||||
gestão e provimento de comunicação por voz feita através da plataforma. |
|
||||||
1.2. Suspensão. Nós nos reservamos o direito de suspender ou cancelar, a qualquer |
|
||||||
momento, o seu acesso à aplicação em caso de suspeita de fraude, obtenção de |
|
||||||
benefício ou vantagem de forma ilícita, ou pelo não cumprimento de quaisquer |
|
||||||
condições previstas nestes Termo de Uso e Privacidade, ou legislação aplicável. Nesses |
|
||||||
casos, não será devida qualquer indenização a você e o SIMPLES IP poderá promover a |
|
||||||
competente ação de regresso, se necessário, bem como tomar quaisquer outras |
|
||||||
medidas necessárias para perseguir e resguardar seus interesses. |
|
||||||
|
|
||||||
2. COMO ACESSO O SIMPLES IP? |
|
||||||
|
|
||||||
2.1. Acesso. Para acessar a plataforma SIMPLES IP e utilizar funcionalidades |
|
||||||
exclusivas, o usuário deverá obter uma conta de acesso, por meio de procedimento de |
|
||||||
cadastro, mais detalhado em seção própria. |
|
||||||
Vale lembrar que não é permitido aos usuários acessar as áreas de programação da |
|
||||||
plataforma, seu banco de dados ou qualquer conjunto de informações que faça parte |
|
||||||
da atividade de webmastering, ficando sujeito quem o fizer à legislação penal brasileira |
|
||||||
e obrigado a reparar os danos que causar. |
|
||||||
Também não é autorizado realizar ou permitir engenharia reversa, nem traduzir, |
|
||||||
decompilar, copiar, modificar, reproduzir, alugar, sublicenciar, publicar, divulgar, |
|
||||||
transmitir, emprestar, distribuir ou, de outra maneira, dispor das ferramentas de |
|
||||||
consulta desta plataforma e de suas funcionalidades. |
|
||||||
Destaca-se que nessa plataforma é proibida a utilização de aplicativo spider, ou de |
|
||||||
mineração de dados, de qualquer tipo ou espécie, além de outro aqui não tipificado, |
|
||||||
mas que atue como um robô, tanto para realizar operações massificadas ou para |
|
||||||
quaisquer outras finalidades, sob aplicação da legislação penal brasileira e de reparar os |
|
||||||
danos que decorrerem desta utilização. |
|
||||||
Ressalta-se, também, que é ônus dos visitantes e usuários arcar com os meios |
|
||||||
necessários para utilizar esta plataforma. |
|
||||||
2.2. Titularidade. A partir do cadastro, você será titular de uma conta que somente |
|
||||||
poderá ser acessada por você. |
|
||||||
|
|
||||||
3. A RELAÇÃO CONTRATUAL ENTRE O SIMPLES IP E O USUÁRIO |
|
||||||
|
|
||||||
3.1. Relação Contratual. Os serviços e o conteúdo oferecidos pela plataforma são de |
|
||||||
propriedade do SIMPLES IP. Ao estabelecer o contrato que permite ao usuário o gozo |
|
||||||
das funcionalidades do sistema, o SIMPLES IP está oferecendo licença de uso de |
|
||||||
plataforma de gestão e provimento de comunicação por voz, cuja a propriedade e |
|
||||||
direitos de propriedade intelectual continuam sendo da SIMPLES IP. |
|
||||||
|
|
||||||
4. DIREITOS AUTORAIS E PROPRIEDADE INTELECTUAL DO SIMPLES IP |
|
||||||
|
|
||||||
4.1. Nossos Direitos. O uso comercial das expressões do SIMPLES IP, como marca, |
|
||||||
nome empresarial ou nome de domínio, além dos conteúdos das telas da plataforma, |
|
||||||
bancos de dados, redes, arquivos que permitem que o usuário acesse sua conta são de |
|
||||||
propriedade do SIMPLES IP e estão protegidos pelas leis e tratados internacionais de |
|
||||||
direito autoral, marcas e patentes, modelos e desenhos industriais. |
|
||||||
4.2. Não concessão de Licença. O SIMPLES IP não concede nenhuma licença ou |
|
||||||
autorização de uso de nenhum tipo sobre seus direitos de propriedade industrial e |
|
||||||
intelectual, segredos empresariais ou sobre qualquer outra propriedade ou direito |
|
||||||
relacionado com a plataforma e seus conteúdos. |
|
||||||
4.3. Proibição de Reprodução. A reprodução dos conteúdos descritos anteriormente |
|
||||||
está proibida, salvo com prévia autorização por escrito do SIMPLES IP ou se destinarem |
|
||||||
a uso exclusivamente pessoal e sem que em nenhuma circunstância os visitantes e |
|
||||||
usuários adquiram qualquer direito sobre os mesmos. |
|
||||||
|
|
||||||
5. UTILIZAÇÃO DA APLICAÇÃO E DE SEUS CONTEÚDOS SOB A EXCLUSIVA |
|
||||||
RESPONSABILIDADE DO USUÁRIO |
|
||||||
|
|
||||||
5.1. Responsabilidade pelo Uso. O USUÁRIO reconhece e aceita voluntariamente que |
|
||||||
o uso do SIMPLES IP e do CONTEÚDO seja feito, em qualquer caso, sob sua única e |
|
||||||
exclusiva responsabilidade. |
|
||||||
5.2. Responsabilização por Eventuais Danos. O SIMPLES IP não será, em hipótese |
|
||||||
alguma, responsabilizado por danos diretos ou indiretos que resultem de, ou tenham |
|
||||||
relação com o acesso, uso ou a incapacidade de acessar ou utilizar o SIMPLES IP. |
|
||||||
|
|
||||||
6. UTILIZAÇÃO DA APLICAÇÃO E DOS SEUS CONTEÚDOS |
|
||||||
|
|
||||||
6.1. Compromisso de Correta Utilização. Você se compromete a utilizar a plataforma |
|
||||||
do SIMPLES IP e os seus conteúdos em conformidade com a lei, com o disposto neste |
|
||||||
Termo de Uso e Privacidade, com a moral, os bons costumes e com a ordem pública, |
|
||||||
assim como se obriga a não utilizar o SIMPLES IP e seus CONTEÚDOS de forma nociva |
|
||||||
aos direitos e interesses de terceiros, ou de qualquer forma que possa vir a causar |
|
||||||
dano, sobrecarregar, inutilizar ou impedir a normal utilização do SIMPLES IP e dos seus |
|
||||||
CONTEÚDOS. |
|
||||||
Ainda, você deve abster-se de obter informações, gráficos, mensagens, arquivos de |
|
||||||
som, gravações, programas e/ou qualquer outro tipo de material acessível através do |
|
||||||
SIMPLES IP ou dos CONTEÚDOS, inclusive de marca, empregando meios ou |
|
||||||
procedimentos diversos daqueles que disponibilizados ou indicados com este propósito |
|
||||||
na aplicação SIMPLES IP. |
|
||||||
Bem como, você obriga-se a utilizar os CONTEÚDOS de forma lícita e, além disso: |
|
||||||
- Se abstém de eliminar ou manipular o copyright ou outros dados que identifiquem os |
|
||||||
direitos do SIMPLES IP ou ainda direitos incorporados ao SIMPLES IP e seus CONTEÚDOS |
|
||||||
de propriedade de terceiros, bem como os dispositivos de proteção, as marcas ou |
|
||||||
quaisquer mecanismos de informação. |
|
||||||
6.2. Titularidade do Conteúdo. Qualquer conteúdo de usuário fornecido por você |
|
||||||
permanece de sua propriedade quando a aplicação SIMPLES IP foi por você contratada, |
|
||||||
ou de propriedade da pessoa jurídica que contratou o SIMPLES IP a qual você possui |
|
||||||
ligação que justificou seu cadastro, como por exemplo, necessidade de que você possua |
|
||||||
um ramal desta empresa. |
|
||||||
6.3. Níveis de acesso. A SIMPLES IP informa que existem diferentes níveis de acesso, |
|
||||||
sendo que a depender do tipo de acesso algumas funcionalidades não são disponíveis |
|
||||||
ao usuário. A CONTRATANTE da aplicação SIMPLES IP é única e exclusiva responsável |
|
||||||
por determinar os níveis de acesso dos usuários a serem cadastrados na aplicação. |
|
||||||
6.4. Acesso ao conteúdo da comunicação por voz pela SIMPLES IP. A SIMPLES IP |
|
||||||
declara que não acessa o conteúdo das comunicações por voz realizada através de sua |
|
||||||
aplicação através de usuários da CONTRATANTE. |
|
||||||
6.5. Acesso ao conteúdo da comunicação por voz pela CONTRATANTE. A depender |
|
||||||
do nível de acesso os usuários da CONTRATANTE poderão ter acesso ao conteúdo e |
|
||||||
gravação da comunicação por voz realizada através da plataforma SIMPLES IP, podendo |
|
||||||
ter acesso ao conteúdo relacionado ao seu ramal ou a outros usuários. A permissão de |
|
||||||
acesso ao conteúdo de outros usuários é relacionada ao nível de acesso à aplicação |
|
||||||
SIMPLES IP, cuja determinação é de responsabilidade exclusiva da CONTRATANTE, |
|
||||||
cabendo a CONTRATANTE limitar ou não tal funcionalidade ao usuário ou grupo de |
|
||||||
usuários. |
|
||||||
|
|
||||||
7. PRIVACIDADE E SEGURANÇA DA PLATAFORMA E DOS SEUS CONTEÚDOS |
|
||||||
|
|
||||||
7.1. Compromisso com a Privacidade. O SIMPLES IP tem o compromisso com a |
|
||||||
privacidade e a segurança de seus USUÁRIOS durante todo o processo de utilização da |
|
||||||
aplicação. Os dados cadastrais dos usuários não são vendidos, trocados ou divulgados |
|
||||||
para terceiros, exceto quando essas informações são necessárias para cumprimento de |
|
||||||
obrigações legais ou determinações judiciais. Seus dados pessoais são peça |
|
||||||
fundamental para que seu cadastro seja feito. |
|
||||||
7.2. Recomendações quanto à Senha. Para que estes dados permaneçam intactos, |
|
||||||
nós desaconselhamos expressamente a divulgação de sua senha a terceiros, mesmo a |
|
||||||
amigos, colegas de trabalho ou supervisores. O SIMPLES IP exime-se de |
|
||||||
responsabilidade pelos danos, prejuízos e/ou lucros cessantes de qualquer natureza que |
|
||||||
possam advir do conhecimento que possam ter terceiros não autorizados a respeito de |
|
||||||
condições, características e circunstâncias de uso que os usuários fazem do SIMPLES IP |
|
||||||
ou de seus CONTEÚDOS. |
|
||||||
|
|
||||||
8. OBTENÇÃO DOS DADOS E INFORMAÇÕES |
|
||||||
|
|
||||||
8.1. Obtenção de Dados. Os dados e informações serão obtidos quando a |
|
||||||
CONTRATANTE: |
|
||||||
- Fornecer seus dados e de seus usuários para cadastros com preenchimento das |
|
||||||
informações necessárias; ou |
|
||||||
- Os usuários interagirem com as diversas funcionalidades existentes na aplicação, |
|
||||||
fornecendo as informações voluntariamente, como nas funcionalidades de pausa, por |
|
||||||
exemplo; |
|
||||||
- Cadastrar e configurar o sistema, inclusive abertura de ramais, a depender do nível de |
|
||||||
acesso da CONTRATANTE; |
|
||||||
|
|
||||||
9. INFORMAÇÕES COLETADAS - FINALIDADE, ATUALIZAÇÃO OU MUDANÇA DE PERFIL |
|
||||||
E FORMA DE UTILIZAÇÃO |
|
||||||
|
|
||||||
9.1. Armazenamento. As informações cadastrais do usuário serão armazenadas em |
|
||||||
um servidor seguro e têm o intuito exclusivo de fornecer acesso à área restrita que |
|
||||||
permite a utilização das funcionalidades. |
|
||||||
9.2. Exclusão de Responsabilidade. Contudo, considerando que nenhum sistema de |
|
||||||
segurança é absolutamente seguro, o SIMPLES IP se exime de quaisquer |
|
||||||
responsabilidades por eventuais danos e/ou prejuízos decorrentes de falhas, vírus ou |
|
||||||
invasores do banco de dados da plataforma, salvo no caso de dolo ou culpa da mesma. |
|
||||||
9.3. Precisão das Informações. A CONTRATANTE se responsabiliza pela precisão e |
|
||||||
veracidade dos dados informados. |
|
||||||
9.4. Exclusão dos Dados. A CONTRATANTE poderá, a qualquer momento, excluir a |
|
||||||
conta de determinado usuário no SIMPLES IP sem necessitar solicitar à SIMPLES IP, |
|
||||||
ficando ressalvada a guarda pelo SIMPLES IP das informações e/ou dados cuja |
|
||||||
manutenção seja a eles imposta em razão de obrigações legais e/ou regulatórias ou, |
|
||||||
ainda, cuja a manutenção seja necessária para cumprimento de ordem judicial, no |
|
||||||
âmbito de processos judiciais e/ou administrativos e questionamento de terceiros |
|
||||||
decorrentes das atividades desempenhadas pelo usuário no SIMPLES IP. |
|
||||||
9.5. Do Não Compartilhamento com Terceiros. Os dados pessoais dos usuários não |
|
||||||
serão compartilhados com terceiros, sendo que os dados adquiridos somente poderão |
|
||||||
ser acessados por profissionais devidamente autorizados, respeitando a necessidade a |
|
||||||
que serão submetidos. A SIMPLES IP se compromete em estabelecer com estes |
|
||||||
profissionais termos de confidencialidade e sigilo. |
|
||||||
|
|
||||||
10. DO REGISTRO DE ATIVIDADES |
|
||||||
|
|
||||||
10.1. Consentimento do Registro. Você consente que o SIMPLES IP poderá registrar as |
|
||||||
atividades efetuadas na plataforma, por meio de logs, incluindo: Ações efetuadas; Datas |
|
||||||
e horários de cada acesso; e Session ID. Os referidos registros são realizados para o |
|
||||||
estrito cumprimento legal, sendo que poderão ser utilizados pelo SIMPLES IP em casos |
|
||||||
de investigação de fraudes ou de alterações indevidas em seus sistemas e cadastros, |
|
||||||
bem como, em determinados casos, disponibilizados à CONTRATANTE em relação aos |
|
||||||
seus usuários, inclusive podem a CONTRATANTE realizar consulta a determinados |
|
||||||
registros. |
|
||||||
|
|
||||||
11. ACEITE |
|
||||||
|
|
||||||
11.1. Aceite Expresso. Ao acessar o SIMPLES IP e clicar no campo "Li e aceito os |
|
||||||
Termos e Condições de Uso e Política de Privacidade" os usuários, expressamente e |
|
||||||
sem ressalvas concordam com todos os referidos termos e condições. |
|
||||||
|
|
||||||
12. LEI APLICÁVEL E FORO |
|
||||||
|
|
||||||
Estes TERMOS DE USO E PRIVACIDADE são regidos pelas leis brasileiras. O SIMPLES IP e |
|
||||||
USUÁRIOS, com renúncia expressa a qualquer outro foro, se submetem ao Foro de |
|
||||||
Cuiabá/MT. |
|
||||||
|
|
Before Width: | Height: | Size: 745 B |
@ -1,49 +0,0 @@ |
|||||||
<?php |
|
||||||
/* |
|
||||||
* Configuração para acesso ao banco de dados principal da aplicação. |
|
||||||
*/ |
|
||||||
$dbPort = getenv('DB_PORT') ? getenv('DB_PORT') : '5432'; |
|
||||||
$dbHost = getenv('DB_HOST') ? getenv('DB_HOST') : 'algar.simplesip.com.br'; |
|
||||||
$dbName = getenv('DB_BASE') ? getenv('DB_BASE') : 'pbx'; |
|
||||||
$dbUser = getenv('DB_USER') ? getenv('DB_USER') : 'contacte'; |
|
||||||
$dbPassword = getenv('DB_PASSWD') ? getenv('DB_PASSWD') : 'ctepgSQL'; |
|
||||||
|
|
||||||
/* |
|
||||||
* Esta configuração define se o servidor será Master |
|
||||||
* e se havera sincronização da conta/senha entre os multiplos sites. |
|
||||||
* Obs.: Quando não utilizar sincronização de conta/senha o valor de |
|
||||||
* master deve ser 1. |
|
||||||
*/ |
|
||||||
$master = 1; |
|
||||||
$sincContaSenha = 0; |
|
||||||
|
|
||||||
/* |
|
||||||
* Quando o arquivo for configurado para slave(master=0) no parametro hostMaster deve ser |
|
||||||
* informado o Ip do servidor master. |
|
||||||
*/ |
|
||||||
$hostMaster = '127.0.0.1'; |
|
||||||
/* |
|
||||||
*Informe uma identificação para o servidor |
|
||||||
*/ |
|
||||||
$serverName = 'MASTER_SERVER'; |
|
||||||
|
|
||||||
/* |
|
||||||
* Configurações para acesso a api. |
|
||||||
* |
|
||||||
*/ |
|
||||||
$hostApi = '127.0.0.1'; |
|
||||||
$portaApi = ''; |
|
||||||
|
|
||||||
/* |
|
||||||
* Acesso ao mysql para real-time. |
|
||||||
* |
|
||||||
*/ |
|
||||||
|
|
||||||
$myParams = array('myPort' => '3306', |
|
||||||
'myHost' => '127.0.0.1', |
|
||||||
'myDatabase' => 'pabx', |
|
||||||
'myUser' => 'root', |
|
||||||
'myPassword' => 'SimpleS_root' |
|
||||||
); |
|
||||||
|
|
||||||
?> |
|
@ -0,0 +1,453 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
include "util/Crypt.php"; |
||||||
|
|
||||||
|
|
||||||
|
define("CONF_KEY_LICENCA", md5("S1MPL3S_IP")); |
||||||
|
define("CONF_FILE_PATH", "/var/www/html/aplicativo/cadastros/licenca/"); |
||||||
|
define("CONF_FILE_UUID", 'uuid.lca'); |
||||||
|
|
||||||
|
/** |
||||||
|
* COLETA AS INFORMAÇÕES DO VENDA MAIS E GERA O TOTAL DE LICENCA EM UM ARQUIVO CRIPTOGRAFADO |
||||||
|
* @param type $licenca |
||||||
|
* @param type $perfil |
||||||
|
*/ |
||||||
|
function GerarArquivo($licenca, $perfil) { |
||||||
|
|
||||||
|
$company = [ |
||||||
|
"perfil_aplicacao_id" => $perfil, |
||||||
|
]; |
||||||
|
|
||||||
|
/** ARRAY PARA GUARDAR INFORMACOES DOS CONTRATOS * */ |
||||||
|
$info = [ |
||||||
|
'licenca_pa' => 0, |
||||||
|
'licenca_ramal' => 0, |
||||||
|
'licenca_supervisor' => 0, |
||||||
|
'licenca_discador_preview' => 0, |
||||||
|
'licenca_discador_powerdial' => 0, |
||||||
|
'licenca_discador_predictive' => 0, |
||||||
|
'licenca_pesquisa' => 0, |
||||||
|
'licenca_tarifador' => 0, |
||||||
|
'licenca_whatsapp' => 0, |
||||||
|
'licenca_workflow' => 0, |
||||||
|
'licenca_mesaoperadora' => 0, |
||||||
|
'licenca_mult_channel' => 0, |
||||||
|
'licenca_helpdesk' => 0, |
||||||
|
'licenca_crm' => 0, |
||||||
|
'licenca_manager_one' => 0, |
||||||
|
'licenca_help_custom' => 0, |
||||||
|
'data_registro' => date('Y-m-d'), |
||||||
|
'user_registro' => 0, |
||||||
|
'server_registro' => 0, |
||||||
|
'confirma_registro' => date('Y-m-d') |
||||||
|
]; |
||||||
|
|
||||||
|
$clto_data = ["contrato_assinatura", "contrato_inicio", "contrato_fim"]; |
||||||
|
$data = []; |
||||||
|
$prefix = "clto_"; |
||||||
|
foreach ($licenca as $clto) { |
||||||
|
foreach ($clto as $k => $v) { |
||||||
|
$data[$prefix . $k] = $v; |
||||||
|
if (array_key_exists($k, $company)) { |
||||||
|
$data[$prefix . $k] = $company[$k]; |
||||||
|
} |
||||||
|
|
||||||
|
if (array_key_exists($k, $info) && is_int($v)) { |
||||||
|
$data[$prefix . $k] += $v; |
||||||
|
} |
||||||
|
|
||||||
|
if (in_array($k, $clto_data)) { |
||||||
|
$data[$prefix . $k] = date('Y-d-m', strtotime($v)); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
$fileName = $data['clto_razao_social'] . $data['clto_cnpj']; |
||||||
|
$file = criarArquivo($fileName, $data); |
||||||
|
DownloadArquivo($file); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* GERA UM ARQUIVO COM AS INFORMACOES DA MAQUINA |
||||||
|
* >> CASO PASSE $tmp GERA UM ARQUIVO TEMPORARIO PARA A CONSULTA DO UUID EM TEMPO REAL |
||||||
|
* @param type $tmp |
||||||
|
* @return string |
||||||
|
*/ |
||||||
|
function GerarUUID($tmp = false) { |
||||||
|
$file = CONF_FILE_PATH . ($tmp ? '/tmp/' . md5(date('Y-m-d') . CONF_KEY_LICENCA) . "_" : '') . CONF_FILE_UUID; |
||||||
|
|
||||||
|
if (!file_exists($file) && $tmp) { |
||||||
|
foreach (glob('*_' . CONF_FILE_UUID) as $f) { |
||||||
|
unlink($f); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (file_exists($file) && $tmp) { |
||||||
|
return $file; |
||||||
|
} |
||||||
|
|
||||||
|
CnvrtFileExec('dmidecode -t system | grep UUID: > ' . $file); |
||||||
|
CnvrtFileExec('chown pbx:pbx ' . $file); |
||||||
|
|
||||||
|
$contents = __readFile($file, false); |
||||||
|
$uid = explode(':', trim($contents)); |
||||||
|
|
||||||
|
__writeFile($file, ['uuid' => trim($uid[1]), 'genereted' => date('Y-m-d H:i:s'), 'contract' => md5(trim($uid[1]))], false); |
||||||
|
|
||||||
|
return $tmp ? $file : trim($uid[1]); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* CRIA O ARQUIVO DE LICENCA COM O NOME E DOCUMENTO EM MD5 JUNTAMENTE COM AS INFORMACOES GERADAS DA FUNCAO GERAARQUIVO |
||||||
|
* @param type $filename |
||||||
|
* @param array $data |
||||||
|
* @return string |
||||||
|
*/ |
||||||
|
function criarArquivo($filename, $data) { |
||||||
|
$file = CONF_FILE_PATH . md5($filename) . ".lca"; |
||||||
|
$data['clto_data_log'] = $file; |
||||||
|
__createFile($file, preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $data)); |
||||||
|
return $file; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* INFORMA OS DADOS DE CONTRATO E UUID PARA O ARQUIVO DE LICENCA QUANDO FIZER O UPLOAD NO SITE |
||||||
|
* @param type $file |
||||||
|
* @return boolean |
||||||
|
*/ |
||||||
|
function validarArquivo($file) { |
||||||
|
$file_lca = CONF_FILE_PATH . $file['conf']['name']; |
||||||
|
$tmpFileLocal = $file['conf']['tmp_name']; |
||||||
|
$tmpFileName = $file['conf']['name']; |
||||||
|
move_uploaded_file($tmpFileLocal, $file_lca); |
||||||
|
|
||||||
|
$content = __readFile($file_lca); |
||||||
|
if (explode('.', $tmpFileName)[1] == 'lca') { |
||||||
|
$uuid = GerarUUID(); |
||||||
|
__writeFile($file_lca, ['clto_server_registro' => $uuid, 'clto_contrato_numero' => md5($uuid)]); |
||||||
|
$content = __readFile($file_lca); |
||||||
|
return $content; |
||||||
|
} |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* DOWNLOAD DO ARQUIVO REGISTRADO NO VENDAMAIS |
||||||
|
* @param type $nomeArquivo |
||||||
|
* @return type |
||||||
|
*/ |
||||||
|
function DownloadArquivo($nomeArquivo) { |
||||||
|
try { |
||||||
|
ob_clean(); |
||||||
|
$nome = basename($nomeArquivo); |
||||||
|
$linhas = file_get_contents($nomeArquivo); |
||||||
|
header("Pragma: public"); |
||||||
|
header('Cache-Control: no-cache, must-revalidate'); |
||||||
|
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); |
||||||
|
header('Accept-Ranges: bytes'); |
||||||
|
header('Content-Type: ' . GetMimeContentType($nome)); |
||||||
|
header('Content-Disposition: attachment; filename="' . $nome . '";'); |
||||||
|
header('Content-Transfer-Encoding: binary'); |
||||||
|
header('Connection: close'); |
||||||
|
echo $linhas; |
||||||
|
ob_flush(); |
||||||
|
unlink($nomeArquivo); |
||||||
|
exit; |
||||||
|
} catch (Exception $ex) { |
||||||
|
return $ex->getMessage(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* VALIDA A LICENCA DURANTE O PRIMEIRO LOGIN COM AS INFORMACOES DO ARQUIVO TEMPORARIO| BANCO SIMPLES E ARQUIVO DE LICENCA |
||||||
|
* @param type $dbcon |
||||||
|
* @return boolean |
||||||
|
*/ |
||||||
|
function validarLicenca($dbcon) { |
||||||
|
$db = __getLicencaPBX($dbcon); |
||||||
|
|
||||||
|
if (!$db) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
$f = GerarUUID(true); |
||||||
|
if ($f) { |
||||||
|
$uid = __readFile($f); |
||||||
|
} |
||||||
|
|
||||||
|
$content = __readFile($db['clto_data_log']); |
||||||
|
$uuid = __readFile(CONF_FILE_PATH . CONF_FILE_UUID); |
||||||
|
|
||||||
|
if ($content['clto_server_registro'] != $uid['uuid'] || $db['clto_server_registro'] != $uid['uuid']) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
if ($uuid['contract'] != $db['clto_contrato_numero']) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
return true; |
||||||
|
} |
||||||
|
|
||||||
|
######################################## |
||||||
|
#### FUNCOES ESCRITA/LEITURA #### |
||||||
|
######################################## |
||||||
|
|
||||||
|
function __createFile($file, $dados) { |
||||||
|
$crypt = new Crypt(CONF_KEY_LICENCA); |
||||||
|
file_put_contents($file, $crypt->encrypt(json_encode($dados, true))); |
||||||
|
} |
||||||
|
|
||||||
|
function __readFile($file, $encrypeted = true) { |
||||||
|
$crypt = new Crypt(CONF_KEY_LICENCA); |
||||||
|
$content = file_get_contents($file); |
||||||
|
|
||||||
|
if ($encrypeted) { |
||||||
|
$content = $crypt->decrypt($content); |
||||||
|
} |
||||||
|
|
||||||
|
$json = json_decode($content, true); |
||||||
|
if ($json) { |
||||||
|
return $json; |
||||||
|
} |
||||||
|
return $content; |
||||||
|
} |
||||||
|
|
||||||
|
function __writeFile($file, $dados = null, $append = true) { |
||||||
|
$crypt = new Crypt(CONF_KEY_LICENCA); |
||||||
|
$content = __readFile($file); |
||||||
|
if ($dados) { |
||||||
|
if (!$append) { |
||||||
|
file_put_contents($file, $crypt->encrypt(json_encode($dados, true))); |
||||||
|
return; |
||||||
|
} |
||||||
|
foreach ($dados as $k => $v) { |
||||||
|
$content[$k] = $v; |
||||||
|
} |
||||||
|
file_put_contents($file, $crypt->encrypt(json_encode($content, true))); |
||||||
|
return; |
||||||
|
} |
||||||
|
file_put_contents($file, $crypt->encrypt(json_encode($content, true))); |
||||||
|
} |
||||||
|
|
||||||
|
######################################## |
||||||
|
#### BANCO DE DADOS #### |
||||||
|
######################################## |
||||||
|
|
||||||
|
function __getLicencaPBX($dbcon) { |
||||||
|
$query = sprintf("SELECT clto_cnpj, clto_data_log, clto_server_registro, clto_contrato_numero FROM pbx_controle_licenciamento;"); |
||||||
|
$result = pg_query($dbcon, $query); |
||||||
|
$res = pg_fetch_assoc($result); |
||||||
|
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 E VENDA MAIS |
||||||
|
* @param type $dbcon |
||||||
|
* @param type $data |
||||||
|
* @return boolean |
||||||
|
* @throws Exception |
||||||
|
*/ |
||||||
|
function __validLicenca($dbcon, $data) { |
||||||
|
|
||||||
|
if (!$data['clto_cnpj']) { |
||||||
|
throw new Exception("As informações do arquivo está corrompido!"); |
||||||
|
} |
||||||
|
$respbx = __getLicencaPBX($dbcon); |
||||||
|
$resVmais = __getLicencaVMais($data['clto_cnpj']); |
||||||
|
|
||||||
|
$vendamais = $resVmais['clto_cnpj'] == $data['clto_cnpj'] ? 'vendamais' : ''; |
||||||
|
|
||||||
|
if ($respbx['clto_cnpj'] == $data['clto_cnpj'] || $vendamais) { |
||||||
|
__updateLicenca($dbcon, $data, $vendamais); |
||||||
|
return true; |
||||||
|
} |
||||||
|
|
||||||
|
if (__sendLicenca($dbcon, $data)) { |
||||||
|
return true; |
||||||
|
} |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
function __updateLicenca($dbcon, $data, $t = null) { |
||||||
|
$msql = ConectaMssql(); |
||||||
|
$info = ""; |
||||||
|
foreach ($data as $k => $v) { |
||||||
|
$info .= "$k = '$v',"; |
||||||
|
} |
||||||
|
$set = substr($info, 0, -1); |
||||||
|
$table = ["pbx" => 'pbx_controle_licenciamento', "vendamais" => 'sip_controle_licenciamento']; |
||||||
|
foreach ($table as $k => $v) { |
||||||
|
$query = sprintf("UPDATE $v SET %s WHERE clto_cnpj = '%s';", $set, $data['clto_cnpj']); |
||||||
|
|
||||||
|
if ($k == 'pbx' && (empty($t) || $t == $k)) { |
||||||
|
$result = pg_query($dbcon, $query); |
||||||
|
if (!$result) { |
||||||
|
throw new Exception("Não foi possível atualizar as informações da licença!"); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if ($k == 'vendamais' && (empty($t) || $t == $k)) { |
||||||
|
__execSQLServer($query, false); |
||||||
|
} |
||||||
|
} |
||||||
|
return true; |
||||||
|
} |
||||||
|
|
||||||
|
function __sendLicenca($dbcon, $data) { |
||||||
|
$column = array_keys($data); |
||||||
|
$values = array_values($data); |
||||||
|
$table = ["pbx" => 'pbx_controle_licenciamento', "vendamais" => 'sip_controle_licenciamento']; |
||||||
|
|
||||||
|
foreach ($table as $k => $v) { |
||||||
|
$query = sprintf("INSERT INTO {$v} (%s) VALUES('%s');", implode(',', $column), implode("','", $values)); |
||||||
|
if ($k == 'pbx') { |
||||||
|
if (!pg_query($dbcon, $query)) { |
||||||
|
throw new Exception("Não foi possível inserir as informações da licença no [Simples IP]!"); |
||||||
|
} |
||||||
|
} else { |
||||||
|
__execSQLServer($query, false); |
||||||
|
} |
||||||
|
} |
||||||
|
return true; |
||||||
|
} |
||||||
|
|
||||||
|
function GetPerfilApl() { |
||||||
|
$query = "SELECT * FROM sip_perfil_aplicacao"; |
||||||
|
$resp = __execSQLServer($query); |
||||||
|
return $resp; |
||||||
|
} |
||||||
|
|
||||||
|
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( ContratosItens.Quantidade) |
||||||
|
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( ContratosItens.Quantidade) |
||||||
|
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( ContratosItens.Quantidade) |
||||||
|
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; |
||||||
|
} |
||||||
|
|
||||||
|
######################################## |
||||||
|
#### CONEXÃO VENDA+ #### |
||||||
|
######################################## |
||||||
|
|
||||||
|
/** |
||||||
|
* Realiza conexao com o banco do venda+ |
||||||
|
* @return type |
||||||
|
*/ |
||||||
|
function ConectaMssql() { |
||||||
|
$dbhost = "vendas.simplesip.com.br"; |
||||||
|
$dbname = "VendaMaisDB_simplesip"; |
||||||
|
$user = "sa"; |
||||||
|
$passwd = "SimpleS_root"; |
||||||
|
$conn = mssql_connect($dbhost, $user, $passwd); |
||||||
|
mssql_select_db($dbname); |
||||||
|
|
||||||
|
return $conn; |
||||||
|
} |
||||||
|
|
||||||
|
function __execSQLServer($query, $return = true) { |
||||||
|
$msql = ConectaMssql(); |
||||||
|
$result = mssql_query($query, $msql); |
||||||
|
|
||||||
|
if ($return) { |
||||||
|
$resp = []; |
||||||
|
while ($data = mssql_fetch_array($result)) { |
||||||
|
$resp[] = $data; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
mssql_close($msql); |
||||||
|
return $resp ? $resp : $result; |
||||||
|
} |
||||||
|
|
@ -1,8 +0,0 @@ |
|||||||
browser.id=SL[/Browsers/FirefoxBrowser |
|
||||||
copy.src.files=false |
|
||||||
copy.src.on.open=false |
|
||||||
copy.src.target=/var/www/aplicativo |
|
||||||
include.path.private= |
|
||||||
index.file=index.php |
|
||||||
run.as=LOCAL |
|
||||||
url=http://localhost/ |
|
@ -1,18 +0,0 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||||
<project-private xmlns="http://www.netbeans.org/ns/project-private/1"> |
|
||||||
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="5"/> |
|
||||||
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2"> |
|
||||||
<group> |
|
||||||
<file>file:/var/www/html/aplicativo/supervisor.php</file> |
|
||||||
<file>file:/var/www/html/aplicativo/projeto/base/sql/versao-1.7.11.5.sql</file> |
|
||||||
<file>file:/var/www/html/aplicativo/include/util/funcoesAmi.php</file> |
|
||||||
<file>file:/var/www/html/aplicativo/include/util/display_errors.php</file> |
|
||||||
<file>file:/var/www/html/aplicativo/asterisk/etc_asterisk/editado_manual/extensions_padrao.conf</file> |
|
||||||
<file>file:/var/www/html/aplicativo/include/util/funcoesLgpd.php</file> |
|
||||||
<file>file:/var/www/html/aplicativo/agente/agenteChamadasAbandon.php</file> |
|
||||||
<file>file:/var/www/html/aplicativo/contacteFunc.php</file> |
|
||||||
<file>file:/var/www/html/aplicativo/asterisk/var_lib_asterisk/scripts/abandonadas/retornoAbandonada.php</file> |
|
||||||
<file>file:/var/www/html/aplicativo/include/util/funcoesApl.php</file> |
|
||||||
</group> |
|
||||||
</open-files> |
|
||||||
</project-private> |
|
@ -1,7 +0,0 @@ |
|||||||
include.path= |
|
||||||
php.version=PHP_56 |
|
||||||
source.encoding=ISO-8859-1 |
|
||||||
src.dir=. |
|
||||||
tags.asp=false |
|
||||||
tags.short=false |
|
||||||
web.root=. |
|
@ -1,9 +0,0 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||||
<project xmlns="http://www.netbeans.org/ns/project/1"> |
|
||||||
<type>org.netbeans.modules.php.project</type> |
|
||||||
<configuration> |
|
||||||
<data xmlns="http://www.netbeans.org/ns/php-project/1"> |
|
||||||
<name>aplicativo</name> |
|
||||||
</data> |
|
||||||
</configuration> |
|
||||||
</project> |
|
@ -0,0 +1,43 @@ |
|||||||
|
ALTER TABLE pbx_queues_grupos ADD COLUMN libera_pausa VARCHAR(255) DEFAULT(0); |
||||||
|
ALTER TABLE pbx_usuarios ADD COLUMN perm_licenca INT DEFAULT(0); |
||||||
|
|
||||||
|
CREATE TABLE pbx_controle_licenciamento( |
||||||
|
clto_cnpj varchar(14) not null, |
||||||
|
clto_contrato_numero varchar(32) not null, |
||||||
|
clto_razao_social varchar(128) not null, |
||||||
|
clto_nome_fantasia varchar(128), |
||||||
|
clto_atividade_empresa varchar(64), |
||||||
|
clto_cidade_empresa varchar(64), |
||||||
|
clto_uf_empresa varchar(2), |
||||||
|
clto_contato_id varchar(64), |
||||||
|
clto_contato_nome varchar(64), |
||||||
|
clto_contato_email varchar(64), |
||||||
|
clto_contato_fone varchar(32), |
||||||
|
clto_perfil_aplicacao_id int not null, |
||||||
|
clto_contrato_assinatura date, |
||||||
|
clto_contrato_inicio date, |
||||||
|
clto_contrato_fim date, |
||||||
|
clto_licenca_pa int not null default 0, |
||||||
|
clto_licenca_ramal int not null default 0, |
||||||
|
clto_licenca_supervisor int not null default 0, |
||||||
|
clto_licenca_discador_preview int not null default 0, |
||||||
|
clto_licenca_discador_powerdial int not null default 0, |
||||||
|
clto_licenca_discador_predictive int not null default 0, |
||||||
|
clto_licenca_pesquisa int not null default 0, |
||||||
|
clto_licenca_tarifador int not null default 0, |
||||||
|
clto_licenca_whatsapp int not null default 0, |
||||||
|
clto_licenca_workflow int not null default 0, |
||||||
|
clto_licenca_mesaoperadora int not null default 0, |
||||||
|
clto_mult_channel int not null default 0, |
||||||
|
clto_licenca_helpdesk int not null default 0, |
||||||
|
clto_licenca_crm int not null default 0, |
||||||
|
clto_licenca_manager_one int not null default 0, |
||||||
|
clto_licenca_help_custom int not null default 0, |
||||||
|
clto_licenca_chat int not null default 0, |
||||||
|
clto_data_registro date not null, |
||||||
|
clto_user_registro varchar(64), |
||||||
|
clto_server_registro varchar(255), |
||||||
|
clto_confirma_registro date, |
||||||
|
clto_data_log varchar(1024), |
||||||
|
constraint "pkPbxControleLicenciamento" primary key(clto_cnpj, clto_contrato_numero) |
||||||
|
); |
@ -0,0 +1,114 @@ |
|||||||
|
{capture name="subDisplay"} |
||||||
|
{if !$perm} |
||||||
|
<table align="center" width="70%" class="formCad" style="margin-top: 10px"> |
||||||
|
<tr> |
||||||
|
<th colspan="2"> |
||||||
|
Insira o arquivo de Licença |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
<tr> |
||||||
|
<th> |
||||||
|
Arquivo de Licença |
||||||
|
</th> |
||||||
|
<td> |
||||||
|
<input name="conf" type="file" value="conflicence" > |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
<tr> |
||||||
|
<td colspan="2"> |
||||||
|
<b>* Informe o arquivo .lca para registrar as configurações da Central!</b> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
<tr> |
||||||
|
<td> |
||||||
|
<table width="100%" class="formCad" border="0" cellspacing="0" cellpadding="2"> |
||||||
|
<tbody> |
||||||
|
<tr> |
||||||
|
<td> |
||||||
|
<input name="btValidar" type="submit" id="btValidar" value="Validar"> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</table> |
||||||
|
{else} |
||||||
|
<table width="100%" class="formCad" id="configlicence" border="0" cellspacing="0" cellpadding="2"> |
||||||
|
<tr> |
||||||
|
<td> |
||||||
|
<table width="80%" class="formCad" border="0" cellspacing="0" cellpadding="2" id="tablelca"> |
||||||
|
<tbody> |
||||||
|
<tr> |
||||||
|
<th align="left">Documento CNPJ:</th> |
||||||
|
<td> |
||||||
|
<input name="document" type="text" id="lca_document" value="{$document}" size="50" maxlength="255"> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
|
||||||
|
<tr> |
||||||
|
<th align="left">Perfil Central:</th> |
||||||
|
<td> |
||||||
|
<select name="lcnca_perfil" style="width:400px;"> |
||||||
|
{$select_perfil} |
||||||
|
</select> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
<tr> |
||||||
|
<th align="left">Nº Contrato 1:</th> |
||||||
|
<td> |
||||||
|
<input name="lcnca_contato1" type="text" id="contrato1" value="{$lcnca_contato1}" size="50" maxlength="255" title=""> |
||||||
|
<a id="addcontract" href="#" title="Adicionar mais um campo para informar o contrato"> |
||||||
|
<img src="images/novo.gif" width="20" height="20" border="0" align="absmiddle" title=""> |
||||||
|
</a> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
|
||||||
|
<tr> |
||||||
|
<td> |
||||||
|
<table width="100%" class="formCad" border="0" cellspacing="0" cellpadding="2"> |
||||||
|
<tbody> |
||||||
|
<tr> |
||||||
|
<td> |
||||||
|
<input name="btGerar" type="submit" id="btGerar" value="Gerar"> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</table> |
||||||
|
{/if} |
||||||
|
|
||||||
|
{if $mensagem} |
||||||
|
<table align="center" width="70%" class="formCad" style="margin-top: 10px"> |
||||||
|
<tr> |
||||||
|
<td colspan="2"> |
||||||
|
<div class="alert alert-{$mensagem.type}">{$mensagem.msg}</div> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</table> |
||||||
|
{/if} |
||||||
|
|
||||||
|
{literal} |
||||||
|
<script> |
||||||
|
$(function () { |
||||||
|
let cont = 2; |
||||||
|
$("#addcontract").on('click', function () { |
||||||
|
$("#tablelca").append(` |
||||||
|
<tr> |
||||||
|
<th align="left">Nº Contrato ${cont}:</th> |
||||||
|
<td> |
||||||
|
<input name="lcnca_contato${cont}" type="text" id="lcnca_contato${cont}" size="50" maxlength="255" title=""> |
||||||
|
</td> |
||||||
|
</tr>`); |
||||||
|
cont++; |
||||||
|
}) |
||||||
|
}) |
||||||
|
</script> |
||||||
|
{/literal} |
||||||
|
{/capture} |
Loading…
Reference in new issue