myadmin/vendor/action/liberation/liberation.php

142 lines
No EOL
5.1 KiB
PHP

<?php
/** Importação de classes */
use vendor\model\FinancialMovements;
use vendor\controller\financial_movements\FinancialMovementsValidate;
try{
/** Instânciamento de classes */
$FinancialMovements = new FinancialMovements();
$FinancialMovementsValidate = new FinancialMovementsValidate();
/** Parametros de entrada */
$cns = isset($_POST['cns']) ? (string)filter_input(INPUT_POST, 'cns',FILTER_SANITIZE_SPECIAL_CHARS ) : '';
$hash = isset($_POST['hash']) ? (string)filter_input(INPUT_POST, 'hash',FILTER_SANITIZE_SPECIAL_CHARS ) : '';
$i = 0;
/** Validando os campos de entrada */
$FinancialMovementsValidate->setCns($cns);
$FinancialMovementsValidate->setHash($hash);
/** Verifica se não existem erros a serem informados */
if (!empty($FinancialMovementsValidate->getErrors())) {
/** Informo */
throw new InvalidArgumentException($FinancialMovementsValidate->getErrors(), 0);
} else {
/** Verifico se o hash enviado é válido */
if($Main->decryptData($FinancialMovementsValidate->getHash()) === $Main->getLiberation()){
/** Consulta por movimentações em atraso de um determinado cliente pelo seu CNS */
$FinancialMovementsResult = $FinancialMovements->SearchDebit($FinancialMovementsValidate->getCns());
/** Verifica se a consulta retornou resultados */
if(count($FinancialMovementsResult) > 0){
$result = new stdClass();
$result->code = 200;
foreach($FinancialMovementsResult as $FinancialMovementsKey => $Result){
/** Caso o registro esteja em atraso */
if(($Result->status_registro == 'em_atraso') && ($Result->days_passed > 0)){
// Se ainda não existe $result->data, cria
if(!isset($result->data)){
$result->data = new stdClass();
}
// Se ainda não existe a lista expired, cria
if(!isset($result->data->expired)){
$result->data->expired = [];
}
// Define mensagem apenas na primeira vez
if($i == 0){
$result->message = "Existem pendências financeiras Junto a Orius Tecnologia";
}
// Monta o objeto de item vencido
$expired = new stdClass();
$expired->description = $Result->description;
$expired->reference = $Result->movement_date_scheduled;
$expired->days = $Result->days_passed;
// Adiciona ao array de expirados
$result->data->expired[] = $expired;
}
/** Caso o registro seja próximo vencimento */
elseif($Result->status_registro == 'proximo_vencimento') {
// Se ainda não existe $result->data, cria
if(!isset($result->data)){
$result->data = new stdClass();
}
// Se ainda não existe a lista next_due_date, cria
if(!isset($result->data->next_due_date)){
$result->data->next_due_date = [];
}
// Define mensagem apenas na primeira vez
if($i == 0){
$result->message = "Próximo vencimento";
}
// Monta o objeto de próximo vencimento
$next = new stdClass();
$next->description = $Result->description;
$next->reference = $Result->movement_date_scheduled;
$next->days = $Result->days_passed;
// Adiciona ao array de próximos vencimentos
$result->data->next_due_date[] = $next;
}
// Incrementa contador de registros
$i++;
}
/** Informa */
echo json_encode($result, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
exit;
} else {
/** Informo */
throw new InvalidArgumentException('Nenhum cartório localizado para o CNS informado', 0);
}
} else {
/** Informo */
throw new InvalidArgumentException('O Hash informado é inválido', 0);
}
}
}catch(Exception $exception){
/** Preparo o formulario para retorno **/
$result = [
'cod' => 0,
'message' => $exception->getMessage(),
'title' => 'Atenção',
'type' => 'exception',
'authenticate' => $authenticate
];
/** Envio **/
echo json_encode($result);
/** Paro o procedimento **/
exit;
}