berikut adalah contoh code untuk mengimport dosen / staf dari file excel
<?php
include "./bootstrap.php";
use \UniversitySDK\Entities\Staff;
class ConvertStaff{
private $admin;
private $pdo;
function generateRandomString($length = 10) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
private function logStatus($t){
$f = fopen(__DIR__.'/ConvertStaff.log','a+');
if($f){
$now = new \DateTime();
$now->setTimezone(new \DateTimeZone('Asia/Jakarta'));
$time = $now->format('Y-m-d H:i:s');
$text = $time.': '.$t."\n";
echo $text;
fwrite($f,$text);
fclose($f);
}
}
private function unixTimestampToDateString($t){
$jkt = new \DateTimeZone('Asia/Jakarta');
$date = DateTime::createFromFormat('U', $t);
$date->setTimeZone($jkt);
$date = $date->format('Y-m-d');
return $date;
}
public function run(){
$this->admin = new \UniversitySDK\Admin;
if(!$ret){
echo 'failed to login';
return;
}
$file = file("./staffs.csv",FILE_SKIP_EMPTY_LINES);
$csv = array_map("str_getcsv",$file, array_fill(0, count($file), ';'));
$keys = array_shift($csv);
foreach ($csv as $i=>$row) {
$csv[$i] = array_combine($keys, $row);
//var_dump($csv[$i]);
$staff = (object)$csv[$i];
$this->logStatus('Staff: '.$staff->NIP_BARU.' '.$staff->NAMA_LENGKAP);
$ret = $this->addStaff($staff);
if(isset($ret->error)){
$this->logStatus('Error Staff: '.$staff->NIP_BARU.' '.$staff->NAMA_LENGKAP.' '.$ret->error->message);
}
if(isset($ret->status)){
if($ret->status==0){
$this->logStatus('Error Staff: '.$staff->NIP_BARU.' '.$staff->NAMA_LENGKAP.' '.$ret->message);
}else{
}
}
}
}
function convertDate($datex){
if(empty($datex)){
return NULL;
}
$date = \DateTime::createFromFormat('m/d/Y H:i A', $datex);
var_dump(DateTime::getLastErrors());
return $date->format('Y-m-d');
}
private function addStaff($staff){
$idcardno = $this->generateRandomString(17);//invalid so he can fix it later
$email = $staff->NIP_BARU.'@university.ac.id';
$sex = 'm';
$data = array (
'UniversityID' => $this->admin->getUniversity()->ID,
//'ID' => '',
'staffId' => $staff->NIP_BARU,
'username' => $staff->NIP_BARU,
'NIDN' => '',
'fullName' => $staff->NAMA_LENGKAP,
'email' => $email,
'IDCardNo' => $staff->NIP_BARU,
'suffix1' => '',
'title1' => '',
'title2' => '',
'dateOfBirth' => $this->convertDate($staff->TGL_LAHIR),
'EmploymentTypeID' => '',
'jobTitle' => $staff->KET_JABATAN,
'lastEducation' => $staff->JURUSAN,
'MaritalStatus' =>
array (
'ID' => '2',
'name' => 'Kawin',
),
'MaritalStatusID' => '2',
'nextRankPromotionDate' => '',
'nextSalaryIncreasementDate' => '',
'prevStaffId' => $staff->NIP,
'placeOfBirth' => $staff->TEMPAT_LAHIR,
'rank' => '',
'Religion' =>
array (
'ID' => '1',
'name' => 'Islam',
),
'ReligionID' => '1',
'retirementDate' => $this->convertDate($staff->TMT_PENSIUN),
'gender' => $sex,
'startDateCPNS' => '',
'startDatePNS' => '',
'EmploymentStatus' =>
array (
'ID' => '1002',
'name' => 'PNS',
),
'EmploymentStatusID' => '1002',
'UnitOfWork' =>
array (
'ID' => '1001',
'name' => 'Unit 1',
),
'UnitOfWorkID' => '1001',
'unitOfWorkDescription' => '',
'workingTime' => '',
'StaffCharacteristic' => '',
'StaffCharacteristicID' => '',
'Address' => '',
'AddressID' => '',
'password' => $this->generateRandomString(),
);
$newstaff = new Staff();
$newstaff->bind($data);
if(!$newstaff->validate()){
$this->logStatus('invalid staff: '.$newstaff->error_messages());
}
//var_dump($newstaff);exit(0);
return $this->admin->registerStaff($newstaff);
}
}
$p = new ConvertStaff;
$p->run();
<?php
include "./bootstrap.php";
use \UniversitySDK\Entities\Staff;
class ConvertStaff{
private $admin;
private $pdo;
function generateRandomString($length = 10) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
private function logStatus($t){
$f = fopen(__DIR__.'/ConvertStaff.log','a+');
if($f){
$now = new \DateTime();
$now->setTimezone(new \DateTimeZone('Asia/Jakarta'));
$time = $now->format('Y-m-d H:i:s');
$text = $time.': '.$t."\n";
echo $text;
fwrite($f,$text);
fclose($f);
}
}
private function unixTimestampToDateString($t){
$jkt = new \DateTimeZone('Asia/Jakarta');
$date = DateTime::createFromFormat('U', $t);
$date->setTimeZone($jkt);
$date = $date->format('Y-m-d');
return $date;
}
public function run(){
$this->admin = new \UniversitySDK\Admin;
$ret = $this->admin->login('[email protected]', 'P@ssw0rd');
if(!$ret){
echo 'failed to login';
return;
}
$file = file("./staffs.csv",FILE_SKIP_EMPTY_LINES);
$csv = array_map("str_getcsv",$file, array_fill(0, count($file), ';'));
$keys = array_shift($csv);
foreach ($csv as $i=>$row) {
$csv[$i] = array_combine($keys, $row);
//var_dump($csv[$i]);
$staff = (object)$csv[$i];
$this->logStatus('Staff: '.$staff->NIP_BARU.' '.$staff->NAMA_LENGKAP);
$ret = $this->addStaff($staff);
if(isset($ret->error)){
$this->logStatus('Error Staff: '.$staff->NIP_BARU.' '.$staff->NAMA_LENGKAP.' '.$ret->error->message);
}
if(isset($ret->status)){
if($ret->status==0){
$this->logStatus('Error Staff: '.$staff->NIP_BARU.' '.$staff->NAMA_LENGKAP.' '.$ret->message);
}else{
}
}
}
}
function convertDate($datex){
if(empty($datex)){
return NULL;
}
$date = \DateTime::createFromFormat('m/d/Y H:i A', $datex);
var_dump(DateTime::getLastErrors());
return $date->format('Y-m-d');
}
private function addStaff($staff){
$idcardno = $this->generateRandomString(17);//invalid so he can fix it later
$email = $staff->NIP_BARU.'@university.ac.id';
$sex = 'm';
$data = array (
'UniversityID' => $this->admin->getUniversity()->ID,
//'ID' => '',
'staffId' => $staff->NIP_BARU,
'username' => $staff->NIP_BARU,
'NIDN' => '',
'fullName' => $staff->NAMA_LENGKAP,
'email' => $email,
'IDCardNo' => $staff->NIP_BARU,
'suffix1' => '',
'title1' => '',
'title2' => '',
'dateOfBirth' => $this->convertDate($staff->TGL_LAHIR),
'EmploymentTypeID' => '',
'jobTitle' => $staff->KET_JABATAN,
'lastEducation' => $staff->JURUSAN,
'MaritalStatus' =>
array (
'ID' => '2',
'name' => 'Kawin',
),
'MaritalStatusID' => '2',
'nextRankPromotionDate' => '',
'nextSalaryIncreasementDate' => '',
'prevStaffId' => $staff->NIP,
'placeOfBirth' => $staff->TEMPAT_LAHIR,
'rank' => '',
'Religion' =>
array (
'ID' => '1',
'name' => 'Islam',
),
'ReligionID' => '1',
'retirementDate' => $this->convertDate($staff->TMT_PENSIUN),
'gender' => $sex,
'startDateCPNS' => '',
'startDatePNS' => '',
'EmploymentStatus' =>
array (
'ID' => '1002',
'name' => 'PNS',
),
'EmploymentStatusID' => '1002',
'UnitOfWork' =>
array (
'ID' => '1001',
'name' => 'Unit 1',
),
'UnitOfWorkID' => '1001',
'unitOfWorkDescription' => '',
'workingTime' => '',
'StaffCharacteristic' => '',
'StaffCharacteristicID' => '',
'Address' => '',
'AddressID' => '',
'password' => $this->generateRandomString(),
);
$newstaff = new Staff();
$newstaff->bind($data);
if(!$newstaff->validate()){
$this->logStatus('invalid staff: '.$newstaff->error_messages());
}
//var_dump($newstaff);exit(0);
return $this->admin->registerStaff($newstaff);
}
}
$p = new ConvertStaff;
$p->run();
<?php include "./bootstrap.php"; use \UniversitySDK\Entities\Staff; class ConvertStaff{ private $admin; private $pdo; function generateRandomString($length = 10) { $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $charactersLength = strlen($characters); $randomString = ''; for ($i = 0; $i < $length; $i++) { $randomString .= $characters[rand(0, $charactersLength - 1)]; } return $randomString; } private function logStatus($t){ $f = fopen(__DIR__.'/ConvertStaff.log','a+'); if($f){ $now = new \DateTime(); $now->setTimezone(new \DateTimeZone('Asia/Jakarta')); $time = $now->format('Y-m-d H:i:s'); $text = $time.': '.$t."\n"; echo $text; fwrite($f,$text); fclose($f); } } private function unixTimestampToDateString($t){ $jkt = new \DateTimeZone('Asia/Jakarta'); $date = DateTime::createFromFormat('U', $t); $date->setTimeZone($jkt); $date = $date->format('Y-m-d'); return $date; } public function run(){ $this->admin = new \UniversitySDK\Admin; $ret = $this->admin->login('[email protected]', 'P@ssw0rd'); if(!$ret){ echo 'failed to login'; return; } $file = file("./staffs.csv",FILE_SKIP_EMPTY_LINES); $csv = array_map("str_getcsv",$file, array_fill(0, count($file), ';')); $keys = array_shift($csv); foreach ($csv as $i=>$row) { $csv[$i] = array_combine($keys, $row); //var_dump($csv[$i]); $staff = (object)$csv[$i]; $this->logStatus('Staff: '.$staff->NIP_BARU.' '.$staff->NAMA_LENGKAP); $ret = $this->addStaff($staff); if(isset($ret->error)){ $this->logStatus('Error Staff: '.$staff->NIP_BARU.' '.$staff->NAMA_LENGKAP.' '.$ret->error->message); } if(isset($ret->status)){ if($ret->status==0){ $this->logStatus('Error Staff: '.$staff->NIP_BARU.' '.$staff->NAMA_LENGKAP.' '.$ret->message); }else{ } } } } function convertDate($datex){ if(empty($datex)){ return NULL; } $date = \DateTime::createFromFormat('m/d/Y H:i A', $datex); var_dump(DateTime::getLastErrors()); return $date->format('Y-m-d'); } private function addStaff($staff){ $idcardno = $this->generateRandomString(17);//invalid so he can fix it later $email = $staff->NIP_BARU.'@university.ac.id'; $sex = 'm'; $data = array ( 'UniversityID' => $this->admin->getUniversity()->ID, //'ID' => '', 'staffId' => $staff->NIP_BARU, 'username' => $staff->NIP_BARU, 'NIDN' => '', 'fullName' => $staff->NAMA_LENGKAP, 'email' => $email, 'IDCardNo' => $staff->NIP_BARU, 'suffix1' => '', 'title1' => '', 'title2' => '', 'dateOfBirth' => $this->convertDate($staff->TGL_LAHIR), 'EmploymentTypeID' => '', 'jobTitle' => $staff->KET_JABATAN, 'lastEducation' => $staff->JURUSAN, 'MaritalStatus' => array ( 'ID' => '2', 'name' => 'Kawin', ), 'MaritalStatusID' => '2', 'nextRankPromotionDate' => '', 'nextSalaryIncreasementDate' => '', 'prevStaffId' => $staff->NIP, 'placeOfBirth' => $staff->TEMPAT_LAHIR, 'rank' => '', 'Religion' => array ( 'ID' => '1', 'name' => 'Islam', ), 'ReligionID' => '1', 'retirementDate' => $this->convertDate($staff->TMT_PENSIUN), 'gender' => $sex, 'startDateCPNS' => '', 'startDatePNS' => '', 'EmploymentStatus' => array ( 'ID' => '1002', 'name' => 'PNS', ), 'EmploymentStatusID' => '1002', 'UnitOfWork' => array ( 'ID' => '1001', 'name' => 'Unit 1', ), 'UnitOfWorkID' => '1001', 'unitOfWorkDescription' => '', 'workingTime' => '', 'StaffCharacteristic' => '', 'StaffCharacteristicID' => '', 'Address' => '', 'AddressID' => '', 'password' => $this->generateRandomString(), ); $newstaff = new Staff(); $newstaff->bind($data); if(!$newstaff->validate()){ $this->logStatus('invalid staff: '.$newstaff->error_messages()); } //var_dump($newstaff);exit(0); return $this->admin->registerStaff($newstaff); } } $p = new ConvertStaff; $p->run();