myadmin/vendor/view/financial_movements/financial_movements_ticket_consult.php

158 lines
No EOL
6.2 KiB
PHP

<?php
/** Importação de classes */
use vendor\controller\api_sicoob\ApiSicoob;
use vendor\controller\financial_movements\FinancialMovementsValidate;
use vendor\model\FinancialMovements;
try{
/** Verifica se o token de acesso é válido */
if($Main->verifyToken()){
/** Instânciamento de classes */
$FinancialMovementsValidate = new FinancialMovementsValidate();
$FinancialMovements = new FinancialMovements();
$ApiSicoob = new ApiSicoob();
/** Parametros de entrada */
$reference = isset($_POST['reference']) ? filter_input(INPUT_POST,'reference', FILTER_SANITIZE_SPECIAL_CHARS) : '';
/** Validando os campos de entrada */
$FinancialMovementsValidate->setReference($reference);
/** Verifico a existência de erros */
if (empty($FinancialMovementsValidate->getErrors())) {
/** Consulta os dados da movimentação */
$FinancialMovementsResult = $FinancialMovements->GetReference($FinancialMovementsValidate->getReference());
/** Carrega os dados da Sicoob */
$sicoobResponse = json_decode($FinancialMovementsResult->sicoob_response);
// Verifica se existe o objeto "resultado"
if (isset($sicoobResponse->{'resultado'})) {
// Pega os campos (se existirem)
$numeroCliente = $sicoobResponse->{'resultado'}->{'numeroCliente'} ?? null;
$codigoModalidade = $sicoobResponse->{'resultado'}->{'codigoModalidade'} ?? null;
$linhaDigitavel = $sicoobResponse->{'resultado'}->{'linhaDigitavel'} ?? null;
$codigoBarras = $sicoobResponse->{'resultado'}->{'codigoBarras'} ?? null;
$nossoNumero = $sicoobResponse->{'resultado'}->{'nossoNumero'} ?? null;
$numeroContratoCobranca = $sicoobResponse->{'resultado'}->{'numeroContratoCobranca'} ?? null;
/** Prepara os paramentros a serem enviados */
$params = '?';
$params .= 'numeroCliente='.$numeroCliente;
$params .= '&codigoModalidade='.$codigoModalidade;
$params .= '&linhaDigitavel='.$linhaDigitavel;
$params .= '&codigoBarras='.$codigoBarras;
$params .= '&nossoNumero='.$nossoNumero;
$params .= '&numeroContratoCobranca='.$numeroContratoCobranca;
/** REQUISIÇÃO RESPONSÁVEL EM GERAR O TOKEN */
$ApiSicoob->accessToken();
/** Verifica se foi retornado erros */
if(empty($ApiSicoob->getErrors())){
/** Envia a solicitação */
$ApiSicoob->sendService('consultar_boleto', $params, NULL);
/** Verifica possíveis erros */
if(empty($ApiSicoob->getErrors())){
/** Carrega o resultado da consulta */
$response = $ApiSicoob->getResponseObject();
// print_r($response);
// exit;
/** Verifica se existe historico a ser listado */
if(count($response->resultado->listaHistorico) > 0){
$list = $FinancialMovementsResult->fantasy_name;
$list .= '<ul class="list-group">';
for($i=0; $i<count($response->resultado->listaHistorico); $i++){
$list .= '<li class="list-group-item d-flex justify-content-between align-items-center">'.$response->resultado->listaHistorico[$i]->descricaoHistorico.'<span class="badge badge-primary badge-pill">'. (date('d/m/Y', strtotime($response->resultado->listaHistorico[$i]->dataHistorico))) .'</span></li>';
}
$list .= '</ul>';
}
/** Informa o resultado positivo **/
$result = [
'cod' => 200,
'title' => $FinancialMovementsResult->description,
'type' => '',
'message' => $list,
];
/** Envio **/
echo json_encode($result);
/** Paro o procedimento **/
exit;
} else {
/** Retorna a mensagem com seu respectivo erro **/
throw new InvalidArgumentException($ApiSicoob->getErrors(), 0);
}
} else {
/** Retorna a mensagem com seu respectivo erro **/
throw new InvalidArgumentException($ApiSicoobValidate->getErrors(), 0);
}
} else {
/** Retorna a mensagem com seu respectivo erro **/
throw new InvalidArgumentException('Não há dados de boletos a serem enviados', 0);
}
} else {
/** Retorna a mensagem com seu respectivo erro **/
throw new InvalidArgumentException($ClientsValidate->getErrors(), 0);
}
/** Caso o token de acesso seja inválido, informo */
}else{
/** Informa que o usuário precisa efetuar autenticação junto ao sistema */
$authenticate = true;
/** Informo */
throw new InvalidArgumentException('Sua sessão expirou é necessário efetuar nova autenticação junto ao sistema', 0);
}
}catch(Exception $exception){
/** Preparo o formulario para retorno **/
$result = [
'cod' => 0,
'message' => '<div class="alert alert-danger" role="alert">'.$exception->getMessage().'</div>',
'title' => 'Erro Interno',
'type' => 'exception',
'authenticate' => $authenticate
];
/** Envio **/
echo json_encode($result);
/** Paro o procedimento **/
exit;
}