sys_input; $headerID = $prm["headerID"]; $groupResultID = $prm["groupResultID"]; $deliveryID= $prm["deliveryID"]; $jsonText= $prm["jsonTxt"]; $note= $prm["note"]; $destination= $prm["destination"]; $sql = "insert into tx_whatsapp(Tx_WhatsappT_OrderHeaderID, Tx_WhatsappGroup_ResultID, Tx_WhatsappM_DeliveryID, Tx_WhatsappSentDate, Tx_WhatsappJson, Tx_WhatsappNote,Tx_WhatsappIsSent,Tx_WhatsappDestination) values (?, ?, ?, now(), ?, ?,'Y',?) "; $qry = $this->db->query($sql, array($headerID, $groupResultID, $deliveryID, $jsonText, $note,$destination)); if ($qry) { $txId = $this->db->insert_id(); $this->create_wa_detail($txId,$jsonText); $this->update_greeting($destination); $result = array("status" => "OK", "message" => ""); } else { $result = array("status" => "ERR", "message" => print_r($this->db->error(),true) ); } echo json_encode($result); } function create_wa_detail($txid, $text) { $p= json_decode($text,true); $sql = "insert into tx_whatsappdetail(Tx_WhatsappDetailTx_WhatsappID,Tx_WhatsappDetailUuid, Tx_WhatsappDetailCreated,Tx_WhatsappDetailMessage) values(?,?,now(),?)"; if(isset($p["data"]) && isset($p["data"]["uuid"]) ){ $uuid = $p["data"]["uuid"]; $message= $p["data"]["message"]; $this->db->query($sql, array($txid,$uuid,$message)); } } function update_greeting($hp) { $sql = "insert into wa_greeting(WaGreetingHp) values(?)"; $qry = $this->db->query($sql,array($hp)); /* if ($qry) { //insert into tx_whatsapp echo json_encode(array("status" => "OK" , "message" => "")); } else { echo json_encode(array("status" => "ERR" , "message" => print_r($this->db->error(),true))); } */ } function is_greet($phone) { $sql = "select count(*) tot from wa_greeting where WaGreetingHp = ? "; $qry = $this->db->query($sql, array($phone)); if($qry) { $rows = $qry->result_array(); if (count($rows)> 0 ) { if ($rows[0]["tot"] > 0 ) return true; } } return false; } function list() { $date = $this->sys_input["date"]; //hanya whatsapp pasien $sql = "select group_concat(distinct T_OrderHeaderID) xids from t_orderheader join t_orderheaderaddon on T_OrderHeaderID = T_OrderHeaderAddOnT_OrderHeaderID and T_OrderHeaderAddOnIsActive = 'Y' and T_OrderHeaderAddOnFOVerification = 'Y' join t_orderdelivery on T_OrderHeaderID = T_OrderDeliveryT_OrderHeaderID and T_OrderHeaderIsActive = 'Y' and date(T_OrderHeaderDate) = ? and T_OrderDeliveryIsActive = 'Y' and T_OrderDeliveryM_DeliveryID in ( 6 ) "; $ids = ""; $query = $this->db->query($sql,array($date)); if ($query) { $rows = $query->result_array(); $ids = $rows[0]["xids"]; } else { $result = array( "status" => "ERR", "rows" => array(), "messge" => print_r($this->db->error(),true) ); echo json_encode($result); exit; } if ($ids == "") { $result = array( "status" => "OK", "rows" => array() ); echo json_encode($result); exit; } $sql = "select * from m_emailconfig where M_EmailConfigIsActive = 'Y' limit 0,1"; $query = $this->db->query($sql); $tpl_greeting = ""; if ($query) { $rows = $query->result_array(); if(count($rows) > 0 ) { $r = $rows[0]; $tpl_greeting = trim($r["M_EmailConfigWaGreetingAPS"]); } } else { $result = array( "status" => "ERR", "rows" => array(), "messge" => print_r($this->db->error(),true) ); echo json_encode($result); exit; } if ($ids == "") { $result = array( "status" => "OK", "rows" => array(), "messge" => "No Greeting setup" ); echo json_encode($result); exit; } $sql = "select distinct T_OrderHeaderID, T_OrderDeliveryDestination, fn_get_patient_atribute(T_OrderHeaderM_PatientID) PatientName, ifnull(Last_StatusPaymentIsLunas,'N') IsLunas from t_orderheader join t_orderdelivery on T_OrderHeaderID = T_OrderDeliveryT_OrderHeaderID and T_OrderDeliveryIsActive = 'Y' and T_OrderDeliveryM_DeliveryID in ( 6 ) left join last_statuspayment ON Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID AND Last_StatusPaymentIsActive = 'Y' where T_OrderHeaderID in ( $ids ) order by T_OrderHeaderID "; $query = $this->db->query($sql,array($date)); $list_result = array(); if ($query) { $rows = $query->result_array(); $max_count = 30; $count = 0; foreach($rows as $idx => $r) { if ($count >= $max_count) break; $headerID = $r["T_OrderHeaderID"]; $phone = $r["T_OrderDeliveryDestination"]; if ($this->is_greet($phone)) continue; if ($r["isLunas"] == "N" ) continue ; $count++; $j_pasien = json_decode($r["PatientName"],true); $xname = $j_pasien["patient_fullname"]; $greeting = str_replace("{PASIEN}",$xname,$tpl_greeting); $list_result[] = array( "T_OrderHeaderID" => $headerID, "phone" => $phone, "greeting" => $greeting ); } } else { $result = array( "status" => "ERR", "rows" => array(), "messge" => print_r($this->db->error(),true) ); echo json_encode($result); exit; } echo json_encode( array( "status" => "OK", "rows" => $list_result )); } }