.
*/
include("../../oms/include/include-sub.php");
require_once(FILESYSTEMROOTPATH."/oms/include/classes/ImportLayout.php");
require_once(FILESYSTEMROOTPATH."include/classes/CharSet.php");
require_once(FILESYSTEMROOTPATH."include/classes/Validator.php");
$layout = new ImportLayout(Access::ANONYMOUS, "./");
$layout->init();
$layout->echoln("
Event Applications import
");
$error = false;
// Download data from intranet
$intranetdata = array();
$query = "SELECT e.`from_date`, me.`member_event_id` , me.`member_id` , me.`event_id` , me.`application_status` ,
me.`passport_number` , me.`passport_valid` , me.`nationality` , me.`place_of_birth` , me.`remarks`
FROM `member_events` me
INNER JOIN `events` e ON e.`event_id`=me.`event_id` ";
if( $sql_intranet->query($query) AND $sql_intranet->getnumrows()>0 ) {
while( $row = $sql_intranet->fetchAssoc() ) {
$curitem = $row['member_event_id'];
$intranetdata[$curitem]['eventId'] = $row['event_id'];
$intranetdata[$curitem]['uid'] = $row['member_id'];
if( strlen($row['passport_number'])>0 ) {
$intranetdata[$curitem]['passportNumber'] = $row['passport_number'];
$intranetdata[$curitem]['visa'] = 1;
}
if( strlen($row['passport_valid'])>0 ) {
$intranetdata[$curitem]['passportValidTo'] = $row['passport_valid'];
$intranetdata[$curitem]['visa'] = 1;
}
if( strlen($row['nationality'])>0 ) {
$intranetdata[$curitem]['nationality'] = $row['nationality'];
$intranetdata[$curitem]['visa'] = 1;
}
if( strlen($row['place_of_birth'])>0 ) {
$intranetdata[$curitem]['placeOfBirth'] = $row['place_of_birth'];
$intranetdata[$curitem]['visa'] = 1;
}
if( strlen($row['remarks'])>0 ) $intranetdata[$curitem]['motivation'] = $row['remarks'];
if( $row['application_status'] == "Pending" AND $row['from_date']<=date("Y-m-d") ) {
$intranetdata[$curitem]['applicationStatus'] = 5;
}else if( $row['application_status'] == "Pending" ) {
$intranetdata[$curitem]['applicationStatus'] = 2;
}else if( $row['application_status'] == "Accepted" AND $row['from_date']<=date("Y-m-d") ) {
$intranetdata[$curitem]['applicationStatus'] = 7;
}else if( $row['application_status'] == "Accepted" ) {
$intranetdata[$curitem]['applicationStatus'] = 3;
}else if( $row['application_status'] == "Waiting" AND $row['from_date']<=date("Y-m-d") ) {
$intranetdata[$curitem]['applicationStatus'] = 5;
}else if( $row['application_status'] == "Waiting" ) {
$intranetdata[$curitem]['applicationStatus'] = 4;
}else if( $row['application_status'] == "Rejected" ) {
$intranetdata[$curitem]['applicationStatus'] = 5;
}else{
$layout->echoln("
ERROR: Invalid application_status for ".$row['member_event_id'].": ".$row['application_status']);
}
$intranetdata[$curitem]['id'] = $row['member_event_id'];
}
}else {
$layout->echoln("
ERROR: Failed loading ".$types[$k]." data from Intranet.");
$error = true;
}
$layout->echoln("
INFO: Loaded data from intranet: ".count($intranetdata)." out of ".$sql_intranet->getnumrows()." event applications.");
//time to insert the data to the database!
if( !$error ) {
if ( ! $sql_events->query("TRUNCATE TABLE events.applications")) {
$layout->echoln("
TRUNCATE ERROR: ".$sql_events->getErrorMsg().".");
exit;
}
foreach ($intranetdata AS $k => $event) {
$query = "INSERT INTO events.applications SET ";
foreach ($event AS $key => $value){
$value=str_replace("'", "\'", $value);
$query .= "`".$key."` = '".$value."', ";
}
$query=substr($query, 0, -2);
if ($sql_events->query($query)) $w++;
else {
$layout->echoln("
INSERT ERROR: ".$sql_events->getErrorMsg().".");
$layout->echoln("
".$query);
}
}
$layout->echoln("
INFO: Inserted to OMS: ".$w." event applications.");
}else {
$layout->echoln("
ERROR: blocking error found, not synchronising.");
}
$layout->echoln("
");
$layout->echoln("
NOTICE: On table events.applications, the field `uid` still has intranet member_ids and not UIDs, which need to be converted!");
$layout->echoln("
NOTICE: Run the events cron!");
$layout->echoln("Finished");
$layout->page_footer();
?>