Update Banyak
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
include "/www/wwwroot/bilspro/config/connect.php";
|
||||
|
||||
// Ambil summary
|
||||
$stmt = $pdo->query("SELECT * FROM v_summary_transaksi_agen_bulanan");
|
||||
$summary = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
// Ambil detail
|
||||
$stmt = $pdo->query("SELECT * FROM v_detail_agen_pascabayar");
|
||||
$detail = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
// Ubah jadi keyed array
|
||||
function toKeyedArray($rows) {
|
||||
$out = [];
|
||||
foreach ($rows as $r) {
|
||||
$key = $r['id_agen_voucher'].'-'.$r['id_data_server'].'-'.$r['generate_time'];
|
||||
$out[$key] = $r;
|
||||
}
|
||||
return $out;
|
||||
}
|
||||
|
||||
$summaryArr = toKeyedArray($summary);
|
||||
$detailArr = toKeyedArray($detail);
|
||||
|
||||
// Gabungkan semua key
|
||||
$allKeys = array_unique(array_merge(array_keys($summaryArr), array_keys($detailArr)));
|
||||
|
||||
$diffs = [];
|
||||
$same = [];
|
||||
|
||||
foreach ($allKeys as $key) {
|
||||
$rowSummary = $summaryArr[$key] ?? null;
|
||||
$rowDetail = $detailArr[$key] ?? null;
|
||||
|
||||
if (!$rowSummary || !$rowDetail) {
|
||||
$diffs[$key] = [
|
||||
'missing_in' => !$rowSummary ? 'summary' : 'detail'
|
||||
];
|
||||
continue;
|
||||
}
|
||||
|
||||
// Bandingkan kolom satu per satu
|
||||
$rowDiff = [];
|
||||
foreach ($rowSummary as $col => $valSummary) {
|
||||
$valDetail = $rowDetail[$col] ?? null;
|
||||
|
||||
// Normalisasi null jadi 0
|
||||
$valSummaryNorm = ($valSummary === null || $valSummary === '') ? 0 : $valSummary;
|
||||
$valDetailNorm = ($valDetail === null || $valDetail === '') ? 0 : $valDetail;
|
||||
|
||||
if (trim((string)$valSummaryNorm) !== trim((string)$valDetailNorm)) {
|
||||
$rowDiff[$col] = [
|
||||
'summary' => $valSummary,
|
||||
'detail' => $valDetail
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
if ($rowDiff) {
|
||||
$diffs[$key] = $rowDiff;
|
||||
} else {
|
||||
$same[$key] = $rowSummary;
|
||||
}
|
||||
}
|
||||
|
||||
// Hasil
|
||||
echo "<h3>✅ Data Sama: ".count($same)."</h3>";
|
||||
// echo "<pre>".json_encode($same, JSON_PRETTY_PRINT)."</pre>";
|
||||
|
||||
echo "<h3>⚠️ Data Berbeda / Hilang: ".count($diffs)."</h3>";
|
||||
echo "<pre>".json_encode($diffs, JSON_PRETTY_PRINT)."</pre>";
|
||||
Reference in New Issue
Block a user