Kali ini gw mao sharing sekaligus buat ingetin gw klo gw sudah buat penarikan presensi langsung dari mesin absen
mesin absen yg digunakan adalah Merek Solutionn Type X103C yg di integrasikan dengan PHP Framework CodeIgniter
Oke kita akan bahas step-stepnya
Pembuatan Database NamaDb : db_absen Nama Table: tbl_attendance
berikut struktur table tbl_attendance
referensi Kodingan seperti ini
$ip=isi dengan IP mesin absensi X103C anda;
$key=isi dengan communication keynya;
$xml1="<GetAttLog>
<ArgComKey xsi:type=\"xsd:integer\">$key</ArgComKey>
<Arg>
<PIN xsi:type=\"xsd:integer\">All</PIN>
</Arg>
</GetAttLog>";
$location="http://$ip/iWsService";
$mesin = new SoapClient(NULL,array("location"=>"","uri"=>""));
$hasil=$mesin->__doRequest($xml1,$location,"","1.1");
Nah Sekarang kita coba integrasikan dengan PHP Codeigniter
Pada File config.php
seting BaseUrl (nah yang ini mungkin teman-teman sudah tau yh)
Pada File autoload.php
$autoload['libraries'] = array('database');
$autoload['helper'] = array('url','form','Global','language');
nah global pada helper kita akan buatkan fungsi parse data kita bahas nanti
setelah itu buat sebuah file controller di folder controller Mis : Attendance.php
Berikut Skripnya :
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Attendance extends CI_Controller {
function __construct() {
parent:: __construct();
$this->load->library('form_validation');
$this->load->model('model','mod');
}
function tarik(){
echo 'Download Finger Print'."\n";
$this->mod->get_data_absen('');
echo "Done Download Finger Print ID \n" ;
}
}
Lalu buatkan file Model.php pada folder models sebagai skrip yang bekerja menarik presensi dari mesin absensi dan kemudian menyimpan data ke Mysql.
Skrip Sebagai Berikut
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Model extends CI_Model {
function __construct() {
parent::__construct();
}
public function if_exist_check($PIN, $DateTime){
$data = $this->db->get_where('attendance', array('pin' => $PIN, 'date_time' => $DateTime))->row();
return $data;
}
public function get_data_absen($i){
error_reporting(0);
$IP = "IP ADDRESS MESIN";
$Key = "PASSWORD MESIN";
if($IP!=""){
$Connect = fsockopen($IP, "80", $errno, $errstr, 1);
if($Connect){
//GetUserInfo
//for($j=1;$j<=200;$j++){
$soap_request="<GetAttLog><ArgComKey xsi:type=\"xsd:integer\">".$Key."</ArgComKey><Arg><PIN xsi:type=\"xsd:integer\">12</PIN></Arg></GetAttLog>";
// "<GetAttLog><ArgComKey xsi:type=\"xsd:integer\">".$Key."</ArgComKey><Arg><PIN xsi:type=\"xsd:integer\">All</PIN></Arg></GetAttLog>";
// $soap_request="<GetAttLog><ArgComKey xsi:type=\"xsd:integer\">".$Key."</ArgComKey><Arg><Date xsi:type=\"xsd:string\">2017-11-09</Date></Arg></GetAttLog>";
$newLine="\r\n";
fputs($Connect, "POST /iWsService HTTP/1.0".$newLine);
fputs($Connect, "Content-Type: text/xml".$newLine);
fputs($Connect, "Content-Length: ".strlen($soap_request).$newLine.$newLine);
fputs($Connect, $soap_request.$newLine);
$buffer="";
while($Response=fgets($Connect, 1024)){
$buffer=$buffer.$Response;
}
$buffer = Parse_Data($buffer,"<GetAttLogResponse>","</GetAttLogResponse>");
$buffer = explode("\r\n",$buffer);
//}
for($a=0;$a<count($buffer);$a++){
$data = Parse_Data($buffer[$a],"<Row>","</Row>");
$PIN = Parse_Data($data,"<PIN>","</PIN>");
$DateTime = Parse_Data($data,"<DateTime>","</DateTime>");
$Verified = Parse_Data($data,"<Verified>","</Verified>");
$Status = Parse_Data($data,"<Status>","</Status>");
$ins = array(
"pin" => $PIN,
"date_time" => date('Y-m-d H:i', strtotime($DateTime)),
"ver" => $Verified,
"status" => $Status
);
if (!$this->if_exist_check($PIN, $DateTime) && $PIN && $DateTime) {
$this->db->insert('tbl_attendance', $ins);
}
}
}
}
}
}
File Helper untuk parse_data
buat file pada folder Helper dengan nama file Global_helper
Skrip :
<?php
function Parse_Data($data,$p1,$p2){
$data=" ".$data;
$hasil="";
$awal=strpos($data,$p1);
if($awal!=""){
$akhir=strpos(strstr($data,$p1),$p2);
if($akhir!=""){
$hasil=substr($data,$awal+strlen($p1),$akhir-strlen($p1));
}
}
return $hasil;
}
?>
setelah semuanya selesai kita akan tarik melalui command / underdos
untuk demo dan source kode silahkan kunjungi di channel zialagiaza di sini nih
mesin absen yg digunakan adalah Merek Solutionn Type X103C yg di integrasikan dengan PHP Framework CodeIgniter
Oke kita akan bahas step-stepnya
Pembuatan Database NamaDb : db_absen Nama Table: tbl_attendance
berikut struktur table tbl_attendance
referensi Kodingan seperti ini
$ip=isi dengan IP mesin absensi X103C anda;
$key=isi dengan communication keynya;
$xml1="<GetAttLog>
<ArgComKey xsi:type=\"xsd:integer\">$key</ArgComKey>
<Arg>
<PIN xsi:type=\"xsd:integer\">All</PIN>
</Arg>
</GetAttLog>";
$location="http://$ip/iWsService";
$mesin = new SoapClient(NULL,array("location"=>"","uri"=>""));
$hasil=$mesin->__doRequest($xml1,$location,"","1.1");
Nah Sekarang kita coba integrasikan dengan PHP Codeigniter
Pada File config.php
seting BaseUrl (nah yang ini mungkin teman-teman sudah tau yh)
Pada File autoload.php
$autoload['libraries'] = array('database');
$autoload['helper'] = array('url','form','Global','language');
nah global pada helper kita akan buatkan fungsi parse data kita bahas nanti
setelah itu buat sebuah file controller di folder controller Mis : Attendance.php
Berikut Skripnya :
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Attendance extends CI_Controller {
function __construct() {
parent:: __construct();
$this->load->library('form_validation');
$this->load->model('model','mod');
}
function tarik(){
echo 'Download Finger Print'."\n";
$this->mod->get_data_absen('');
echo "Done Download Finger Print ID \n" ;
}
}
Lalu buatkan file Model.php pada folder models sebagai skrip yang bekerja menarik presensi dari mesin absensi dan kemudian menyimpan data ke Mysql.
Skrip Sebagai Berikut
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Model extends CI_Model {
function __construct() {
parent::__construct();
}
public function if_exist_check($PIN, $DateTime){
$data = $this->db->get_where('attendance', array('pin' => $PIN, 'date_time' => $DateTime))->row();
return $data;
}
public function get_data_absen($i){
error_reporting(0);
$IP = "IP ADDRESS MESIN";
$Key = "PASSWORD MESIN";
if($IP!=""){
$Connect = fsockopen($IP, "80", $errno, $errstr, 1);
if($Connect){
//GetUserInfo
//for($j=1;$j<=200;$j++){
$soap_request="<GetAttLog><ArgComKey xsi:type=\"xsd:integer\">".$Key."</ArgComKey><Arg><PIN xsi:type=\"xsd:integer\">12</PIN></Arg></GetAttLog>";
// "<GetAttLog><ArgComKey xsi:type=\"xsd:integer\">".$Key."</ArgComKey><Arg><PIN xsi:type=\"xsd:integer\">All</PIN></Arg></GetAttLog>";
// $soap_request="<GetAttLog><ArgComKey xsi:type=\"xsd:integer\">".$Key."</ArgComKey><Arg><Date xsi:type=\"xsd:string\">2017-11-09</Date></Arg></GetAttLog>";
$newLine="\r\n";
fputs($Connect, "POST /iWsService HTTP/1.0".$newLine);
fputs($Connect, "Content-Type: text/xml".$newLine);
fputs($Connect, "Content-Length: ".strlen($soap_request).$newLine.$newLine);
fputs($Connect, $soap_request.$newLine);
$buffer="";
while($Response=fgets($Connect, 1024)){
$buffer=$buffer.$Response;
}
$buffer = Parse_Data($buffer,"<GetAttLogResponse>","</GetAttLogResponse>");
$buffer = explode("\r\n",$buffer);
//}
for($a=0;$a<count($buffer);$a++){
$data = Parse_Data($buffer[$a],"<Row>","</Row>");
$PIN = Parse_Data($data,"<PIN>","</PIN>");
$DateTime = Parse_Data($data,"<DateTime>","</DateTime>");
$Verified = Parse_Data($data,"<Verified>","</Verified>");
$Status = Parse_Data($data,"<Status>","</Status>");
$ins = array(
"pin" => $PIN,
"date_time" => date('Y-m-d H:i', strtotime($DateTime)),
"ver" => $Verified,
"status" => $Status
);
if (!$this->if_exist_check($PIN, $DateTime) && $PIN && $DateTime) {
$this->db->insert('tbl_attendance', $ins);
}
}
}
}
}
}
File Helper untuk parse_data
buat file pada folder Helper dengan nama file Global_helper
Skrip :
<?php
function Parse_Data($data,$p1,$p2){
$data=" ".$data;
$hasil="";
$awal=strpos($data,$p1);
if($awal!=""){
$akhir=strpos(strstr($data,$p1),$p2);
if($akhir!=""){
$hasil=substr($data,$awal+strlen($p1),$akhir-strlen($p1));
}
}
return $hasil;
}
?>
setelah semuanya selesai kita akan tarik melalui command / underdos
untuk demo dan source kode silahkan kunjungi di channel zialagiaza di sini nih
0 komentar:
Posting Komentar