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();