Browse Source

ajustes diversos

master
douglasstrappasson 1 year ago
parent
commit
7a0c8ebf04
  1. 88
      Clientes/TurboNett/SGP.php
  2. 366
      Clientes/TurboNett/bkp/SGP.php
  3. 21
      Clientes/TurboNett/bkp/enviaFatura.php
  4. 5
      Clientes/TurboNett/config.php
  5. 5
      Clientes/TurboNett/consultaCliente.php
  6. 11
      Clientes/TurboNett/enviaFatura.php
  7. 10
      Clientes/TurboNett/teste.php

88
Clientes/TurboNett/SGP.php

@ -165,69 +165,28 @@ class SGP extends Integracao {
return false;
}
}
/**
* Envia email das faturas solicitadas.
*
* $faturaMes => Coleta todas as faturas do mês para ser enviadas.
* Envia email das faturas.
*
* @param string|int $documento
* @param boolean $faturasMes
* @return boolean
* @param string|int $contract_number
* @return string
*/
public function enviarBoletoEmail($documento, $faturasMes = false) {
public function enviarBoletoEmail($contract_number) {
$this->debug = debug_backtrace();
$pathFileMail = __DIR__ . "/email.html";
if (!$this->mail) {
$this->log->error('Antes de enviar o email e necessario configurar o SimpleMail e SMTP!');
return false;
}
$clienteDados = $this->identificarDocumento($documento);
if (!$clienteDados['contratos'][0]['clienteId']){
$this->log->error('Nao foi possivel encontrar o cliente para identificar o email!');
return false;
}
$boletos = [];
foreach($clienteDados['contratos'] as $clienteContrato){
$item = $this->segundaVia($clienteContrato['contratoId']);
foreach($item['links'] as $i){
$boletos[$i['fatura']] = $i['link'];
}
}
if (!$boletos) {
$this->log->info("Nao foi possivel encontrar nenhuma fatura em aberto do solicitante!");
return false;
}
$link = "";
foreach ($boletos as $fat => $inv) {
$link .= "Fatura Num.: {$fat} <a href='{$inv}' target='_blank'>Visualizar Boleto</a><br>";
}
$data = array('$titulo' => "Envio de Fatura", '$nome' => $clienteDados['contratos'][0]['razaoSocial'], '$link' => $link);
if (file_exists($pathFileMail)) {
$this->mail->pathBodyMail($pathFileMail, $data);
} else {
$this->mail->bodyMessage("<h4>Ola, <b>{$clienteDados['contratos'][0]['razaoSocial']}</b></h4><p>Conforme solicitado estamos lhe enviando a segunda via de sua fatura.</p><p>{$link}</p>");
}
$this->log->info("Encaminhando boleto por E-mail!");
if ($this->mail->mailing($clienteDados['contratos'][0]['emails'][0])) {
$this->log->success("O Boleto foi enviado com sucesso!");
return true;
if ($this->getArgs(func_get_args())) {
$this->params = array(
'token' => $this->token,
'app' => $this->app,
'contrato' => $contract_number
);
$this->setMetodo('enviafatura/');
return $this->setParams();
} else {
$this->log->error("Nao foi possivel enviar o boleto para o email do solicitante!");
$this->log->error("Error SimpleMail: " . $this->mail->getErrorSend());
return false;
}
}
########################################################################
## FUNCOES DEFAULT DA CLASSE ##
@ -294,13 +253,20 @@ class SGP extends Integracao {
/*
* Final da linha para pegar os dados da variavel
*/
$this->curl = curl_init();
curl_setopt($this->curl, CURLOPT_URL, $this->url . $this->metodo);
curl_setopt($this->curl, CURLOPT_POSTFIELDS, $this->params);
curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($this->curl, CURLOPT_TIMEOUT, 10);
curl_setopt($this->curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($this->curl, CURLOPT_SSL_VERIFYPEER, false);
$this->curl = curl_init();
curl_setopt_array($this->curl, array(
CURLOPT_URL => $this->url . $this->metodo,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_POSTFIELDS => $this->params,
));
$this->log->debug("Curl: ".print_r(curl_getinfo($this->curl), true), debug_backtrace());
}

366
Clientes/TurboNett/bkp/SGP.php

@ -0,0 +1,366 @@
<?php
require_once 'Integracao.php';
include "config.php";
/**
* Classe de integracao do sistema SGP.
* Documentacao: https://documenter.getpostman.com/view/6682240/Tz5s5whG
*
* @author Jose Henrique Joanoni
* @function developer
* @company SimplesIP
* @version 1.0.0
*/
class SGP extends Integracao {
private $token;
private $url;
private $metodo;
private $query;
private $curl;
private $debug;
private $app;
private $params = array();
private $ssl = false;
########################################################################
## FUNCOES DA API ##
########################################################################
/**
* Faz a consulta do cliente mediante digitação do CPF.
*
* @param string $document
* @return boolean
*/
public function identificarDocumento($document) {
$this->debug = debug_backtrace();
if ($this->getArgs(func_get_args())) {
$this->params = array(
'token' => $this->token,
'app' => $this->app,
'cpfcnpj' => $document
);
$this->setMetodo('consultacliente/');
return $this->setParams();
}
}
/**
* Faz a liberacao do contrato do cliente mediante promessa de pagamento.
*
* @param int $contract_number
* @return boolean
*/
public function liberacaoPromessa($contract_number) {
$this->debug = debug_backtrace();
if ($this->getArgs(func_get_args())) {
$this->params = array(
'token' => $this->token,
'app' => $this->app,
'contrato' => $contract_number
);
$this->setMetodo('liberacaopromessa/');
return $this->setParams();
} else {
return false;
}
}
/**
* Envia a fatura por email.
*
* @param int $contract_number
* @return boolean
*/
public function enviaFatura($contract_number, $tipo) {
$this->debug = debug_backtrace();
if ($this->getArgs(func_get_args())) {
$this->params = array(
'token' => $this->token,
'app' => $this->app,
'tipo' => $tipo,
'contrato' => $contract_number
);
$this->setMetodo('enviafatura/');
return $this->setParams();
} else {
return false;
}
}
/**
* Envia a segunda via de fatura.
*
* @param int $contract_number
* @return boolean
*/
public function segundaVia($contract_number) {
$this->debug = debug_backtrace();
if ($this->getArgs(func_get_args())) {
$this->params = array(
'token' => $this->token,
'app' => $this->app,
'contrato' => $contract_number
);
$this->setMetodo('fatura2via/');
return $this->setParams();
} else {
return false;
}
}
/**
* Verifica se existe manutencao ou status da conexao do cliente.
*
* @param int $contract_number
* @return boolean
*/
public function verificaAcesso($contract_number) {
$this->debug = debug_backtrace();
if ($this->getArgs(func_get_args())) {
$this->params = array(
'token' => $this->token,
'app' => $this->app,
'contrato' => $contract_number
);
$this->setMetodo('verificaacesso/');
return $this->setParams();
} else {
return false;
}
}
/**
* Realiza a abertura de um novo chamado no sistema.
*
* @param int $contract_number
* @param int $occurrence_type
* @param string $reason
* @return boolean
*/
public function abreChamado($contract_number, $occurrence_type = '', $reason = '', $department = '') {
$this->debug = debug_backtrace();
if ($this->getArgs(func_get_args())) {
if (!empty($occurrence_type) && !empty($reason)) {
$this->params = array(
'token' => $this->token,
'app' => $this->app,
'contrato' => $contract_number,
'ocorrenciatipo' => $occurrence_type,
'motivoos' => $reason,
'setor' => $department
);
} else {
$this->params = array(
'token' => $this->token,
'app' => $this->app,
'contrato' => $contract_number,
);
}
$this->setMetodo('chamado/');
return $this->setParams();
} else {
return false;
}
}
/**
* Envia email das faturas solicitadas.
*
* $faturaMes => Coleta todas as faturas do mês para ser enviadas.
*
* @param string|int $documento
* @param boolean $faturasMes
* @return boolean
*/
public function enviarBoletoEmail($documento, $faturasMes = false) {
$this->debug = debug_backtrace();
$pathFileMail = __DIR__ . "/email.html";
if (!$this->mail) {
$this->log->error('Antes de enviar o email e necessario configurar o SimpleMail e SMTP!');
return false;
}
$clienteDados = $this->identificarDocumento($documento);
if (!$clienteDados['contratos'][0]['clienteId']){
$this->log->error('Nao foi possivel encontrar o cliente para identificar o email!');
return false;
}
$boletos = [];
foreach($clienteDados['contratos'] as $clienteContrato){
$item = $this->segundaVia($clienteContrato['contratoId']);
foreach($item['links'] as $i){
$boletos[$i['fatura']] = $i['link'];
}
}
if (!$boletos) {
$this->log->info("Nao foi possivel encontrar nenhuma fatura em aberto do solicitante!");
return false;
}
$link = "";
foreach ($boletos as $fat => $inv) {
$link .= "Fatura Num.: {$fat} <a href='{$inv}' target='_blank'>Visualizar Boleto</a><br>";
}
$data = array('$titulo' => "Envio de Fatura", '$nome' => $clienteDados['contratos'][0]['razaoSocial'], '$link' => $link);
if (file_exists($pathFileMail)) {
$this->mail->pathBodyMail($pathFileMail, $data);
} else {
$this->mail->bodyMessage("<h4>Ola, <b>{$clienteDados['contratos'][0]['razaoSocial']}</b></h4><p>Conforme solicitado estamos lhe enviando a segunda via de sua fatura.</p><p>{$link}</p>");
}
$this->log->info("Encaminhando boleto por E-mail!");
if ($this->mail->mailing($clienteDados['contratos'][0]['emails'][0])) {
$this->log->success("O Boleto foi enviado com sucesso!");
return true;
} else {
$this->log->error("Nao foi possivel enviar o boleto para o email do solicitante!");
$this->log->error("Error SimpleMail: " . $this->mail->getErrorSend());
return false;
}
}
########################################################################
## FUNCOES DEFAULT DA CLASSE ##
########################################################################
/**
* Coleta as informacoes iniciais para o inicio da integracao com a API.
*
* @param string $token
* @param string $url
* @param boolean $log
*/
public function __construct($token = CONF_TOKEN_API, $url = CONF_URL_API, $app = CONF_USERID_API, $log = CONF_LOGGER_ATIVO) {
$this->token = $token;
$this->app = $app;
if(end(str_split($url)) != '/'){
$url .= '/';
}
if (strpos($url, 'https')) {
$this->ssl = true;
}
$this->url = $url.'api/ura/';
$this->setLog($log);
$this->integracaoReg();
$this->log->info("Iniciando integracao", debug_backtrace());
}
/**
* Parametriza o metodo utilizado para a consulta.
*
* @param type $metodo
*/
private function setMetodo($metodo) {
$this->metodo = $metodo;
}
/**
* Escreve a query para ser passada para o curl
*
* @param string $query
*/
private function setQuery($query) {
return $this->query .= $query;
}
/**
* retorna a string pronta da query do curl e limpa a variavel.
*
* @return string $query
*/
private function getQuery() {
$query = $this->query;
unset($this->query);
return $query;
}
/**
* Constroi de forma dinamica a string para ser passada para a execucao do Curl
*
* @void
*/
private function curl() {
/*
* Final da linha para pegar os dados da variavel
*/
$this->curl = curl_init();
curl_setopt_array($this->curl, array(
CURLOPT_URL => $this->url . $this->metodo,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_POSTFIELDS => $this->params,
));
$this->log->debug("Curl: ".print_r(curl_getinfo($this->curl), true), debug_backtrace());
}
/**
* Recebe array de forma de indice e valor
*
* @example array("qtype" => 'test_api', "query" => '123', "oper" => '=')
*
* @obs sempre chamar a função debug_backtrace() para ser disponível em log
*
* @param type $params
* @debug_track function debug_backtrace()
*/
private function setParams() {
$this->curl();
unset($this->params);
return json_decode($this->exec(), true);
}
/**
* Recebe as informações e realiza a execucao da API
*
* @void
*/
private function exec() {
/**
* Caso tenha problema de requisição
*/
$response = curl_exec($this->curl);
if (curl_errno($this->curl)) {
$this->log->error(curl_error($this->curl), debug_backtrace());
curl_close($this->curl);
$this->audioError();
return false;
}
curl_close($this->curl);
return $this->response($response);
}
/**
* Prepara dos dados para ser transmitidos para o metodo a ser retornado a
* integracao.
*
* @return array
*/
private function response($data) {
$this->log->debug("Reponse API: " . print_r(json_decode($data, true), true), $this->debug);
if ($data) {
return $data;
} else {
return false;
}
}
}

21
Clientes/TurboNett/bkp/enviaFatura.php

@ -0,0 +1,21 @@
<?php
require "SGP.php";
$sgp = new SGP();
$nomenclatura = str_replace("IDENTIFICACAO", "", $sgp->db()->getUraMovimentoByUniqueid($uid)['umv_ura_nome']);
$documento = $sgp->agi()->get_variable('DOCUMENTO', true);
$sgp->SimpleMail(CONF_SENDER_EMAIL_USER, CONF_SENDER_EMAIL_PASSWORD, CONF_EMAIL_SUBTITLE_INVOICE);
$sgp->confSMTP(CONF_SMTP_HOST, CONF_SMTP_POST, CONF_EMAIL_TITLE_INVOICE, true, 'ssl');
$response = $sgp->enviarBoletoEmail($documento, false);
if ($response) {
$redirecionamento_dados = $sgp->db()->redirectUraDestino("REDIR_ENVIA_FATURA", "SUCESSO", $nomenclatura); //PENDENTE
} else {
$redirecionamento_dados = $sgp->db()->redirectUraDestino("REDIR_ENVIA_FATURA", "FALHA", $nomenclatura); //OK
}
$sgp->executarFluxo($redirecionamento_dados["TIPO"], $redirecionamento_dados["NOME"]);
?>

5
Clientes/TurboNett/config.php

@ -8,8 +8,9 @@
###########################################################################
define('CONF_ID_CREDENCIAIS', '');
define('CONF_TOKEN_API', 'fe4124f2-435a-46e4-a855-160a91406593');
define('CONF_URL_API', 'https://turbonettma.sgp.net.br');
define('CONF_TOKEN_API', 'fe4124f2-435a-46e4-a855-160a91406593');
define('CONF_URL_API', 'https://turbonett.sgplocal.com.br/');
//define('CONF_URL_API', 'https://turbonettma.sgp.net.br');
define('CONF_USER_API', 'api@simplesip.com.br');
define('CONF_PASSWORD_API', '^x7j#ivjzrC9&Fuaqu');
define('CONF_USERID_API', 'simplesip');

5
Clientes/TurboNett/consultaCliente.php

@ -5,8 +5,11 @@ $sgp = new SGP();
$documento = $sgp->agi()->get_variable('URA', true);
$clienteDados = $sgp->identificarDocumento($documento);
$nomenclatura = str_replace("IDENTIFICACAO", "", $sgp->db()->getUraMovimentoByUniqueid($uid)['umv_ura_nome']);
$reg_pass = $sgp->agi()->get_variable('REG_PASS', true);
//$nomenclatura = str_replace("IDENTIFICACAO", "", $sgp->db()->getUraMovimentoByUniqueid($uid)['umv_ura_nome']);
$nameURA = $sgp->db()->getUraMovimentoByUniqueid($uid)['umv_ura_nome'];
$nomenclatura = substr($nameURA, strpos($nameURA, "_INT_"));
$sgp->agi()->set_variable("NOMENCLATURA", $nomenclatura);
if ($clienteDados['contratos'][0]['clienteId']){

11
Clientes/TurboNett/enviaFatura.php

@ -3,14 +3,13 @@
require "SGP.php";
$sgp = new SGP();
$nomenclatura = str_replace("IDENTIFICACAO", "", $sgp->db()->getUraMovimentoByUniqueid($uid)['umv_ura_nome']);
$documento = $sgp->agi()->get_variable('DOCUMENTO', true);
$nomenclatura = $sgp->agi()->get_variable('NOMENCLATURA', true);
$contract_number = $sgp->agi()->get_variable('CONTRATO', true);
$sgp->agi()->set_music(true, 'default');
$sgp->SimpleMail(CONF_SENDER_EMAIL_USER, CONF_SENDER_EMAIL_PASSWORD, CONF_EMAIL_SUBTITLE_INVOICE);
$sgp->confSMTP(CONF_SMTP_HOST, CONF_SMTP_POST, CONF_EMAIL_TITLE_INVOICE, true, 'ssl');
$response = $sgp->enviarBoletoEmail($documento, false);
$response = $sgp->enviarBoletoEmail($contract_number);
if ($response) {
if ($response['status']) {
$redirecionamento_dados = $sgp->db()->redirectUraDestino("REDIR_ENVIA_FATURA", "SUCESSO", $nomenclatura); //PENDENTE
} else {
$redirecionamento_dados = $sgp->db()->redirectUraDestino("REDIR_ENVIA_FATURA", "FALHA", $nomenclatura); //OK

10
Clientes/TurboNett/teste.php

@ -0,0 +1,10 @@
<?php
require "SGP.php";
$sgp = new SGP();
$documento = '05624353367';
$clienteDados = $sgp->identificarDocumento($documento);
print_r($clienteDados);
?>
Loading…
Cancel
Save