From 759b6d904715dd9f0d67dd997e96a272a391cd1f Mon Sep 17 00:00:00 2001 From: WD - Dev Date: Tue, 15 Jul 2025 00:18:35 +0700 Subject: [PATCH] Update dari aaPanel --- .gitignore | 1 + config/cronjob_tagihan.log | 2 +- dashboard.php | 3 +- img/default_kwitansi_Lyppi.png | Bin 0 -> 77127 bytes load/check_voucher.php | 208 +++++++++++++++++++++------------ load/koneksi_off.log | 32 ++--- load/load_multi_cek.log | 2 +- load/load_multi_cek.php | 7 +- load/load_pesan.php | 2 +- load/pppoe_update.log | 2 +- load/update_sewa_apk.log | 2 +- load/update_sewa_apk.php | 18 +++ pages/log_pesan.php | 81 ++++++++++++- 13 files changed, 259 insertions(+), 101 deletions(-) create mode 100644 img/default_kwitansi_Lyppi.png diff --git a/.gitignore b/.gitignore index e6f0876..d368dc7 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ whapi_webhook/*.log payment/paydisini/callback/*.log .well-known/ berita_acara/*.pdf +load/logs/*.txt diff --git a/config/cronjob_tagihan.log b/config/cronjob_tagihan.log index 00cbbde..c89d201 100644 --- a/config/cronjob_tagihan.log +++ b/config/cronjob_tagihan.log @@ -1 +1 @@ -NO ACTION => 2 <-> cc.net Limit_Tgl_5
NO ACTION => 3 <-> nsn utama Limit_Tgl_10
NO ACTION => 3 <-> ciangsana Limit_Tgl_15
NO ACTION => 4 <-> fast.net Limit_Tgl_12
NO ACTION => 5 <-> bima net Limit Tagihan Tgl 15
NO ACTION => 6 <-> kingnet Limit Tgl 15
NO ACTION => 8 <-> diamond.net Limit_Tgl_15
NO ACTION => 9 <-> 22 p.net Limit_Tgl_15
NO ACTION => 10 <-> nettizen Tagihan Limit tgl 15
NO ACTION => 12 <-> Tagihan_Limit_Tgl5
NO ACTION => 15 <-> Tag_NTA2 Limit Tgl 5
NO ACTION => 16 <-> Tagihan Limit Tgl 5
BUAT TAGIHAN => 13 <-> Limit Tanggal 26 (Infinnet) Start : 2025-07-04 - Last : 2025-07-09
REMAND => 18 <-> BUM-Limit-Tgl-5
NO ACTION => 14 <-> Kh_Limit Tanggal 25
KIRIM TAGIHAN => 17 <-> Tagihan Limit Tgl 10
NO ACTION => 17 <-> Tagihan Limit Tgl 15
NO ACTION => 20 <-> IVVI-10
NO ACTION => 20 <-> IVVI-20
NO ACTION => 20 <-> IVVI-30
BUAT TAGIHAN => 21 <-> QONNET Start : 2025-07-02 - Last : 2025-07-05
NO ACTION => 21 <-> QONNET2
NO ACTION => 25 <-> Tagihan Limit Tgl 5
REMAND => 23 <-> Limit Tanggal 5
NO ACTION => 26 <-> Limit Tanggal 10
NO ACTION => 24 <-> Tagihan30
BUAT TAGIHAN => 23 <-> limit tanggal 19 Start : 2025-06-27 - Last : 2025-07-14
KIRIM TAGIHAN => 31 <-> 23-ISOLIR
NO ACTION => 33 <-> usolir-10
NO ACTION => 37 <-> paket 140 ribu
REMAND => 28 <-> PAKET-100K
REMAND => 28 <-> PAKET-150K
REMAND => 28 <-> PAKET-200K
REMAND => 28 <-> PAKET-300K
KIRIM TAGIHAN => 42 <-> meldina-20
BUAT TAGIHAN => 41 <-> lippy-20 Start : 2025-07-04 - Last : 2025-07-09
BUAT TAGIHAN => 43 <-> Tagihan_Limit_tgl_13 Start : 2025-07-01 - Last : 2025-07-06
REMAND => 46 <-> Limit_Tgl_5
NO ACTION => 35 <-> PAKET 1 DEVICE
NO ACTION => 35 <-> PAKET 2 DEVICE
NO ACTION => 35 <-> PAKET 3 DEVICE
NO ACTION => 35 <-> PAKET 4 DEVICE
NO ACTION => 35 <-> PAKET 5 DEVICE [1/80]
NO ACTION => 35 <-> PAKET 5 DEVICE [1/70]
NO ACTION => 35 <-> PAKET 6 DEVICE [1/80]
NO ACTION => 35 <-> PAKET 6 DEVICE [1/70]
NO ACTION => 35 <-> PAKET 7 DEVICE
NO ACTION => 35 <-> PAKET 8 DEVICE
BUAT TAGIHAN => 44 <-> Isolir_20 Start : 2025-07-04 - Last : 2025-07-07
BUAT TAGIHAN => 53 <-> PAKET BRONZE Start : 2025-07-01 - Last : 2025-07-06
KIRIM TAGIHAN => 54 <-> Muhamad rouf
BUAT TAGIHAN => 53 <-> PAKET PLATINUM 5MBs Start : 2025-07-01 - Last : 2025-07-06
BUAT TAGIHAN => 53 <-> PAKET GLOD 7 MBs Start : 2025-07-01 - Last : 2025-07-06
BUAT TAGIHAN => 53 <-> PAKET GLOD+ 10 MBs Start : 2025-07-01 - Last : 2025-07-06
NO ACTION => 59 <-> Isolir_21
BUAT TAGIHAN => 46 <-> Limit tgl 30 Start : 2025-06-29 - Last : 2025-07-24
NO ACTION => 61 <-> Isolir_20
BUAT TAGIHAN => 55 <-> Dcn_CO_Isolir Start : 2025-06-28 - Last : 2025-07-24
REMAND => 62 <-> limit tanggal 5
NO ACTION => 21 <-> VIP-BAGUS
REMAND => 55 <-> Dcn_GB_Isolir
BUAT TAGIHAN => 49 <-> TAGIHAN TANGGAL 20 Start : 2025-06-29 - Last : 2025-07-18
NO ACTION => 19 <-> TAGIHAN-TGL1
NO ACTION => 49 <-> TAGIHAN TANGGAL 1
NO ACTION => 66 <-> Tagihan Isolir Tgl 1
NO ACTION => 67 <-> Tag Netborhood Limit Tgl 10
REMAND => 73 <-> Tagihan01-05
\ No newline at end of file +NO ACTION => 2 <-> cc.net Limit_Tgl_5
NO ACTION => 3 <-> nsn utama Limit_Tgl_10
NO ACTION => 3 <-> ciangsana Limit_Tgl_15
NO ACTION => 4 <-> fast.net Limit_Tgl_12
NO ACTION => 5 <-> bima net Limit Tagihan Tgl 15
NO ACTION => 6 <-> kingnet Limit Tgl 15
NO ACTION => 8 <-> diamond.net Limit_Tgl_15
NO ACTION => 9 <-> 22 p.net Limit_Tgl_15
NO ACTION => 10 <-> nettizen Tagihan Limit tgl 15
NO ACTION => 12 <-> Tagihan_Limit_Tgl5
NO ACTION => 15 <-> Tag_NTA2 Limit Tgl 10
NO ACTION => 16 <-> Tagihan Limit Tgl 5
NO ACTION => 13 <-> Limit Tanggal 26 (Infinnet)
NO ACTION => 18 <-> BUM-Limit-Tgl-5
BUAT TAGIHAN => 14 <-> Kh_Limit Tanggal 25 Start : 2025-07-13 - Last : 2025-07-18
NO ACTION => 17 <-> Tagihan Limit Tgl 10
NO ACTION => 17 <-> Tagihan Limit Tgl 15
NO ACTION => 20 <-> IVVI-10
NO ACTION => 20 <-> IVVI-20
NO ACTION => 20 <-> IVVI-30
NO ACTION => 21 <-> QONNET
NO ACTION => 21 <-> QONNET2
NO ACTION => 25 <-> Tagihan Limit Tgl 5
NO ACTION => 23 <-> Limit Tanggal 5
NO ACTION => 26 <-> Limit Tanggal 10
NO ACTION => 24 <-> Tagihan30
NO ACTION => 23 <-> limit tanggal 19
NO ACTION => 31 <-> 23-ISOLIR
NO ACTION => 33 <-> usolir-10
NO ACTION => 37 <-> paket 140 ribu
NO ACTION => 28 <-> PAKET-100K
NO ACTION => 28 <-> PAKET-150K
NO ACTION => 28 <-> PAKET-200K
NO ACTION => 28 <-> PAKET-300K
NO ACTION => 42 <-> meldina-20
NO ACTION => 41 <-> lippy-20
NO ACTION => 43 <-> Tagihan_Limit_tgl_13
NO ACTION => 46 <-> Limit_Tgl_5
NO ACTION => 35 <-> PAKET 1 DEVICE
NO ACTION => 35 <-> PAKET 2 DEVICE
NO ACTION => 35 <-> PAKET 3 DEVICE
NO ACTION => 35 <-> PAKET 4 DEVICE
NO ACTION => 35 <-> PAKET 5 DEVICE [1/80]
NO ACTION => 35 <-> PAKET 5 DEVICE [1/70]
NO ACTION => 35 <-> PAKET 6 DEVICE [1/80]
NO ACTION => 35 <-> PAKET 6 DEVICE [1/70]
NO ACTION => 35 <-> PAKET 7 DEVICE
NO ACTION => 35 <-> PAKET 8 DEVICE
NO ACTION => 44 <-> Isolir_20
NO ACTION => 53 <-> PAKET BRONZE
NO ACTION => 54 <-> Muhamad rouf
NO ACTION => 53 <-> PAKET PLATINUM 5MBs
NO ACTION => 53 <-> PAKET GLOD 7 MBs
NO ACTION => 53 <-> PAKET GLOD+ 10 MBs
NO ACTION => 59 <-> Isolir_21
NO ACTION => 46 <-> Limit tgl 30
NO ACTION => 61 <-> Isolir_20
NO ACTION => 55 <-> Dcn_CO_Isolir
NO ACTION => 62 <-> limit tanggal 5
NO ACTION => 55 <-> Dcn_GB_Isolir
NO ACTION => 49 <-> TAGIHAN TANGGAL 20
NO ACTION => 19 <-> TAGIHAN-TGL1
NO ACTION => 49 <-> TAGIHAN TANGGAL 1
NO ACTION => 66 <-> Tagihan Isolir Tgl 1
NO ACTION => 67 <-> Tag Netborhood Limit Tgl 10
NO ACTION => 73 <-> Tagihan01-05
\ No newline at end of file diff --git a/dashboard.php b/dashboard.php index 829ceb6..ffa1213 100644 --- a/dashboard.php +++ b/dashboard.php @@ -707,7 +707,8 @@ $statuspaygw = $datastatus['status_payment_gateway']; }).buttons().container().appendTo('#example1_wrapper .col-md-6:eq(0)'); $("#example2").DataTable({ "responsive": true, - "autoWidth": false + "autoWidth": false, + "pageLength": 100 }); $("#example3").DataTable({ "responsive": true, diff --git a/img/default_kwitansi_Lyppi.png b/img/default_kwitansi_Lyppi.png new file mode 100644 index 0000000000000000000000000000000000000000..1fdcc55c713722bafd23e6fb0b0fc85a2638b6c7 GIT binary patch literal 77127 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 qOst+?h9|9=3Jqa-o_ literal 0 HcmV?d00001 diff --git a/load/check_voucher.php b/load/check_voucher.php index c779cc7..e3d013d 100644 --- a/load/check_voucher.php +++ b/load/check_voucher.php @@ -2,127 +2,189 @@ ini_set('display_errors', 1); error_reporting(E_ALL); +// ======================= // Include necessary files +// ======================= include "/www/wwwroot/bilspro/config/connect.php"; include "/www/wwwroot/bilspro/config/routeros_api.class.php"; -// include "../config/connect.php"; -// include "../config/routeros_api.class.php"; +// ============================ +// Get parameters from CLI args +// ============================ +$m_ip = $argv[1]; // IP address +$m_user = $argv[2]; // Username +$m_pass = $argv[3]; // Password +$m_port = $argv[4]; // Port +$idsm = $argv[5]; // Mikrotik setting ID +$nama = $argv[6]; // Nama Mikrotik -// Get parameters from command line arguments -$m_ip = $argv[1]; // IP address -$m_user = $argv[2]; // Username -$m_pass = $argv[3]; // Password -$m_port = $argv[4]; // Port -$idsm = $argv[5]; // Mikrotik setting ID +// ==================== +// Log file location +// ==================== +$logFile = "/www/wwwroot/bilspro/load/logs/voucher_{$nama}_log.txt"; -// Create new RouterosAPI instance +// ================================ +// Function: Write to log file +// ================================ +function writeLog($message) +{ + global $logFile; + $date = date("Y-m-d H:i:s"); + $newLine = "[$date] $message\n"; + + // Append new log + file_put_contents($logFile, $newLine, FILE_APPEND); + + // Keep log file max 1000 lines + $lines = file($logFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); + $totalLines = count($lines); + if ($totalLines > 1000) { + $lines = array_slice($lines, -1000); // Keep only last 1000 + file_put_contents($logFile, implode("\n", $lines) . "\n"); + } +} + +// ========================== +// Create RouterOS API object +// ========================== $API = new RouterosAPI(); $API->debug = false; -// Connect to the router API +// ======================= +// Connect to RouterOS API +// ======================= if ($API->connect2($m_ip, $m_user, $m_pass, $m_port)) { - echo "\nConnected to Router: {$m_ip}\n"; + echo "✅ Berhasil terhubung ke Router: {$m_ip}\n"; + writeLog("[✅] Berhasil terhubung ke Router: {$m_ip}"); - // Query vouchers that need to be checked - $ambilv1 = $pdo->prepare("SELECT id, create_time, voucher, durasi FROM v_load_cek_voucher WHERE id_setting_mikrotik = :idsm AND status_cek IS NULL LIMIT 75"); - $ambilv1->execute([':idsm' => $idsm]); + $batchSize = 200; // Batasi 200 voucher per batch + $offset = 0; - while ($cekv1 = $ambilv1->fetch(PDO::FETCH_ASSOC)) { - $iddatav1 = $cekv1['id']; - $datav1 = $cekv1['voucher']; - $durasi = $cekv1['durasi']; + do { + $ambilv1 = $pdo->prepare(" + SELECT id, create_time, voucher, durasi + FROM v_load_cek_voucher + WHERE id_setting_mikrotik = :idsm + LIMIT :limit OFFSET :offset + "); + $ambilv1->bindValue(':idsm', $idsm, PDO::PARAM_INT); + $ambilv1->bindValue(':limit', $batchSize, PDO::PARAM_INT); + $ambilv1->bindValue(':offset', $offset, PDO::PARAM_INT); + $ambilv1->execute(); - // Convert the 'durasi' to a valid DateInterval format - $inter = convertDurationToInterval($durasi); - if (!$inter) { - echo "Invalid duration format: $durasi.\n"; - continue; // Skip this voucher if the duration is invalid - } + $rows = $ambilv1->fetchAll(PDO::FETCH_ASSOC); + if (!$rows) break; - // Check if the voucher exists in the hotspot users - $cek = $API->comm('/ip/hotspot/user/print', ["?name" => $datav1]); + foreach ($rows as $cekv1) { + $iddatav1 = $cekv1['id']; + $datav1 = $cekv1['voucher']; + $durasi = $cekv1['durasi']; - if ($cek) { - // If voucher exists, check the comment - if (isset($cek[0]['comment']) && $cek[0]['comment'] != '') { - $activetime = processCommentDate($cek[0]['comment']); - $Tgl = new DateTime($activetime); + // ================================ + // Convert duration to DateInterval + // ================================ + $inter = convertDurationToInterval($durasi); + if (!$inter) { + $status = "Durasi tidak valid ($durasi)"; + echo "{$datav1} => $status\n"; + writeLog("[⛔] {$datav1} => $status"); + continue; + } + + // ===================================== + // Check if voucher exists on Hotspot + // ===================================== + $cek = $API->comm('/ip/hotspot/user/print', ["?name" => $datav1]); + + if ($cek) { + // If voucher exists and has comment + if (!empty($cek[0]['comment'])) { + $activetime = processCommentDate($cek[0]['comment']); + $Tgl = new DateTime($activetime); + $Tgl->add($inter); + $exp = $Tgl->format('Y-m-d H:i:s'); + + updateVoucher($pdo, $iddatav1, $activetime, $exp); + $status = "Voucher aktif & diperbarui. Expired: $exp"; + echo "{$datav1} => $status\n"; + writeLog("[✅] {$datav1} => $status"); + } else { + markVoucherChecked($pdo, $iddatav1); + $status = "Voucher ditemukan tanpa komentar, ditandai sudah dicek"; + echo "{$datav1} => $status\n"; + writeLog("[ℹ️] {$datav1} => $status"); + } + } else { + // If voucher does not exist + $aktif = $cekv1['create_time']; + $Tgl = new DateTime($aktif); $Tgl->add($inter); $exp = $Tgl->format('Y-m-d H:i:s'); - echo "{$datav1} comment->{$cek[0]['comment']} active->{$activetime} exp->{$exp} => Exists\n"; - - // Update the database with active and expired time - updateVoucher($pdo, $iddatav1, $activetime, $exp); - } else { - // Mark the voucher as checked - markVoucherChecked($pdo, $iddatav1); + updateVoucher($pdo, $iddatav1, $aktif, $exp); + $status = "Voucher tidak ditemukan, dianggap aktif sejak $aktif, expired: $exp"; + echo "{$datav1} => $status\n"; + writeLog("[⚠️] {$datav1} => $status"); } - } else { - // If voucher does not exist, calculate expiration time based on creation date - $aktif = $cekv1['create_time']; - $Tgl = new DateTime($aktif); - $Tgl->add($inter); - $exp = $Tgl->format('Y-m-d H:i:s'); - - echo "{$datav1} active->{$aktif} exp->{$exp} => Does not exist\n"; - - // Update the database with active and expired time - updateVoucher($pdo, $iddatav1, $aktif, $exp); } - echo "{$cekv1['voucher']}\n"; - } + $offset += $batchSize; + } while (count($rows) == $batchSize); + + echo "✅ Selesai memproses semua voucher untuk Router {$m_ip}\n"; + writeLog("[✅] Selesai memproses semua voucher untuk Router {$m_ip}"); } else { - echo "Unable to connect to router: {$m_ip}\n"; + $msg = "Gagal terhubung ke Router: {$m_ip}"; + echo "❌ $msg\n"; + writeLog("[❌] $msg"); } -// Disconnect the API session +// ======================= +// Disconnect API session +// ======================= $API->disconnect(); -// Function to convert duration string to DateInterval -function convertDurationToInterval($durasi) { + +// ============================================ +// Helper Functions +// ============================================ +function convertDurationToInterval($durasi) +{ if (substr($durasi, -1) == 'H') { - return new DateInterval("PT" . rtrim($durasi, 'H') . "H"); // For hours + return new DateInterval("PT" . rtrim($durasi, 'H') . "H"); } elseif (substr($durasi, -1) == 'D') { - return new DateInterval("P" . rtrim($durasi, 'D') . "D"); // For days + return new DateInterval("P" . rtrim($durasi, 'D') . "D"); } elseif (substr($durasi, -1) == 'M') { - return new DateInterval("PT" . rtrim($durasi, 'M') . "M"); // For minutes + return new DateInterval("PT" . rtrim($durasi, 'M') . "M"); } else { - return false; // Invalid duration format + return false; } } -// Function to process the comment and extract valid activation time -function processCommentDate($comment) { +function processCommentDate($comment) +{ $modifiedDateTime = substr($comment, 6); if (substr($modifiedDateTime, 0, 4) == date('Y')) { return $modifiedDateTime; } else { $date = date_create_from_format("M/d/Y H:i:s", $modifiedDateTime); - if ($date !== false) { - return date_format($date, "Y-m-d H:i:s"); - } else { - echo "Invalid date format: {$modifiedDateTime}\n"; - return null; - } + return $date ? date_format($date, "Y-m-d H:i:s") : null; } } -// Function to update the voucher in the database -function updateVoucher($pdo, $iddatav1, $activetime, $exp) { +function updateVoucher($pdo, $iddatav1, $activetime, $exp) +{ $updateQuery = "UPDATE ganerate_voucher SET active_time = :activetime, expaired_time = :exp WHERE id = :id"; $stmt = $pdo->prepare($updateQuery); $stmt->execute([ ':activetime' => $activetime, - ':exp' => $exp, - ':id' => $iddatav1 + ':exp' => $exp, + ':id' => $iddatav1 ]); } -// Function to mark voucher as checked in the database -function markVoucherChecked($pdo, $iddatav1) { +function markVoucherChecked($pdo, $iddatav1) +{ $updateQuery = "UPDATE ganerate_voucher SET status_cek = '1' WHERE id = :id"; $stmt = $pdo->prepare($updateQuery); $stmt->execute([':id' => $iddatav1]); diff --git a/load/koneksi_off.log b/load/koneksi_off.log index 2c8ea27..f7a6d7d 100644 --- a/load/koneksi_off.log +++ b/load/koneksi_off.log @@ -1,23 +1,23 @@ SV_Cikembar_Utama Data pelanggan tidak ada -2025-07-05 16:21:01SV_BojongKerta Data pelanggan tidak ada -2025-07-05 16:21:01SV_Permata_Sampora Data pelanggan tidak ada -2025-07-05 16:21:01SV_Kingnet_Cibadak Data pelanggan tidak ada -2025-07-05 16:21:01SV_CC-Net_Cipicung Data pelanggan tidak ada -2025-07-05 16:21:01SV_Nusaina_Cibadak Data pelanggan tidak ada -2025-07-05 16:21:01SV_Diamond Net Status koneksi tidak aktif atau interval tidak tersedia. +2025-07-14 23:47:01SV_BojongKerta Data pelanggan tidak ada +2025-07-14 23:47:01SV_Permata_Sampora Data pelanggan tidak ada +2025-07-14 23:47:01SV_Kingnet_Cibadak Data pelanggan tidak ada +2025-07-14 23:47:01SV_CC-Net_Cipicung Data pelanggan tidak ada +2025-07-14 23:47:01SV_Nusaina_Cibadak Data pelanggan tidak ada +2025-07-14 23:47:01SV_Diamond Net Status koneksi tidak aktif atau interval tidak tersedia. SV_22P Net Cibadak Data pelanggan tidak ada -2025-07-05 16:21:01SV_Nettizen_Segaranten Data pelanggan tidak ada -2025-07-05 15:51:01SV-DNY-Net-1 Data pelanggan tidak ada -2025-07-05 16:31:01SV_NTA_2_Pasawahan Status koneksi tidak aktif atau interval tidak tersedia. +2025-07-14 23:47:01SV_Nettizen_Segaranten Data pelanggan tidak ada +2025-07-14 23:17:02SV-DNY-Net-1 Data pelanggan tidak ada +2025-07-14 23:57:02SV_NTA_2_Pasawahan Status koneksi tidak aktif atau interval tidak tersedia. SV_NTA_1 Status koneksi tidak aktif atau interval tidak tersedia. SV-Cicukang Status koneksi tidak aktif atau interval tidak tersedia. RO-Bumdes-Mekarmanah Status koneksi tidak aktif atau interval tidak tersedia. RO-Pak-Kholiq Data pelanggan tidak ada -2025-07-05 16:36:01RO-Dendrit-Net Status koneksi tidak aktif atau interval tidak tersedia. +2025-07-15 00:02:02RO-Dendrit-Net Status koneksi tidak aktif atau interval tidak tersedia. LJN.NS.CSR.NET Status koneksi tidak aktif atau interval tidak tersedia. IVVINET-CBD Data pelanggan tidak ada -2025-07-05 16:21:01QONNET Data pelanggan tidak ada -2025-07-05 16:21:01Mikrotik_X86 Status koneksi tidak aktif atau interval tidak tersedia. +2025-07-14 23:47:02QONNET Data pelanggan tidak ada +2025-07-14 23:47:02Mikrotik_X86 Status koneksi tidak aktif atau interval tidak tersedia. Mikrotik_BSW_1 Status koneksi tidak aktif atau interval tidak tersedia. Mikrotik_Alea Status koneksi tidak aktif atau interval tidak tersedia. STANG Status koneksi tidak aktif atau interval tidak tersedia. @@ -25,7 +25,7 @@ UNIX-NET Status koneksi tidak aktif atau interval tidak tersedia. BTR CIEMAS Status koneksi tidak aktif atau interval tidak tersedia. SV_NTA_2_TBL Status koneksi tidak aktif atau interval tidak tersedia. MULYANAJAYA Status koneksi tidak aktif atau interval tidak tersedia. -PERWASIM.NET Status koneksi tidak aktif atau interval tidak tersedia. +PERWASIM-NETWORK Status koneksi tidak aktif atau interval tidak tersedia. RO_MELDINA Status koneksi tidak aktif atau interval tidak tersedia. RO_LIPPY Status koneksi tidak aktif atau interval tidak tersedia. RO_Asep Status koneksi tidak aktif atau interval tidak tersedia. @@ -37,14 +37,14 @@ RO_Wargasari Status koneksi tidak aktif atau interval tidak tersedia. LJN_AGUNG Status koneksi tidak aktif atau interval tidak tersedia. RNET-CMS Status koneksi tidak aktif atau interval tidak tersedia. DCN-GB-CCR Data pelanggan tidak ada -2025-07-05 16:21:01coba Status koneksi tidak aktif atau interval tidak tersedia. +2025-07-14 23:47:02coba Status koneksi tidak aktif atau interval tidak tersedia. 412NET Status koneksi tidak aktif atau interval tidak tersedia. brf Status koneksi tidak aktif atau interval tidak tersedia. BMSNET Status koneksi tidak aktif atau interval tidak tersedia. purabaya Status koneksi tidak aktif atau interval tidak tersedia. DCN-CO-GX4 Data pelanggan tidak ada -2025-07-05 16:21:01MIKROTIK GX4 Status koneksi tidak aktif atau interval tidak tersedia. +2025-07-14 23:47:02MIKROTIK GX4 Status koneksi tidak aktif atau interval tidak tersedia. RO - Netborhood Wifi Status koneksi tidak aktif atau interval tidak tersedia. Neglasari Status koneksi tidak aktif atau interval tidak tersedia. SV-DNY-Net-2 Data pelanggan tidak ada -2025-07-05 16:31:01DNY-Neglasari Status koneksi tidak aktif atau interval tidak tersedia. +2025-07-14 23:57:02DNY-Neglasari Status koneksi tidak aktif atau interval tidak tersedia. diff --git a/load/load_multi_cek.log b/load/load_multi_cek.log index 1c49085..6e6050b 100644 --- a/load/load_multi_cek.log +++ b/load/load_multi_cek.log @@ -1 +1 @@ -Update ALL to NULL successful +Successfully started background process for IP: tunnel.manjapro.net SV-DNY-Net-1
Successfully started background process for IP: nsn.my.id SV_22P Net Cibadak
Successfully started background process for IP: nsn.my.id RO-Bumdes-Mekarmanah
Successfully started background process for IP: 103.242.104.69 RO-Dendrit-Net
Successfully started background process for IP: 103.26.176.93 LJN.NS.CSR.NET
Successfully started background process for IP: 103.155.198.109 RO_Asep
Successfully started background process for IP: 103.155.199.191 PERWASIM-NETWORK
Successfully started background process for IP: tunnel.manjapro.net SV_NTA_2_Pasawahan
Successfully started background process for IP: tunnel.manjapro.net SV-Cicukang
Successfully started background process for IP: tunnel.manjapro.net SV_NTA_1
Successfully started background process for IP: 103.94.10.112 STANG
Successfully started background process for IP: 157.20.128.231 QONNET
Successfully started background process for IP: 114.141.51.12 BMSNET
Successfully started background process for IP: 114.141.51.12 purabaya
Successfully started background process for IP: nsn.my.id SV_Cikembar_Utama
Successfully started background process for IP: tunnel.bilspro.com RO_Sukasari
Successfully started background process for IP: tunnel.bilspro.com Mikrotik_X86
Successfully started background process for IP: 103.155.196.145 UNIX-NET
Successfully started background process for IP: nsn.my.id SV_Diamond Net
Successfully started background process for IP: 103.26.176.81 SV_CC-Net_Cipicung
Successfully started background process for IP: 103.242.105.199 SV-DNY-Net-2
Started parallel processes for checking vouchers. => 2025-07-15 00:00:01 \ No newline at end of file diff --git a/load/load_multi_cek.php b/load/load_multi_cek.php index a7963c7..a9b1156 100644 --- a/load/load_multi_cek.php +++ b/load/load_multi_cek.php @@ -19,6 +19,7 @@ if ($set1->rowCount() > 0) { while ($pset = $set1->fetch(PDO::FETCH_ASSOC)) { // Get connection details for the router + $nama = $pset['nama']; $m_ip = $pset['ip_address']; $m_user = $pset['username']; $m_pass = $pset['password']; @@ -26,16 +27,16 @@ if ($set1->rowCount() > 0) { $idsm = $pset['id_setting_mikrotik']; // Prepare the command for each router - $command = "php /www/wwwroot/bilspro/load/check_voucher.php {$m_ip} {$m_user} {$m_pass} {$m_port} {$idsm} > /dev/null 2>&1 &"; + $command = "php /www/wwwroot/bilspro/load/check_voucher.php {$m_ip} {$m_user} {$m_pass} {$m_port} {$idsm} {$nama} > /dev/null 2>&1 &"; // Execute the command in background exec($command, $output, $return_var); // Check if there was an issue with exec if ($return_var !== 0) { - echo "Error executing command for IP: {$m_ip}\n"; + echo "Error executing command for IP: {$m_ip}
"; } else { - echo "Successfully started background process for IP: {$m_ip}\n"; + echo "Successfully started background process for IP: {$m_ip} {$nama}
"; } } diff --git a/load/load_pesan.php b/load/load_pesan.php index 493e589..4114398 100644 --- a/load/load_pesan.php +++ b/load/load_pesan.php @@ -319,7 +319,7 @@ try { // Kirim Pesan WhatsApp $nomor = explode(',', $tagihan['nomor_whatsapp']); - $Url = 'http://bilspro.com/invoice/' . $invoice; + $Url = 'https://manjapro.net/invoice/' . $invoice; $APIwa = new PesanWA(); $APIwa->Create_Pesan($tagihan['id_data_server'], $idtag, 'pesan_melunasi_tagihan', 'tag'); diff --git a/load/pppoe_update.log b/load/pppoe_update.log index 7511230..b8b9c48 100644 --- a/load/pppoe_update.log +++ b/load/pppoe_update.log @@ -24,7 +24,7 @@ STANG =>
UNIX-NET =>
SV_NTA_2_TBL =>
MULYANAJAYA =>
-PERWASIM.NET =>
+PERWASIM-NETWORK =>
RO_MELDINA =>
RO_LIPPY =>
RO_Asep =>
diff --git a/load/update_sewa_apk.log b/load/update_sewa_apk.log index b09c162..88a941e 100644 --- a/load/update_sewa_apk.log +++ b/load/update_sewa_apk.log @@ -1 +1 @@ -Tidak perlu update untuk ID: 2 Rp.200,000
Harga khusus untuk ID: 3 Rp.250,000
Tidak perlu update untuk ID: 4 Rp.300,000
Tidak perlu update untuk ID: 5 Rp.300,000
Tidak perlu update untuk ID: 6 Rp.200,000
Harga khusus untuk ID: 7 Rp.200,000
Tidak perlu update untuk ID: 8 Rp.200,000
Tidak perlu update untuk ID: 9 Rp.200,000
Tidak perlu update untuk ID: 10 Rp.200,000
Harga harus diupdate untuk ID Data Server: 12 Rp.750,000
Tidak perlu update untuk ID: 13 Rp.750,000
Tidak perlu update untuk ID: 14 Rp.450,000
Tidak perlu update untuk ID: 15 Rp.450,000
Tidak perlu update untuk ID: 16 Rp.300,000
Harga khusus untuk ID: 17 Rp.300,000
Tidak perlu update untuk ID: 18 Rp.300,000
Tidak perlu update untuk ID: 19 Rp.450,000
Tidak perlu update untuk ID: 20 Rp.200,000
Tidak perlu update untuk ID: 21 Rp.300,000
Tidak perlu update untuk ID: 22 Rp.300,000
Tidak perlu update untuk ID: 23 Rp.450,000
Tidak perlu update untuk ID: 24 Rp.200,000
Tidak perlu update untuk ID: 25 Rp.250,000
Tidak perlu update untuk ID: 26 Rp.200,000
Tidak perlu update untuk ID: 28 Rp.200,000
Tidak perlu update untuk ID: 29 Rp.300,000
Tidak perlu update untuk ID: 30 Rp.200,000
Tidak perlu update untuk ID: 31 Rp.200,000
Tidak perlu update untuk ID: 32 Rp.200,000
Tidak perlu update untuk ID: 33 Rp.200,000
Tidak perlu update untuk ID: 34 Rp.200,000
Tidak perlu update untuk ID: 35 Rp.200,000
Tidak perlu update untuk ID: 36 Rp.200,000
Tidak perlu update untuk ID: 37 Rp.300,000
Tidak perlu update untuk ID: 38 Rp.200,000
Tidak perlu update untuk ID: 39 Rp.200,000
Harga khusus untuk ID: 40 Rp.1,000,000
Tidak perlu update untuk ID: 41 Rp.200,000
Tidak perlu update untuk ID: 42 Rp.200,000
Harga khusus untuk ID: 43 Rp.100,000
Tidak perlu update untuk ID: 44 Rp.200,000
Tidak perlu update untuk ID: 45 Rp.300,000
Tidak perlu update untuk ID: 46 Rp.200,000
Tidak perlu update untuk ID: 47 Rp.200,000
Tidak perlu update untuk ID: 48 Rp.200,000
Tidak perlu update untuk ID: 49 Rp.200,000
Tidak perlu update untuk ID: 50 Rp.200,000
Tidak perlu update untuk ID: 51 Rp.200,000
Tidak perlu update untuk ID: 52 Rp.1,000,000
Tidak perlu update untuk ID: 53 Rp.200,000
Tidak perlu update untuk ID: 54 Rp.200,000
Tidak perlu update untuk ID: 55 Rp.200,000
Tidak perlu update untuk ID: 56 Rp.200,000
Tidak perlu update untuk ID: 57 Rp.200,000
Tidak perlu update untuk ID: 58 Rp.200,000
Tidak perlu update untuk ID: 59 Rp.200,000
Tidak perlu update untuk ID: 60 Rp.200,000
Tidak perlu update untuk ID: 61 Rp.300,000
Tidak perlu update untuk ID: 62 Rp.200,000
Tidak perlu update untuk ID: 63 Rp.200,000
Tidak perlu update untuk ID: 64 Rp.200,000
Tidak perlu update untuk ID: 65 Rp.200,000
Tidak perlu update untuk ID: 66 Rp.200,000
Tidak perlu update untuk ID: 67 Rp.200,000
Harga khusus untuk ID: 68 Rp.200,000
Harga khusus untuk ID: 69 Rp.200,000
Tidak perlu update untuk ID: 70 Rp.200,000
Tidak perlu update untuk ID: 71 Rp.200,000
Tidak perlu update untuk ID: 72 Rp.200,000
Tidak perlu update untuk ID: 73 Rp.200,000
\ No newline at end of file +Tidak perlu update untuk ID: 2 Rp.200,000
Harga khusus untuk ID: 3 Rp.250,000
Tidak perlu update untuk ID: 4 Rp.300,000
Tidak perlu update untuk ID: 5 Rp.300,000
Tidak perlu update untuk ID: 6 Rp.200,000
Harga khusus untuk ID: 7 Rp.200,000
Tidak perlu update untuk ID: 8 Rp.200,000
Tidak perlu update untuk ID: 9 Rp.200,000
Tidak perlu update untuk ID: 10 Rp.200,000
Tidak perlu update untuk ID: 12 Rp.750,000
Tidak perlu update untuk ID: 13 Rp.750,000
Tidak perlu update untuk ID: 14 Rp.450,000
Tidak perlu update untuk ID: 15 Rp.450,000
Tidak perlu update untuk ID: 16 Rp.300,000
Harga khusus untuk ID: 17 Rp.300,000
Tidak perlu update untuk ID: 18 Rp.300,000
Tidak perlu update untuk ID: 19 Rp.450,000
Tidak perlu update untuk ID: 20 Rp.200,000
Tidak perlu update untuk ID: 21 Rp.300,000
Tidak perlu update untuk ID: 22 Rp.300,000
Tidak perlu update untuk ID: 23 Rp.450,000
Tidak perlu update untuk ID: 24 Rp.200,000
Tidak perlu update untuk ID: 25 Rp.250,000
Tidak perlu update untuk ID: 26 Rp.200,000
Tidak perlu update untuk ID: 28 Rp.200,000
Tidak perlu update untuk ID: 29 Rp.300,000
Tidak perlu update untuk ID: 30 Rp.200,000
Tidak perlu update untuk ID: 31 Rp.200,000
Tidak perlu update untuk ID: 32 Rp.200,000
Tidak perlu update untuk ID: 33 Rp.200,000
Tidak perlu update untuk ID: 34 Rp.200,000
Tidak perlu update untuk ID: 35 Rp.200,000
Tidak perlu update untuk ID: 36 Rp.200,000
Tidak perlu update untuk ID: 37 Rp.300,000
Tidak perlu update untuk ID: 38 Rp.200,000
Tidak perlu update untuk ID: 39 Rp.200,000
Harga khusus untuk ID: 40 Rp.1,000,000
Tidak perlu update untuk ID: 41 Rp.200,000
Tidak perlu update untuk ID: 42 Rp.200,000
Harga khusus untuk ID: 43 Rp.100,000
Tidak perlu update untuk ID: 44 Rp.200,000
Tidak perlu update untuk ID: 45 Rp.300,000
Tidak perlu update untuk ID: 46 Rp.200,000
Tidak perlu update untuk ID: 47 Rp.200,000
Tidak perlu update untuk ID: 48 Rp.200,000
Tidak perlu update untuk ID: 49 Rp.200,000
Tidak perlu update untuk ID: 50 Rp.200,000
Tidak perlu update untuk ID: 51 Rp.200,000
Tidak perlu update untuk ID: 52 Rp.1,000,000
Tidak perlu update untuk ID: 53 Rp.200,000
Tidak perlu update untuk ID: 54 Rp.200,000
Tidak perlu update untuk ID: 55 Rp.200,000
Tidak perlu update untuk ID: 56 Rp.200,000
Tidak perlu update untuk ID: 57 Rp.200,000
Tidak perlu update untuk ID: 58 Rp.200,000
Tidak perlu update untuk ID: 59 Rp.200,000
Tidak perlu update untuk ID: 60 Rp.200,000
Tidak perlu update untuk ID: 61 Rp.300,000
Tidak perlu update untuk ID: 62 Rp.200,000
Tidak perlu update untuk ID: 63 Rp.200,000
Tidak perlu update untuk ID: 64 Rp.200,000
Tidak perlu update untuk ID: 65 Rp.200,000
Tidak perlu update untuk ID: 66 Rp.200,000
Tidak perlu update untuk ID: 67 Rp.200,000
Harga khusus untuk ID: 68 Rp.200,000
Harga khusus untuk ID: 69 Rp.200,000
Tidak perlu update untuk ID: 70 Rp.200,000
Tidak perlu update untuk ID: 71 Rp.200,000
Tidak perlu update untuk ID: 72 Rp.200,000
Tidak perlu update untuk ID: 73 Rp.200,000
2399 data pesan sebelum 3 hari terakhir berhasil dihapus.
\ No newline at end of file diff --git a/load/update_sewa_apk.php b/load/update_sewa_apk.php index a3af0c3..55bcd11 100644 --- a/load/update_sewa_apk.php +++ b/load/update_sewa_apk.php @@ -55,6 +55,24 @@ try { echo "Harga khusus untuk ID: " . $data['id'] . " Rp." . number_format($data['harga_sewa']) . "
"; } } + + $sekarang = date('Y-m-d H:i:s'); + $harilalu = date('Y-m-d H:i:s', strtotime("$sekarang -3 days")); + + // Hitung jumlah data yang akan dihapus + $sqlCount = "SELECT COUNT(id) AS jumid FROM master_pesan WHERE waktu <= :harilalu"; + $stmtCount = $pdo->prepare($sqlCount); + $stmtCount->execute(['harilalu' => $harilalu]); + $pp = $stmtCount->fetch(PDO::FETCH_ASSOC); + $jumlahHapus = $pp['jumid'] ?? 0; + + // Hapus data + $sqlDelete = "DELETE FROM master_pesan WHERE waktu <= :harilalu"; + $stmtDelete = $pdo->prepare($sqlDelete); + $stmtDelete->execute(['harilalu' => $harilalu]); + + echo $jumlahHapus . " data pesan sebelum 3 hari terakhir berhasil dihapus.
"; + } catch (PDOException $e) { // Tangani kesalahan koneksi atau query echo "Terjadi kesalahan: " . $e->getMessage(); diff --git a/pages/log_pesan.php b/pages/log_pesan.php index b229aa0..b7bbe34 100644 --- a/pages/log_pesan.php +++ b/pages/log_pesan.php @@ -1,5 +1,5 @@ -
+
@@ -10,7 +10,80 @@

Log Pesan

+
    + Kirim Ulang +
+ + + prepare("UPDATE master_pesan SET status = 'PENDING' WHERE status = 'GAGAL' AND api_key = :api_key AND waktu >= :mulaiulang"); + $updatePesan->execute([ + 'api_key' => $pakw['apikey_whatsapp'], + 'mulaiulang' => $mulaiulang + ]); + + // Hitung jumlah pesan yang diupdate + $jumlahPesan = $updatePesan->rowCount(); + + if ($jumlahPesan > 0) { + sweetAlert("$jumlahPesan pesan berhasil masuk antrian pengiriman ulang", "success"); + } else { + sweetAlert("Tidak ada pesan GAGAL yang ditemukan dalam $jamtam jam terakhir", "warning"); + } + + } catch (PDOException $e) { + sweetAlert("Error: " . $e->getMessage(), "error"); + } + } + ?> +
@@ -19,6 +92,7 @@ Nama Server + Waktu Nomor Pesan Url Image @@ -40,9 +114,10 @@ echo $sv['nama_server']; ?> + - - + +