R$ = str_replace('.', ',', number_format($_SESSION['balance'], 2)) ?>
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $pdo;
} catch (PDOException $e) {
die("Erro ao conectar ao banco de dados: " . $e->getMessage());
}
}
// Função para calcular o total das transações do usuário (DEPOSIT e INTERNAL_TRANSFER)
function getUserBalance($pdo, $user_id) {
// Consulta para somar transações DEPOSIT e INTERNAL_TRANSFER com external_id igual ao user_id
$stmt = $pdo->prepare("
SELECT SUM(amount) AS total
FROM transactions
WHERE
status = 'PAID'
AND (
(type = 'DEPOSIT' AND user_id = :user_id) OR
(type = 'INTERNAL_TRANSFER' AND external_id = :user_id)
)
");
$stmt->bindParam(':user_id', $user_id, PDO::PARAM_INT);
$stmt->execute();
// Obter o total diretamente da soma
$result = $stmt->fetch(PDO::FETCH_ASSOC);
return $result['total'] ?? 0; // Retorna 0 se não houver transações
}
// Função para calcular a média das transações do usuário
function getUserAverageTransaction($pdo, $user_id) {
$stmt = $pdo->prepare("SELECT amount FROM transactions WHERE (user_id = :user_id OR external_id = :user_id) AND status = 'PAID'");
$stmt->bindParam(':user_id', $user_id);
$stmt->execute();
// Inicializando variáveis para soma e contagem
$totalAmount = 0;
$transactionCount = 0;
// Somar os valores das transações e contar as transações
while ($transaction = $stmt->fetch(PDO::FETCH_ASSOC)) {
$totalAmount += $transaction['amount'];
$transactionCount++;
}
// Calcular a média, evitando divisão por zero
if ($transactionCount > 0) {
return $totalAmount / $transactionCount;
} else {
return 0; // Se não houver transações, a média é 0
}
}
// Função para contar o total de transações do usuário
function getUserTransactionCount($pdo, $user_id) {
$stmt = $pdo->prepare("SELECT COUNT(*) FROM transactions WHERE (user_id = :user_id OR external_id = :user_id) AND status = 'PAID'");
$stmt->bindParam(':user_id', $user_id);
$stmt->execute();
return $stmt->fetchColumn();
}
function validarPixPendente($pdo, $user_id) {
$stmt = $pdo->prepare("SELECT * FROM transactions WHERE (user_id = :user_id) AND status = 'PENDING'");
$stmt->bindParam(':user_id', $user_id);
$stmt->execute();
$dados = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($dados as $key => $dado){
$PRONTTUS_URL = getenv('PRONTTUS_URL');
$PRONTTUS_CLIENT_ID = getenv('PRONTTUS_CLIENT_ID');
$PRONTTUS_CLIENT_SECRET = getenv('PRONTTUS_CLIENT_SECRET');
$APP_URL = getenv('APP_URL');
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $PRONTTUS_URL . 'payment/' . trim($dado['external_id']),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'x-client-id: ' . $PRONTTUS_CLIENT_ID,
'x-client-secret: ' . $PRONTTUS_CLIENT_SECRET,
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
$responsePix = json_decode($response, true);
}
var_dump('tessssteeee',json_encode($responsePix));
die;
}
// Conectar ao banco de dados
$pdo = connectDb245();
// Recuperar o usuário logado
if (isset($_SESSION['user_id'])) {
$user_id = $_SESSION['user_id'];
// Calcular o total de faturamento
$totalAmount = getUserBalance($pdo, $user_id);
// Calcular a média do ticket
$averageAmount = getUserAverageTransaction($pdo, $user_id);
// Contar o número total de transações
$transactionCount = getUserTransactionCount($pdo, $user_id);
// validarPixPendente($pdo, $user_id);
} else {
// Se o usuário não estiver logado
$totalAmount = 0;
$averageAmount = 0;
$transactionCount = 0;
}
?>
R$ = str_replace('.', ',', number_format($totalAmount, 2)) ?>
R$ = str_replace('.', ',', number_format($averageAmount, 2)) ?>