$filter, '$select' => 'IdRapporto,CodiceRapporto,Data,Versione,Firmato,DataStampa', '$expand' => 'RapportiFiles', '$orderby' => 'Data desc', '$top' => $limit ]; $endpoint = "Rapporto?" . http_build_query($params); file_put_contents( __DIR__ . '/last_rapporti_cliente_endpoint.txt', '[' . date('Y-m-d H:i:s') . '] ' . $endpoint . PHP_EOL, FILE_APPEND ); $data = $api->get($endpoint); $items = $data['value'] ?? []; if (!is_array($items)) { $items = []; } $reports = []; foreach ($items as $item) { $rapportiFiles = $item['RapportiFiles'] ?? []; $pdfFiles = []; if (is_array($rapportiFiles)) { foreach ($rapportiFiles as $file) { $idRapportoFile = intval($file['IdRapportoFile'] ?? 0); if ($idRapportoFile > 0) { $pdfFiles[] = [ 'id_rapporto_file' => $idRapportoFile, 'file_name' => $file['FileName'] ?? null, 'categoria' => $file['Categoria'] ?? null, 'tipo_rapporto' => $file['TipoRapporto'] ?? null, 'download_url' => "download_rapporto_pdf.php?id_rapporto_file={$idRapportoFile}" ]; } } } $reports[] = [ 'id_rapporto' => $item['IdRapporto'] ?? null, 'codice_rapporto' => $item['CodiceRapporto'] ?? null, 'data' => $item['Data'] ?? null, 'data_stampa' => $item['DataStampa'] ?? null, 'versione' => $item['Versione'] ?? null, 'firmato' => $item['Firmato'] ?? null, 'pdf_files' => $pdfFiles ]; } echo json_encode([ 'success' => true, 'id_cliente' => $idCliente, 'limit' => $limit, 'signed_status' => $signedStatus, 'endpoint' => $endpoint, 'count' => count($reports), 'reports' => $reports ], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); } catch (Exception $e) { file_put_contents( __DIR__ . '/error_log.txt', date('Y-m-d H:i:s') . ' - get_rapporti_cliente.php - ' . $e->getMessage() . PHP_EOL, FILE_APPEND ); http_response_code(500); echo json_encode([ 'success' => false, 'error' => $e->getMessage() ], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); }