Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- define('INCLUDE_PATH', dirname(__FILE__));
- include(INCLUDE_PATH . '/config.php');
- include(INCLUDE_PATH . '/adodb/adodb.inc.php');
- include(INCLUDE_PATH . '/email/class.phpmailer.php');
- include(INCLUDE_PATH . '/email/class.smtp.php');
- $serverlog_path = ".\logs\\";
- $emailnotify = $config['email']['notification'];
- class WMBatchProcessing {
- ### Write to log file ###
- var $archievepath = '.\logs\\';
- var $AllMsg;
- private $log_file = '.\logs\\';
- private $fp = null;
- public function lwrite($message) {
- if (!$this->fp)
- $this->lopen();
- $script_name = pathinfo($_SERVER['PHP_SELF'], PATHINFO_FILENAME);
- $time = $this->DBNewDate3(0);
- fwrite($this->fp, "$time\t[$script_name]\t$message\r\n");
- }
- ## Open log file
- private function lopen() {
- $lfile = $this->log_file;
- $today = date('Y-m-d');
- $this->fp = fopen($lfile . $today . '.txt', 'a') or exit("Can't open $lfile!");
- }
- function DBNewDate($add_hours) {
- $houronly = mktime(date("H")+$add_hours,date("i"),date("s"), date("m") , date("d"), date("Y"));
- return date("Y-m-d",$houronly);
- }
- function DBNewDate2($add_hours) {
- $houronly = mktime(date("H")+$add_hours,date("i"),date("s"), date("m") , date("d"), date("Y"));
- return date("D d-M-Y H:i:s",$houronly);
- }
- function DBNewDate3($add_hours) {
- $houronly = mktime(date("H")+$add_hours,date("i"),date("s"), date("m") , date("d"), date("Y"));
- return date("Y-m-d",$houronly);
- }
- function EmailNotify($path,$name,$fullmsg,$useremail) {
- $mail = new PHPMailer();
- $mail->IsSMTP();
- $cfg['mail']['smtp'] = 'mail.upm.edu.my';
- $cfg['mail']['port'] = '25';
- $cfg['mail']['username'] = 'ibssadmin';
- $cfg['mail']['password'] = 'bstm8640';
- $cfg['mail']['emailfrom'] = 'ibssadmin@upm.edu.my';
- $cfg['mail']['fromname'] = 'IBSS System Admin';
- $mail->Host = $cfg['mail']['smtp'];
- $mail->SMTPAuth = false;
- $mail->Port = $cfg['mail']['port'];
- $mail->Username = $cfg['mail']['username'];
- $mail->Password = $cfg['mail']['password'];
- $mail->From = $cfg['mail']['emailfrom'];
- $mail->FromName = $cfg['mail']['fromname'];
- $mail->Sender = $cfg['mail']['emailfrom'];
- $mail->AddReplyTo($cfg['mail']['emailfrom'], "Reply address");
- $mail->AddAttachment($path,$name,'base64','text/plain');
- $arrEmail = array();
- $uemail = explode("|",$useremail);
- $numemail = count($uemail);
- for($x=0;$x<$numemail;$x++) {
- array_push($arrEmail,$uemail[$x]);
- }
- foreach ($arrEmail as $email) {
- $mail->AddAddress("$email");
- }
- $mail->Subject = "IBSS Report Message";
- $mail->IsHTML(true);
- $message = $fullmsg;
- $mail->Body = $message;
- if(!$mail->Send()) {
- $this->lwrite("Error sending: " . $mail->ErrorInfo."\tError sending out email");
- } else {
- $this->lwrite("Notification email is successfully sent at ".date('d/m/Y H:i:s')."\tEmail sent");
- }
- }
- }
- $ftpee = new WMBatchProcessing;
- $serverlog_date = $ftpee->DBNewDate3(0).".txt";
- $DB = NewADOConnection('ibase');
- $DB->Connect($config['ibase']['host'],$config['ibase']['username'], $config['ibase']['password'],$config['ibase']['dbname']) or die ("IBASE connect error");
- //$DB->Connect('localhost:C:/IBSS/Database/TEST.gdb','sysdba','masterkey') or die ("IBASE connect error");
- // AZRIN Edit mysql 021214
- $DBora = NewADOConnection('mysqli');
- $DBora->Connect($config['mysql']['host'], $config['mysql']['username'], $config['mysql']['password'], $config['mysql']['db']) or die ("MySQL connect error");
- $total_insert=0;
- $total_insert_failed=0;
- $total_update=0;
- $total_update_error=0;
- $total_duplicate=0;
- $uok = $ur = $iok = $ie = 0;
- $status_user = $FAKULTI = $FAKULTI_SHORT = "";
- $DBora->debug = false;
- $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
- //$rs2SQL = "SELECT * FROM pass_lib_pel WHERE (STATUS_PELAJAR=1 AND TO_CHAR(created_date,'YYYY-MM-DD')='".$ftpee->DBNewDate(0)."' AND STATUS_FLAG='U') OR (STATUS_PELAJAR=1 AND TO_CHAR(created_date,'YYYY-MM-DD')='".$ftpee->DBNewDate(0)."' AND STATUS_FLAG='I') ORDER BY CREATED_DATE DESC";
- $rs2SQL = "SELECT * FROM pass_lib_pel WHERE STATUS_PELAJAR='1'";
- // run today's record creation
- //$rs2SQL = "SELECT * FROM pass_lib_pel WHERE (STATUS_PELAJAR=1 AND created_date='".$ftpee->DBNewDate(0)."' AND STATUS_FLAG='U') OR (STATUS_PELAJAR=1 AND created_date='".$ftpee->DBNewDate(0)."' AND STATUS_FLAG='I') ORDER BY CREATED_DATE DESC";
- $rs2 = $DBora->Execute($rs2SQL);
- $bg = 1;
- $n = 1;
- $fullmsg = $NAMA_JAWATAN = $BANGSA = "";
- while (!$rs2->EOF) {// for every LDAP record
- $newsn = dechex($rs2->fields['SERIALNO']+0);
- $countsn = strlen($newsn);
- $usertype = $rs2->fields['USER_TYPE'];
- if ($usertype==""){ // LDAP: Treat NULL USER_TYPE COLUMN record as PELAJAR "P"
- $usertype="P";
- }
- //$status_user = $rs2->fields['STATUS_FLAG'];
- $updcheck=false;
- if($countsn==7) {
- $finalsn = '0' . $newsn;
- } else if($countsn==6) {
- $finalsn = '00' . $newsn;
- } else if ($countsn<6) {
- $finalsn = '00000000';
- }else{
- $finalsn = $newsn;
- }
- $rs4 = $DBora->Execute("SELECT * FROM BANGSA WHERE KOD_BANGSA_HID='".$rs2->fields['BANGSA']."'");
- if($rs4) {
- $BANGSA = $rs4->fields['NAMA_BANGSA'];
- }
- $rs5 = $DBora->Execute("SELECT FAK_KOD_FAKULTI,FAK_NAMA_FAKULTI FROM FAKULTI WHERE FAK_KOD_FAKULTI_HID='".$rs2->fields['KOD_FAKULTI']."'");
- if($rs5) {
- $FAKULTI2 = $rs5->fields['FAK_NAMA_FAKULTI'];
- $FAKULTI = substr($FAKULTI2, 0 , 40);
- $FAKULTI_SHORT = $rs5->fields['FAK_KOD_FAKULTI'];
- }
- $NAMA_BARU3 = str_replace("'","",$rs2->fields['NAMA']);
- $NAMA_BARU2 = str_replace("/","",$NAMA_BARU3);
- $NAMA_BARU = substr($NAMA_BARU2, 0 , 40);
- $NAMA_JAWATAN = substr($rs2->fields['NAMA_JAWATAN'], 0 , 40);
- $check_update_or_insert = false;
- $rsSQL = "SELECT CARDHOLDERID,NAME,NRIC,CARDID FROM CARDHOLDER WHERE CARDHOLDERID='".$rs2->fields['NO_MATRIK']."'";
- $rs = $DB->Execute($rsSQL);
- if(!$rs->EOF) { // dh ada rekod in IBSS
- $status_user='U'; // disabled sementara
- $nric_ibss = $rs->fields['NRIC'];
- $no_matrik_ibss = $rs->fields['CARDHOLDERID'];
- print "UPDATE DISABLED - ".$rs2->fields['NO_MATRIK']."\r\n";
- } else { // baru
- $status_user='I';
- //$check_update_or_insert = true;
- }
- switch ($usertype) {
- ## FOR STUDENT ##
- case "P":
- if($status_user=='U' && $check_update_or_insert == true) {
- //check if need update
- if ($rs->fields['CARDID']!==$finalsn){
- $updcheck=true;
- }
- $upSQL = "UPDATE CARDHOLDER SET NAME='".$NAMA_BARU."',CARDID='".$finalsn."',USERDEFINED1='".$BANGSA."',USERDEFINED2='".$FAKULTI_SHORT."',USERDEFINED3='".$FAKULTI."'
- WHERE CARDHOLDERID='".$no_matrik_ibss."'";
- if ($updcheck){
- $rs11 = $DB->Execute($upSQL);
- if($rs11) {
- $ftpee->lwrite("[UPDATE]\tUpdate data was successful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."");
- //$fullmsg .="[UPDATE]\tUpdate data was successful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."<br>";
- $uok=$uok+1;
- $total_update++;
- } else {
- $ftpee->lwrite("[UPDATE--ERROR]\tUpdate data was unsuccessful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."- Error = ".$DB->ErrorMsg().$upSQL."");
- //$fullmsg .="[UPDATE--ERROR]\tUpdate data was unsuccessful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."<br>";
- $ur=$ur+1;
- $total_update_error++;
- }
- }
- }
- if($status_user=='I') {
- //if(($status_user=='I' || $status_user=='N') && $check_update_or_insert==true) {
- $studentSQL = "INSERT INTO CARDHOLDER (CARDHOLDERID,NAME,CARDID,USERDEFINED1,USERDEFINED2,USERDEFINED3,CARDTYPE,USERACCESSGROUP,FMODE,STATUS,ISACCESS,ISGUARDTOUR,ISENGINEERING,ISVIP,ISMANAGEMENT,ISVISITOR,ISHANDICAP,ISCARPARK,DEPARTMENT,NRIC)
- VALUES ('".$rs2->fields['NO_MATRIK']."','".$NAMA_BARU."','".$finalsn."','".$BANGSA."','".$FAKULTI_SHORT."','".$FAKULTI."','ACCESS','UAG1','Normal','Normal','Y','N','N','N','N','N','N','N','STUDENT','".$rs2->fields['NO_KAD_PENGENALAN']."')";
- $rs10 = $DB->Execute($studentSQL);
- if($rs10) {
- $ftpee->lwrite("[INSERT]\tInsert data was successful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."");
- //$fullmsg .="[INSERT]\tInsert data was successful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."<br>";
- print "INSERT - ".$rs2->fields['NO_MATRIK']."\r\n";
- $iok=$iok+1;
- $total_insert++;
- } else {
- $ftpee->lwrite("[INSERT--ERROR]\tInsert data was unsuccessful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."- Error = ".$DB->ErrorMsg().$studentSQL."");
- //$fullmsg .="[INSERT--ERROR]\tInsert data was unsuccessful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."<br>";
- print "INSERT ERROR - ".$rs2->fields['NO_MATRIK']."\r\n";
- $ie=$ie+1;
- $total_insert_failed++;
- }
- }
- break;
- ## FOR STAFF ##
- case "S":
- if($status_user=='U' && $check_update_or_insert == true) {
- if ($rs->fields['CARDID']!==$finalsn){
- $updcheck=true;
- }
- $upSQL = "UPDATE CARDHOLDER SET NAME='".$NAMA_BARU."',CARDID='".$finalsn."',USERDEFINED1='".$BANGSA."',USERDEFINED2='".$FAKULTI_SHORT."',USERDEFINED3='".$rs2->fields['NAMA_JAWATAN']."'
- WHERE CARDHOLDERID='".$no_matrik_ibss."'";
- $rs11 = $DB->Execute($upSQL);
- if($rs11) {
- $ftpee->lwrite("[UPDATE]\tUpdate data was successful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."");
- //$fullmsg .="[UPDATE]\tUpdate data was successful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."<br>";
- $uok=$uok+1;
- $total_update++;
- } else {
- $ftpee->lwrite("[UPDATE--ERROR]\tUpdate data was unsuccessful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."- Error = ".$DB->ErrorMsg().$upSQL."");
- //$fullmsg .="[UPDATE--ERROR]\tUpdate data was unsuccessful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."<br>";
- $ur=$ur+1;
- $total_update_error++;
- }
- }
- if($status_user=='I') {
- //if(($status_user=='I' || $status_user=='N') && $check_update_or_insert==true) {
- $staffSQLI = "INSERT INTO CARDHOLDER (CARDHOLDERID,NAME,CARDID,USERDEFINED1,USERDEFINED2,USERDEFINED3,CARDTYPE,USERACCESSGROUP,FMODE,STATUS,ISACCESS,ISGUARDTOUR,ISENGINEERING,ISVIP,ISMANAGEMENT,ISVISITOR,ISHANDICAP,ISCARPARK,DEPARTMENT,NRIC)
- VALUES ('".$rs2->fields['NO_MATRIK']."','".$NAMA_BARU."','".$finalsn."','".$BANGSA."','','".$NAMA_JAWATAN."','ACCESS','UAG1','Normal','Normal','Y','N','N','N','N','N','N','N','STAFF','".$rs2->fields['NO_KAD_PENGENALAN']."')";
- $rs10 = $DB->Execute($staffSQLI);
- if($rs10) {
- $ftpee->lwrite("[INSERT]\tInsert data was successful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."");
- //$fullmsg .="[INSERT]\tInsert data was successful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."<br>";
- $iok=$iok+1;
- $total_insert++;
- } else {
- $ftpee->lwrite("[INSERT--ERROR]\tInsert data was unsuccessful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."- Error = ".$DB->ErrorMsg().$staffSQLI."");
- //$fullmsg .="[INSERT--ERROR]\tInsert data was unsuccessful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."<br>";
- $ie=$ie+1;
- $total_insert_failed++;
- }
- }
- break;
- }
- $rs2->MoveNext();
- }
- $ftpee->lwrite("[MSG]\tLast run was executed [".$ftpee->DBNewDate2(0)."]");
- ######### SEND EMAIL ###############
- $fullmsg .= "<br>[MSG]\tLast run was executed [".$ftpee->DBNewDate2(0)."]<br>";
- $fullmsg .= "Total Insert = [<b>".$total_insert."</b>]<br>";
- $fullmsg .= "Total Insert failed = [<b>".$total_insert_failed."</b>]<br>";
- $fullmsg .= "Total Update = [<b>".$total_update."</b>]<br>";
- $fullmsg .= "Total Update failed = [<b>".$total_update_error."</b>]<br>";
- if ($total_insert==0 && $total_insert_failed==0 && $total_update==0 && $total_update_error==0){
- }else {
- $ftpee->EmailNotify($serverlog_path.$serverlog_date,$serverlog_date,$fullmsg,$emailnotify);
- }
- print "Done. Insert: ".$total_insert.", Insert failed: ".$total_insert_failed.", Update: ".$total_update.", Update failed: ".$total_update_error."\r\n";
- $DB->Close();
- $DBora->Close();
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement