Initial import
This commit is contained in:
256
one-api/application/controllers/tgram/Report.php
Normal file
256
one-api/application/controllers/tgram/Report.php
Normal file
@@ -0,0 +1,256 @@
|
||||
<?php
|
||||
class Report extends MY_Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
function verifikasi($tgramID) {
|
||||
$sql = "select tGramReportIsVerified from tgram_report where tGramReportTgramID = ?";
|
||||
$qry = $this->db->query($sql, array($tgramID));
|
||||
|
||||
$verified = false;
|
||||
if($qry) {
|
||||
$rows = $qry->result_array();
|
||||
if(count($rows) > 0 && $rows[0]["tGramReportIsVerified"] == "Y") {
|
||||
$verified = true;
|
||||
}
|
||||
}
|
||||
return $verified;
|
||||
}
|
||||
function get_branch($code) {
|
||||
$sql = "select * from m_branch where M_BranchCode = ?";
|
||||
$qry = $this->db->query($sql, array($code));
|
||||
|
||||
$name = "";
|
||||
$ip = "";
|
||||
if($qry) {
|
||||
$rows = $qry->result_array();
|
||||
if(count($rows) > 0 ) {
|
||||
$name = $rows[0]["M_BranchName"];
|
||||
$ip= $rows[0]["M_BranchIPAddress"];
|
||||
}
|
||||
}
|
||||
return array($name,$ip);
|
||||
}
|
||||
function clean_up_message($msg) {
|
||||
$msg = str_replace("-","\-",$msg);
|
||||
$msg = str_replace("(","\(",$msg);
|
||||
$msg = str_replace(")","\)",$msg);
|
||||
$msg = str_replace(".","\.",$msg);
|
||||
$msg = str_replace("[","\[",$msg);
|
||||
$msg = str_replace("]","\]",$msg);
|
||||
return $msg;
|
||||
}
|
||||
function list_send_message($id, $message) {
|
||||
$a_message = explode("\n\n",$message);
|
||||
foreach($a_message as $msg) {
|
||||
if(trim($msg) == "") continue;
|
||||
$this->send($id, $msg);
|
||||
}
|
||||
}
|
||||
function long_send_message($id, $message) {
|
||||
if (strlen($message) > 4096 ) {
|
||||
$p_message = substr($message,0,4000);
|
||||
$message = substr($message,4000);
|
||||
$this->send($id, p_message);
|
||||
$still_have_message = true;
|
||||
$counter = 1;
|
||||
while( $still_have_message ) {
|
||||
if (strlen($message) > 4096 ) {
|
||||
$p_message = substr($message,0,4000);
|
||||
$message = substr($message,4000);
|
||||
$this->send($id, p_message);
|
||||
$still_have_message = true;
|
||||
} else {
|
||||
$this->send($id ,$message);
|
||||
$still_have_message = false;
|
||||
}
|
||||
$counter++;
|
||||
if ($counter == 4 ) $still_have_message = false;
|
||||
}
|
||||
} else {
|
||||
$this->send($id, $message);
|
||||
}
|
||||
}
|
||||
function branch_hasil($ip,$date) {
|
||||
$url = "http://$ip/one-api/tgram/hasil/list";
|
||||
$data = array ("date" => $date);
|
||||
$j_data = json_encode($data);
|
||||
$message = $this->post($url,$j_data);
|
||||
return $message;
|
||||
}
|
||||
function branch_download($ip,$noreg) {
|
||||
$url = "http://$ip/one-api/tgram/hasil/download";
|
||||
$data = array ("noreg" => $noreg);
|
||||
$j_data = json_encode($data);
|
||||
$message = $this->post($url,$j_data);
|
||||
return $message;
|
||||
}
|
||||
function register() {
|
||||
$prm = $this->sys_input;
|
||||
switch($prm["cmd"]) {
|
||||
case "download":
|
||||
$id = $prm["tgramID"];
|
||||
$noreg = $prm["noreg"];
|
||||
// 006S6M63DA
|
||||
$kode_cabang= substr($noreg,8,2);
|
||||
list($branchName,$branchIP) = $this->get_branch($kode_cabang);
|
||||
if ($branchName == "" ) {
|
||||
$kode_cabang= substr($noreg,0,2);
|
||||
list($branchName,$branchIP) = $this->get_branch($kode_cabang);
|
||||
}
|
||||
$branchIP = "devone.aplikasi.web.id";
|
||||
$hasil = $this->branch_download($branchIP,$noreg);
|
||||
$j_hasil = json_decode($hasil,true);
|
||||
if ($j_hasil) {
|
||||
if ($j_hasil["status"] == "OK" ) {
|
||||
$msg = $j_hasil["msg"];
|
||||
foreach($j_hasil["reports"] as $r) {
|
||||
$fname = $r["fname"];
|
||||
$text = $msg . "Hasil\t: " . $r["name"];
|
||||
$text = $this->clean_up_message($text);
|
||||
$pdf_url = "http://" . $branchIP . $r["url"];
|
||||
//echo "\nsenddoc\n$id\n$pdf_url\n$fname\n";
|
||||
$this->senddoc($id,$text,$pdf_url, $fname);
|
||||
}
|
||||
} else {
|
||||
$this->send($id,$j_hasil["msg"]);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "hasil":
|
||||
$kode_cabang = $prm["branchCode"];
|
||||
$tanggal = $prm["date"];
|
||||
if(! $this->verifikasi($prm["tgramID"]) ) {
|
||||
echo json_encode( array("status"=>"ERR", "message" => "Not Verified") );
|
||||
exit;
|
||||
}
|
||||
list($branchName,$branchIP) = $this->get_branch($kode_cabang);
|
||||
$branchIP = "devone.aplikasi.web.id";
|
||||
|
||||
$message = "Daftar Permintaan Hasil dikirim WA \n$branchName\nTanggal $tanggal\n";
|
||||
$message .= $this->branch_hasil($branchIP,$tanggal);
|
||||
$message = $this->clean_up_message($message);
|
||||
$this->list_send_message($prm["tgramID"],$message);
|
||||
echo json_encode( array("status"=>"OK", "message" => "") );
|
||||
break;
|
||||
case "register" :
|
||||
$sql = "insert into tgram_report(tGramReportTgramID, tGramReportName, tGramReportM_BranchCode)
|
||||
values(?,?,?)";
|
||||
$qry = $this->db->query($sql, array($prm["tgramID"], $prm["name"], $prm["branchCode"]));
|
||||
if($qry) {
|
||||
$request_contact = "Konfirmasi Registrasi, dengan mengirimkan contact\.";
|
||||
$this->send($prm["tgramID"],$request_contact,true);
|
||||
echo json_encode( array("status"=>"OK", "message" => "") );
|
||||
} else {
|
||||
echo json_encode( array("status"=>"ERR", "message" => print_r($this->db->error(),true) ));
|
||||
}
|
||||
break;
|
||||
case "register-contact":
|
||||
$sql = "update tgram_report set tGramReportHp=? where tGramReportTgramID = ? ";
|
||||
$qry = $this->db->query($sql, array($prm["hp"], $prm["tgramID"]));
|
||||
if($qry) {
|
||||
$request_contact = "Contact anda sudah di terima, menunggu verifikasi admin\.";
|
||||
$this->send($prm["tgramID"],$request_contact,true);
|
||||
echo json_encode( array("status"=>"OK", "message" => "") );
|
||||
} else {
|
||||
echo json_encode( array("status"=>"ERR", "message" => print_r($this->db->error(),true) ));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
function post($url,$data) {
|
||||
$ch = curl_init($url);
|
||||
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
|
||||
'Content-Type: application/json',
|
||||
'Content-Length: ' . strlen($data))
|
||||
);
|
||||
$result = curl_exec($ch);
|
||||
return $result;
|
||||
}
|
||||
public function send($id,$text,$req_contact = false) {
|
||||
$prm = $this->sys_input;
|
||||
$url = "https://api.telegram.org/bot903313223:AAH26dxAjoOd3TcuLIJFPQ19wOzgF_ZRvkc/sendMessage";
|
||||
$data = array (
|
||||
"chat_id" => $id ,
|
||||
"parse_mode" => "MarkdownV2",
|
||||
"text" => $text
|
||||
);
|
||||
if ($req_contact === true ) {
|
||||
$data["reply_markup"] = array('keyboard' => array( array(
|
||||
array("text" => "Kirimkan contact saya", "request_contact" => true )
|
||||
)));
|
||||
}
|
||||
$j_data = json_encode($data);
|
||||
$result = $this->post($url,$j_data);
|
||||
//echo "\nResult tgram: " . $result . "\n";
|
||||
}
|
||||
|
||||
|
||||
|
||||
function build_data_files($boundary, $fields, $files){
|
||||
$data = '';
|
||||
$eol = "\r\n";
|
||||
$delimiter = '-------------' . $boundary;
|
||||
foreach ($fields as $name => $content) {
|
||||
$data .= "--" . $delimiter . $eol
|
||||
. 'Content-Disposition: form-data; name="' . $name . "\"".$eol.$eol
|
||||
. $content . $eol;
|
||||
}
|
||||
foreach($files as $file) {
|
||||
$data .= "--" . $delimiter . $eol
|
||||
. 'Content-Disposition: form-data; name="' . $file["name"] . '"; filename="' . $file["fname"] . '"' . $eol
|
||||
//. 'Content-Type: image/png'.$eol
|
||||
. 'Content-Transfer-Encoding: binary'.$eol
|
||||
;
|
||||
|
||||
$data .= $eol;
|
||||
$data .= $file["content"] . $eol;
|
||||
$data .= "--" . $delimiter . "--".$eol;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
function senddoc($id, $text, $pdf_url, $name) {
|
||||
$url = "https://api.telegram.org/bot903313223:AAH26dxAjoOd3TcuLIJFPQ19wOzgF_ZRvkc/sendDocument";
|
||||
$fields = array( "chat_id" => $id , "caption" => $text , "parse_mode" => "MarkdownV2");
|
||||
$files[] = array(
|
||||
"name" => "document",
|
||||
"fname" => $name,
|
||||
"content" => file_get_contents($pdf_url)
|
||||
);
|
||||
$boundary ="-myboundary-bizOneRpt-" . uniqid();
|
||||
$delimiter = '-------------' . $boundary;
|
||||
$message = $this->build_data_files($boundary,$fields,$files);
|
||||
$result = $this->post_mf($url,$message,$delimiter);
|
||||
//echo "\ntgram senddoc :\n$result\n";
|
||||
}
|
||||
function post_mf($url,$data,$delimiter) {
|
||||
$curl = curl_init();
|
||||
curl_setopt_array($curl, array(
|
||||
CURLOPT_URL => $url,
|
||||
CURLOPT_RETURNTRANSFER => 1,
|
||||
CURLOPT_MAXREDIRS => 10,
|
||||
CURLOPT_TIMEOUT => 30,
|
||||
CURLOPT_CUSTOMREQUEST => "POST",
|
||||
CURLOPT_POST => 1,
|
||||
CURLOPT_POSTFIELDS => $data,
|
||||
CURLOPT_HTTPHEADER => array(
|
||||
"Content-Type: multipart/form-data; boundary=" . $delimiter,
|
||||
"Content-Length: " . strlen($data)
|
||||
),
|
||||
));
|
||||
$result_a = curl_exec($curl);
|
||||
$err = curl_error($curl);
|
||||
$result = $result_a;
|
||||
if ($err) {
|
||||
$result = $result_a . "\nERR : " . print_r($err,true) . "\n" ;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user