Quick Setting

Setting Dasar

Nomor WhatsApp Penerima Notif :
Alamat Lengkap :
Kabupaten :
INFORMASI
  • Isi nomor whtasapp untuk pemerima notif saat ada registrasi pelanggan baru, seperti nomor whatapp pemilik atau teknisi, beri tanda ( , ) untuk memisakhan jika nomor di isi lebih dari 1. Contoh => 081298xxxx31,081298xxxx32
beginTransaction(); // Update data server $quick_setting = 'off'; $stmt = $pdo->prepare("UPDATE data_server SET nomor_whatsapp = :nomor, alamat = :alamat, kabupaten = :kabupaten, quick_setting = :quick_setting WHERE id = :idtik"); $stmt->bindParam(':nomor', $_SESSION['nomor']); $stmt->bindParam(':alamat', $_SESSION['alamat']); $stmt->bindParam(':kabupaten', $_SESSION['kabupaten']); $stmt->bindParam(':quick_setting', $quick_setting); $stmt->bindParam(':idtik', $_SESSION['master'], PDO::PARAM_INT); $stmt->execute(); // Insert setting mikrotik $user_remote = 'Test'; $last_remote = date('Y-m-d H:i:s'); $stmt = $pdo->prepare("INSERT INTO setting_mikrotik (id_data_server, nama, ip_address, port_api, port_remote, username, password, profile_remote, user_remote, last_remote) VALUES (:id_data_server, :nama, :ip_address, :port_api, :port_remote, :username, :password, :profile_remote, :user_remote, :last_remote)"); $stmt->bindParam(':id_data_server', $_SESSION['master']); $stmt->bindParam(':nama', $_SESSION['nmk']); $stmt->bindParam(':ip_address', $_SESSION['ipa']); $stmt->bindParam(':port_api', $_SESSION['pam']); $stmt->bindParam(':port_remote', $_SESSION['prm']); $stmt->bindParam(':username', $_SESSION['usm']); $stmt->bindParam(':password', $_SESSION['psw']); $stmt->bindParam(':profile_remote', $_SESSION['profile_remote']); $stmt->bindParam(':user_remote', $user_remote); $stmt->bindParam(':last_remote', $last_remote); $stmt->execute(); $lastInsertIdMikrotik = $pdo->lastInsertId(); // Insert profile paket $status = (isset($_SESSION['jenishs']) && $_SESSION['jenishs'] == 1) ? 1 : NULL; $durasi = (isset($_SESSION['durasi'])) ? $_SESSION['durasi'] : NULL; $nominal = preg_replace("/[^0-9]/", "", $_SESSION['harga']); $cekfee = preg_replace("/[^0-9]/", "", $_SESSION['fee']); $fee = (!empty($cekfee)) ? $cekfee : NULL; $stmt = $pdo->prepare("INSERT INTO profile_paket (id_data_server, jenis_profile, nama_profile, durasi, nama, harga_paket, vi_agen, status) VALUES (:id_data_server, :jenis_profile, :nama_profile, :durasi, :nama, :harga_paket, :vi_agen, :status)"); $stmt->bindParam(':id_data_server', $_SESSION['master']); $stmt->bindParam(':jenis_profile', $_SESSION['jenis']); $stmt->bindParam(':nama_profile', $_SESSION['profile']); $stmt->bindParam(':durasi', $durasi); $stmt->bindParam(':nama', $_SESSION['namapaket']); $stmt->bindParam(':harga_paket', $nominal); $stmt->bindParam(':vi_agen', $fee); $stmt->bindParam(':status', $status); $stmt->execute(); // Insert profile tagihan $peringatan = ($_SESSION['peringatan'] == 1) ? $_SESSION['isolir'] - 1 : NULL; $ppnset = ($_SESSION['ppn'] == 0 ) ? 0 : $_SESSION['ppn']; $stmt = $pdo->prepare("INSERT INTO profile_tagihan (id_data_server, nama, kirim_tagihan, buat_tagihan, limit_tagihan, konpensasi, ppn, peringatan_tagihan) VALUES (:id_data_server, :nama, :kirim_tagihan, :buat_tagihan, :limit_tagihan, :konpensasi, :ppn, :peringatan_tagihan)"); $stmt->bindParam(':id_data_server', $_SESSION['master']); $stmt->bindParam(':nama', $_SESSION['namaprotag']); $stmt->bindParam(':kirim_tagihan', $_SESSION['kirim']); $stmt->bindParam(':buat_tagihan', $_SESSION['buat']); $stmt->bindParam(':limit_tagihan', $_SESSION['isolir']); $stmt->bindParam(':konpensasi', $_SESSION['konpensasi']); $stmt->bindParam(':ppn', $ppnset); $stmt->bindParam(':peringatan_tagihan', $peringatan); $stmt->execute(); // Insert master topologi $stmt = $pdo->prepare("INSERT INTO master_topologi (id_data_server, nama, titik_koordinat, jumlah_port) VALUES (:id_data_server, :nama, :titik_koordinat, :jumlah_port)"); $stmt->bindParam(':id_data_server', $_SESSION['master']); $stmt->bindParam(':nama', $_SESSION['namatop']); $stmt->bindParam(':titik_koordinat', $_SESSION['koordinat']); $stmt->bindParam(':jumlah_port', $_SESSION['jumlah']); $stmt->execute(); // Insert master desa $stmt = $pdo->prepare("INSERT INTO master_desa (id_data_server, nama) VALUES (:id_data_server, :nama)"); $stmt->bindParam(':id_data_server', $_SESSION['master']); $stmt->bindParam(':nama', $_SESSION['desa']); $stmt->execute(); // Insert group akses $market = (isset($_SESSION['market']) && $_SESSION['market'] == 'Y') ? 'Y' : ''; if (isset($_SESSION['menu_ids'])) { $menu_ids = $_SESSION['menu_ids']; $json_string = json_encode($menu_ids, JSON_PRETTY_PRINT); } $stmt = $pdo->prepare("INSERT INTO group_akses (id_data_server, nama, akses, per_marketing) VALUES (:id_data_server, :nama, :akses, :per_marketing)"); $stmt->bindParam(':id_data_server', $_SESSION['master']); $stmt->bindParam(':nama', $_SESSION['ngakses']); $stmt->bindParam(':akses', $json_string); $stmt->bindParam(':per_marketing', $market); $stmt->execute(); // Mengambil ID terakhir yang diinsert ke dalam tabel `group_akses` $lastInsertId = $pdo->lastInsertId(); // Insert user akses $hashedPassword = password_hash($_SESSION['password'], PASSWORD_DEFAULT); $stmt = $pdo->prepare("INSERT INTO user_akses (nama, nomor_whatsapp, username, password, id_group_akses, id_data_server) VALUES (:nama, :nomor_whatsapp, :username, :password, :id_group_akses, :id_data_server)"); $stmt->bindParam(':nama', $_SESSION['nma']); $stmt->bindParam(':nomor_whatsapp', $_SESSION['nwa']); $stmt->bindParam(':username', $_SESSION['username']); $stmt->bindParam(':password', $hashedPassword); $stmt->bindParam(':id_group_akses', $lastInsertId); $stmt->bindParam(':id_data_server', $_SESSION['master']); $stmt->execute(); // Commit transaksi $pdo->commit(); // Perform Mikrotik update $script = ':global hsa "";:global pppa "";:local id [/system license get software-id];:local idbm ($id."7");:local uptim [/system resource get uptime];:local bname [/system resource get board-name];:foreach i in=[/ppp active find] do={:local name [/ppp active get $i name];:local ip [/ppp active get $i address];:local mac [/ppp active get $i caller-id];:set $pppa ("$pppa$name_$ip_$mac|");};:foreach h in=[/ip hotspot user find comment!="" and uptime<20m] do={:local cek [:pick [/ip hotspot user get $h comment] 0 6];:if ($cek = "Login.") do={:local hsuser [/ip hotspot user get $h name];:local hscom [:pick [/ip hotspot user get $h comment] 6 50];:set $hsa ("$hsa$hsuser_$hscom|");}};/tool fetch url="https://manjapro.net/api/mikrotik.php" mode=https http-method=post http-data="{\"id\":\"$idbm\",\"bm\":\"$bname\",\"ut\":\"$uptim\",\"hsa\":\"$hsa\",\"pppa\":\"$pppa\"}" keep-result=no;:delay 1s;:set $pppa ("");:set $hsa ("");'; $API = new RouterosAPI(); $API->debug = false; // Ambil data koneksi Mikrotik dari $_SESSION $ip_address = $_SESSION['ipa']; // IP Mikrotik $username = $_SESSION['usm']; // Username Mikrotik $password = $_SESSION['psw']; // Password Mikrotik $port_api = $_SESSION['pam']; // Port API Mikrotik // Menghubungkan ke API Mikrotik menggunakan data yang dikirim melalui POST if ($API->connect2($ip_address, $username, $password, $port_api)) { $API->write('/system/license/getall'); $READ = $API->read(false); $ARRAY = $API->parseResponse($READ); // Scheduler update logic $arrsc=$API->comm('/system/scheduler/getall', array( ".proplist"=> ".id", "?name" => "SchBilsPro" , )); $scd = $arrsc[0][".id"]; $arrs=$API->comm('/system/script/getall', array( ".proplist"=> ".id", "?name" => "BilsProAPI" , )); $scp = $arrs[0][".id"]; if ($scd != '') { $API->comm("/system/scheduler/set", array( ".id" => $scd, "interval" => "40s", "on-event" => "/system script run BilsProAPI", ) ); } else { $API->comm('/system/scheduler/add', array( "name" => "SchBilsPro", "interval" => "40s", "on-event" => "/system script run BilsProAPI", )); } if ($scp != '' ) { $API->comm("/system/script/set", array( ".id" => $scp, "source" => $script, ) ); } else { $API->comm('/system/script/add', array( "name" => "BilsProAPI", "source" => $script, )); } $date = date('Y-m-d H:i:s'); $board_id = $ARRAY[0]['software-id'].$lastInsertIdMikrotik; $stmt = $pdo->prepare("UPDATE setting_mikrotik SET board_id = :board_id, last_time = :last_time WHERE id = :id"); // Bind parameters to the prepared statement $stmt->bindParam(':board_id', $board_id); $stmt->bindParam(':last_time', $date); $stmt->bindParam(':id', $lastInsertIdMikrotik, PDO::PARAM_INT); // Execute the query $stmt->execute(); } sweetAlert("Data telah disimpan, dan menu akan di hilang", "success", "?".encrypt_url('dashboard')); } catch (Exception $e) { // Rollback transaksi jika terjadi error $pdo->rollBack(); sweetAlert("Terjadi kesalahan" . $e->getMessage(), "error"); } } ?>