Advertisement
Guest User

upm lib 2

a guest
Sep 27th, 2017
482
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 13.02 KB | None | 0 0
  1. <?php
  2.     define('INCLUDE_PATH', dirname(__FILE__));
  3.     include(INCLUDE_PATH . '/config.php');
  4.     include(INCLUDE_PATH . '/adodb/adodb.inc.php');
  5.     include(INCLUDE_PATH . '/email/class.phpmailer.php');
  6.     include(INCLUDE_PATH . '/email/class.smtp.php');
  7.  
  8.     $serverlog_path = ".\logs\\";
  9.     $emailnotify = $config['email']['notification'];
  10.  
  11.     class WMBatchProcessing {
  12.     ### Write to log file ###
  13.         var $archievepath = '.\logs\\';
  14.         var $AllMsg;
  15.         private $log_file = '.\logs\\';  
  16.         private $fp = null;  
  17.        
  18.         public function lwrite($message) {  
  19.             if (!$this->fp)
  20.                 $this->lopen();  
  21.             $script_name = pathinfo($_SERVER['PHP_SELF'], PATHINFO_FILENAME);  
  22.             $time = $this->DBNewDate3(0);  
  23.             fwrite($this->fp, "$time\t[$script_name]\t$message\r\n");  
  24.         }  
  25.  
  26.         ## Open log file  
  27.         private function lopen() {  
  28.             $lfile = $this->log_file;  
  29.             $today = date('Y-m-d');  
  30.             $this->fp = fopen($lfile . $today . '.txt', 'a') or exit("Can't open $lfile!");  
  31.         }
  32.         function DBNewDate($add_hours) {
  33.             $houronly  = mktime(date("H")+$add_hours,date("i"),date("s"), date("m")  , date("d"), date("Y"));
  34.             return date("Y-m-d",$houronly);
  35.         }
  36.         function DBNewDate2($add_hours) {
  37.             $houronly  = mktime(date("H")+$add_hours,date("i"),date("s"), date("m")  , date("d"), date("Y"));
  38.             return date("D d-M-Y H:i:s",$houronly);
  39.         }
  40.         function DBNewDate3($add_hours) {
  41.             $houronly  = mktime(date("H")+$add_hours,date("i"),date("s"), date("m")  , date("d"), date("Y"));
  42.             return date("Y-m-d",$houronly);
  43.         }          
  44.         function EmailNotify($path,$name,$fullmsg,$useremail) {
  45.             $mail = new PHPMailer();
  46.            
  47.             $mail->IsSMTP();
  48.            
  49.             $cfg['mail']['smtp'] = 'mail.upm.edu.my';
  50.             $cfg['mail']['port'] = '25';
  51.             $cfg['mail']['username'] = 'ibssadmin';
  52.             $cfg['mail']['password'] = 'bstm8640';
  53.             $cfg['mail']['emailfrom'] = 'ibssadmin@upm.edu.my';
  54.             $cfg['mail']['fromname'] = 'IBSS System Admin';
  55.            
  56.             $mail->Host = $cfg['mail']['smtp'];
  57.             $mail->SMTPAuth = false;
  58.            
  59.             $mail->Port = $cfg['mail']['port'];
  60.             $mail->Username = $cfg['mail']['username'];
  61.             $mail->Password = $cfg['mail']['password'];
  62.            
  63.             $mail->From = $cfg['mail']['emailfrom'];
  64.             $mail->FromName = $cfg['mail']['fromname'];
  65.             $mail->Sender = $cfg['mail']['emailfrom'];
  66.             $mail->AddReplyTo($cfg['mail']['emailfrom'], "Reply address");
  67.             $mail->AddAttachment($path,$name,'base64','text/plain');
  68.            
  69.             $arrEmail = array();
  70.             $uemail = explode("|",$useremail);
  71.             $numemail = count($uemail);
  72.            
  73.             for($x=0;$x<$numemail;$x++) {
  74.                 array_push($arrEmail,$uemail[$x]);
  75.             }
  76.            
  77.             foreach ($arrEmail as $email) {
  78.                 $mail->AddAddress("$email");
  79.             }
  80.  
  81.             $mail->Subject = "IBSS Report Message";
  82.             $mail->IsHTML(true);
  83.            
  84.             $message = $fullmsg;   
  85.             $mail->Body = $message;
  86.            
  87.             if(!$mail->Send()) {
  88.                 $this->lwrite("Error sending: " . $mail->ErrorInfo."\tError sending out email");
  89.             } else {
  90.                 $this->lwrite("Notification email is successfully sent at ".date('d/m/Y H:i:s')."\tEmail sent");
  91.             }  
  92.         }
  93.     }
  94.  
  95.     $ftpee = new WMBatchProcessing;
  96.  
  97.     $serverlog_date = $ftpee->DBNewDate3(0).".txt";
  98.  
  99.     $DB = NewADOConnection('ibase');
  100.     $DB->Connect($config['ibase']['host'],$config['ibase']['username'], $config['ibase']['password'],$config['ibase']['dbname']) or die ("IBASE connect error");
  101.     //$DB->Connect('localhost:C:/IBSS/Database/TEST.gdb','sysdba','masterkey') or die ("IBASE connect error");
  102.  
  103.     // AZRIN Edit mysql 021214
  104.     $DBora = NewADOConnection('mysqli');
  105.     $DBora->Connect($config['mysql']['host'], $config['mysql']['username'], $config['mysql']['password'], $config['mysql']['db']) or die ("MySQL connect error");
  106.    
  107.     $total_insert=0;
  108.     $total_insert_failed=0;
  109.     $total_update=0;
  110.     $total_update_error=0;
  111.     $total_duplicate=0;
  112.    
  113.     $uok = $ur = $iok = $ie = 0;
  114.     $status_user = $FAKULTI = $FAKULTI_SHORT = "";
  115.    
  116.     $DBora->debug = false;
  117.     $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
  118.    
  119.     //$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";
  120.     $rs2SQL = "SELECT * FROM pass_lib_pel WHERE STATUS_PELAJAR='1'";
  121.     // run today's record creation
  122.     //$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";
  123.    
  124.     $rs2 = $DBora->Execute($rs2SQL);
  125.  
  126.     $bg = 1;
  127.     $n = 1;
  128.    
  129.     $fullmsg = $NAMA_JAWATAN = $BANGSA = "";
  130.  
  131.  
  132.     while (!$rs2->EOF) {// for every LDAP record
  133.        
  134.         $newsn = dechex($rs2->fields['SERIALNO']+0);
  135.         $countsn = strlen($newsn);
  136.         $usertype = $rs2->fields['USER_TYPE'];
  137.        
  138.         if ($usertype==""){ // LDAP: Treat NULL USER_TYPE COLUMN record as PELAJAR "P"
  139.             $usertype="P";
  140.         }
  141.        
  142.         //$status_user = $rs2->fields['STATUS_FLAG'];
  143.        
  144.         $updcheck=false;
  145.        
  146.         if($countsn==7) {
  147.             $finalsn = '0' . $newsn;
  148.         } else if($countsn==6) {
  149.             $finalsn = '00' . $newsn;
  150.         } else if ($countsn<6) {
  151.             $finalsn = '00000000';
  152.         }else{
  153.             $finalsn = $newsn;
  154.         }
  155.        
  156.         $rs4 = $DBora->Execute("SELECT * FROM BANGSA WHERE KOD_BANGSA_HID='".$rs2->fields['BANGSA']."'");
  157.         if($rs4) {
  158.             $BANGSA = $rs4->fields['NAMA_BANGSA'];
  159.         }
  160.            
  161.         $rs5 = $DBora->Execute("SELECT FAK_KOD_FAKULTI,FAK_NAMA_FAKULTI FROM FAKULTI WHERE FAK_KOD_FAKULTI_HID='".$rs2->fields['KOD_FAKULTI']."'");
  162.         if($rs5) {
  163.             $FAKULTI2 = $rs5->fields['FAK_NAMA_FAKULTI'];
  164.             $FAKULTI = substr($FAKULTI2, 0 , 40);
  165.             $FAKULTI_SHORT = $rs5->fields['FAK_KOD_FAKULTI'];
  166.         }
  167.        
  168.         $NAMA_BARU3 = str_replace("'","",$rs2->fields['NAMA']);
  169.         $NAMA_BARU2 = str_replace("/","",$NAMA_BARU3);
  170.         $NAMA_BARU = substr($NAMA_BARU2, 0 , 40);  
  171.        
  172.        
  173.         $NAMA_JAWATAN = substr($rs2->fields['NAMA_JAWATAN'], 0 , 40);  
  174.                
  175.         $check_update_or_insert = false;
  176.        
  177.         $rsSQL = "SELECT CARDHOLDERID,NAME,NRIC,CARDID FROM CARDHOLDER WHERE CARDHOLDERID='".$rs2->fields['NO_MATRIK']."'";    
  178.         $rs = $DB->Execute($rsSQL);
  179.                    
  180.         if(!$rs->EOF) { // dh ada rekod in IBSS
  181.             $status_user='U';    // disabled sementara
  182.             $nric_ibss = $rs->fields['NRIC'];
  183.             $no_matrik_ibss = $rs->fields['CARDHOLDERID'];
  184.             print "UPDATE DISABLED - ".$rs2->fields['NO_MATRIK']."\r\n";
  185.         } else { // baru
  186.             $status_user='I';
  187.             //$check_update_or_insert = true;
  188.            
  189.         }
  190.        
  191.             switch ($usertype) {
  192.                 ## FOR STUDENT ##
  193.                 case "P":
  194.                     if($status_user=='U' && $check_update_or_insert == true) {
  195.                        
  196.                         //check if need update
  197.                         if ($rs->fields['CARDID']!==$finalsn){
  198.                             $updcheck=true;
  199.                         }  
  200.                         $upSQL = "UPDATE CARDHOLDER SET NAME='".$NAMA_BARU."',CARDID='".$finalsn."',USERDEFINED1='".$BANGSA."',USERDEFINED2='".$FAKULTI_SHORT."',USERDEFINED3='".$FAKULTI."'
  201.                                 WHERE CARDHOLDERID='".$no_matrik_ibss."'";
  202.                         if ($updcheck){
  203.                             $rs11 = $DB->Execute($upSQL);
  204.                            
  205.                                 if($rs11) {
  206.                                 $ftpee->lwrite("[UPDATE]\tUpdate data was successful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."");
  207.                                 //$fullmsg .="[UPDATE]\tUpdate data was successful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."<br>";
  208.                                 $uok=$uok+1;
  209.                                 $total_update++;
  210.                                 } else {
  211.                                 $ftpee->lwrite("[UPDATE--ERROR]\tUpdate data was unsuccessful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."- Error = ".$DB->ErrorMsg().$upSQL."");
  212.                                 //$fullmsg .="[UPDATE--ERROR]\tUpdate data was unsuccessful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."<br>";
  213.                                 $ur=$ur+1;
  214.                                 $total_update_error++;
  215.                             }                  
  216.                         }
  217.                        
  218.                        
  219.                     }
  220.                     if($status_user=='I') {
  221.                     //if(($status_user=='I' || $status_user=='N') && $check_update_or_insert==true) {
  222.                         $studentSQL = "INSERT INTO CARDHOLDER (CARDHOLDERID,NAME,CARDID,USERDEFINED1,USERDEFINED2,USERDEFINED3,CARDTYPE,USERACCESSGROUP,FMODE,STATUS,ISACCESS,ISGUARDTOUR,ISENGINEERING,ISVIP,ISMANAGEMENT,ISVISITOR,ISHANDICAP,ISCARPARK,DEPARTMENT,NRIC)
  223.                         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']."')";
  224.                         $rs10 = $DB->Execute($studentSQL);
  225.                        
  226.                         if($rs10) {
  227.                             $ftpee->lwrite("[INSERT]\tInsert data was successful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."");
  228.                             //$fullmsg .="[INSERT]\tInsert data was successful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."<br>";
  229.                             print "INSERT - ".$rs2->fields['NO_MATRIK']."\r\n";
  230.                             $iok=$iok+1;
  231.                             $total_insert++;
  232.                         } else {
  233.                             $ftpee->lwrite("[INSERT--ERROR]\tInsert data was unsuccessful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."- Error = ".$DB->ErrorMsg().$studentSQL."");
  234.                             //$fullmsg .="[INSERT--ERROR]\tInsert data was unsuccessful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."<br>";
  235.                             print "INSERT ERROR - ".$rs2->fields['NO_MATRIK']."\r\n";
  236.                             $ie=$ie+1;
  237.                             $total_insert_failed++;
  238.                         }
  239.                     }
  240.                     break;
  241.                 ## FOR STAFF ##
  242.                 case "S":
  243.                     if($status_user=='U' && $check_update_or_insert == true) {
  244.                    
  245.                         if ($rs->fields['CARDID']!==$finalsn){
  246.                             $updcheck=true;
  247.                         }  
  248.                    
  249.                         $upSQL = "UPDATE CARDHOLDER SET NAME='".$NAMA_BARU."',CARDID='".$finalsn."',USERDEFINED1='".$BANGSA."',USERDEFINED2='".$FAKULTI_SHORT."',USERDEFINED3='".$rs2->fields['NAMA_JAWATAN']."'
  250.                                 WHERE CARDHOLDERID='".$no_matrik_ibss."'";
  251.                         $rs11 = $DB->Execute($upSQL);
  252.  
  253.                         if($rs11) {
  254.                             $ftpee->lwrite("[UPDATE]\tUpdate data was successful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."");
  255.                             //$fullmsg .="[UPDATE]\tUpdate data was successful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."<br>";
  256.                             $uok=$uok+1;
  257.                             $total_update++;
  258.                         } else {
  259.                             $ftpee->lwrite("[UPDATE--ERROR]\tUpdate data was unsuccessful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."- Error = ".$DB->ErrorMsg().$upSQL."");
  260.                             //$fullmsg .="[UPDATE--ERROR]\tUpdate data was unsuccessful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."<br>";
  261.                             $ur=$ur+1;
  262.                             $total_update_error++;
  263.                         }
  264.                     }
  265.  
  266.                     if($status_user=='I') {
  267.                     //if(($status_user=='I' || $status_user=='N') && $check_update_or_insert==true) {
  268.                         $staffSQLI = "INSERT INTO CARDHOLDER (CARDHOLDERID,NAME,CARDID,USERDEFINED1,USERDEFINED2,USERDEFINED3,CARDTYPE,USERACCESSGROUP,FMODE,STATUS,ISACCESS,ISGUARDTOUR,ISENGINEERING,ISVIP,ISMANAGEMENT,ISVISITOR,ISHANDICAP,ISCARPARK,DEPARTMENT,NRIC)
  269.                         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']."')";
  270.                         $rs10 = $DB->Execute($staffSQLI);
  271.                        
  272.                         if($rs10) {
  273.                             $ftpee->lwrite("[INSERT]\tInsert data was successful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."");
  274.                             //$fullmsg .="[INSERT]\tInsert data was successful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."<br>";
  275.                             $iok=$iok+1;
  276.                             $total_insert++;
  277.                         } else {
  278.                             $ftpee->lwrite("[INSERT--ERROR]\tInsert data was unsuccessful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."- Error = ".$DB->ErrorMsg().$staffSQLI."");
  279.                             //$fullmsg .="[INSERT--ERROR]\tInsert data was unsuccessful\tName : ".$NAMA_BARU." | Metric No : ".$rs2->fields['NO_MATRIK']." | Serial No : ".$finalsn."<br>";
  280.                             $ie=$ie+1;
  281.                             $total_insert_failed++;
  282.                         }
  283.                     }
  284.                
  285.                 break;
  286.             }
  287.         $rs2->MoveNext();
  288.     }
  289.  
  290.     $ftpee->lwrite("[MSG]\tLast run was executed [".$ftpee->DBNewDate2(0)."]");
  291.     ######### SEND EMAIL ###############
  292.        
  293.     $fullmsg .= "<br>[MSG]\tLast run was executed [".$ftpee->DBNewDate2(0)."]<br>";
  294.     $fullmsg .= "Total Insert = [<b>".$total_insert."</b>]<br>";
  295.     $fullmsg .= "Total Insert failed = [<b>".$total_insert_failed."</b>]<br>";
  296.     $fullmsg .= "Total Update = [<b>".$total_update."</b>]<br>";
  297.     $fullmsg .= "Total Update failed = [<b>".$total_update_error."</b>]<br>";
  298.    
  299.     if ($total_insert==0 && $total_insert_failed==0 && $total_update==0 && $total_update_error==0){
  300.     }else {
  301.         $ftpee->EmailNotify($serverlog_path.$serverlog_date,$serverlog_date,$fullmsg,$emailnotify);
  302.     }
  303.    
  304.     print "Done. Insert: ".$total_insert.", Insert failed: ".$total_insert_failed.", Update: ".$total_update.", Update failed: ".$total_update_error."\r\n";
  305.  
  306.     $DB->Close();  
  307.     $DBora->Close();
  308. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement