function doUpload() { global $upload_settings_file, $datenow, $total_pids_taken_per_run, $class_ju, $class_jc, $jng_sp_id, $jng_sp_name, $image_uploaded_file, $xml_filepath, $xml_filename, $xml_filename_marker, $xml_filename_temp, $zip_final, $zip_filename, $zip_filename_marker, $start, $pid_file_processed, $timestamp, $process_runned; $success = false; $messages_success = 'CAT XML File is created on "temp"<br/>'; //INITIALIZE FTP SETTINGS AND PATHS use_class('ssh'); $ftp_server = SP_NECKERMANN_CAT_FTP_HOST; $ftp_user_name = SP_NECKERMANN_CAT_FTP_USER; $ftp_user_pass = SP_NECKERMANN_CAT_FTP_PASSWORD; $ftp_file_path = 'out/'; $ssh = new ssh($ftp_server, $ftp_user_name, $ftp_user_pass); if ($ssh->sftp !== false) { // if(true) { ##XXX (FOR TESTING) if (file_exists($image_uploaded_file)) { $handle = fopen($image_uploaded_file, "r+"); $im_contents = fread($handle, filesize($image_uploaded_file)); $upload_image_log = $im_contents != '' ? explode(',', $im_contents) : array(); fclose($handle); } $upload_img_zip = count($upload_image_log) > 0; //MOVE XML MEDIA FILE FROM TEMP TO UPLOAD FOLDER ON SERVER if (file_exists($xml_filename_temp)) { //CREATE BACKUP CAT XML $zip_xml_backup = "{$datenow}-{$xml_filename}.zip"; $zip_xml_backup_filepath = SP_NECKERMANN_PATH . "cat-backup/{$zip_xml_backup}"; $shell[] = 'cd ' . SP_NECKERMANN_TEMP_FOLDER; $shell[] = "zip {$zip_xml_backup_filepath} {$xml_filename}"; //add image file directly to single zip $output = shell_exec(implode("\n", $shell)); /* FOR TESTING ON LOCAL $shell = '"C:\Program Files\WinRAR\WinRAR.exe" a '."$zip_xml_backup_filepath $xml_filename_temp"; $output = exec($shell); */ //PUT CAT XML FROM TEMP TO "products/out" $success = rename($xml_filename_temp, $xml_filepath); $messages_success .= 'CAT XML File is moved from "temp" to "products/out"<br/>'; } else { sendMessageToAdmin("Function doUpload -> The CAT file is not found on {$xml_filename_temp}, please contact administrator.", true, true); } // $success = true; ##XXX (FOR TESTING) if ($success) { $contents = $ssh->ssh2ListDirectory($ftp_file_path); if (is_array($contents) && count($contents) > 0) { if (in_array($xml_filename, $contents)) { $ssh->ssh2Unlink($xml_filename); } } echo '. '; //templine if ($upload_img_zip) { $success_upload = $ssh->ssh2FileUpload($zip_final, $ftp_file_path . $zip_filename); echo '. '; //templine if ($success_upload) { $uploaded_size = $ssh->ssh2FileSize($ftp_file_path . $zip_filename); $local_size = filesize($zip_final); if ($uploaded_size == $local_size) { $messages_success .= 'Media (Image) File is uploaded to NM.DE<br/>'; $success_upload = $ssh->ssh2FileCreate($ftp_file_path . $zip_filename_marker); } else { $messages_error .= 'Media (Image) File Upload Failed<br/>'; $success_upload = false; } } if (!$success_upload) { $messages_error .= 'Function doUpload -> Image file Upload failed<br/>'; } } else { $success_upload = true; } //$success_upload = $ssh->ssh2FileCreate($ftp_file_path.$xml_filename, $xml_content); echo '. '; //templine if ($success_upload) { $success_upload = $ssh->ssh2FileUpload($xml_filepath, $ftp_file_path . $xml_filename); if ($success_upload) { $uploaded_size = $ssh->ssh2FileSize($ftp_file_path . $xml_filename); $local_size = filesize($xml_filepath); //var_dump('Local: '.$local_size); echo '<br />'; //var_dump('Remote: '.$uploaded_size); if ($uploaded_size == $local_size) { $messages_success .= 'CAT XML File is uploaded to NM.DE<br/>'; $success_upload = $ssh->ssh2FileCreate($ftp_file_path . $xml_filename_marker); } else { $messages_error .= 'Function doUpload -> CAT XML File Upload failed<br/>'; $success_upload = false; } } } $success = $success_upload; } else { sendMessageToAdmin('Function doUpload -> Could not move CAT XML from "temp" to "products/out".', true, true); } } else { sendMessageToAdmin('Function doUpload -> ' . $jng_sp_name . ': Failed connecting to SFTP server', true, true); } if ($success) { $class_jc->updateLastActiveStatus($jng_sp_id); $class_jc->updateLastReportedStock($jng_sp_id); $upload_id = $class_ju->newUpload($jng_sp_id, 'CAT', $zip_xml_backup, 'auto'); echo "<h1>UPLOAD ID {$upload_id}</h1>"; if ($upload_img_zip) { $class_ju->addUploadType($upload_id, 'MEDIA', $zip_filename); foreach ($upload_image_log as $jcid) { $class_ju->addUploadImage($upload_id, $jcid); } } $products = array(); $handle = fopen($pid_file_processed, 'r+'); $fp_contents = fread($handle, filesize($pid_file_processed)); $fp_temp = explode("\n", $fp_contents); if (is_array($fp_temp) && count($fp_temp) > 0) { $products = explode(',', $fp_temp[0]); fwrite($handle, $fp_temp[0] . "\nUPLOADED SUCCESSFULLY ON {$timestamp}"); } fclose($handle); $messages_success .= "CAT UPLOAD DONE >> upload_id : {$upload_id}<br/>"; $handle = fopen($upload_settings_file, 'r+'); fwrite($handle, "{$total_pids_taken_per_run}\nDONE\n{$process_runned}"); fclose($handle); } $time = microtime(); $time = explode(' ', $time); $time = $time[1] + $time[0]; $finish = $time; $total_time = round($finish - $start, 4); $messages_time = "<p style=\"color:#000;\">Processing time : {$total_time} seconds</p>"; if ($messages_error != '') { $messages_error .= $messages_time; sendMessageToAdmin($messages_error, true, true); } if ($messages_success != '') { //SET UPLOAD STATUS TO SUCCESS 'S' ALSO SET IMAGE UPLOADED TO '1' if ($upload_id > 0) { $class_ju->updateStatus($upload_id, 'S', 'auto'); } $messages_success .= $messages_time; $messages_success .= '<br/>Total Products Processed : ' . count($products) . ' Products'; sendMessageToAdmin($messages_success, false); } }
$contents = $ssh->ssh2ListDirectory($ftp_file_path); if (is_array($contents) && count($contents) > 0) { if (in_array($xml_filename, $contents)) { $ssh->ssh2Unlink($xml_filename); } } //echo '. '; //templine $success_upload = $ssh->ssh2FileUpload($xml_filepath, $ftp_file_path . $xml_filename); if ($success_upload) { $uploaded_size = $ssh->ssh2FileSize($ftp_file_path . $xml_filename); $local_size = filesize($xml_filepath); //var_dump('Local: '.$local_size); echo '<br />'; //var_dump('Remote: '.$uploaded_size); if ($uploaded_size == $local_size) { $cron_result[] = 'PRI XML File is uploaded successfully'; $success_upload = $ssh->ssh2FileCreate($ftp_file_path . $xml_filename_marker); } else { $success_upload = false; } } if (!$success_upload) { $cron_result[] = 'PRI XML File Upload failed'; } $success = $success_upload; } else { $cron_result[] = 'Failed connecting to SFTP server'; } } if ($success) { $class_jc->updateLastReportedStock($jng_sp_id); $upload_id = $class_ju->newUpload($jng_sp_id, 'PRI', $xml_filename, $session_userinfo['username']);