Your IP : 216.73.217.49


Current Path : /var/www/amortar/data/www/a-mortar/bitrix/php_interface/include/kda.importexcel/
Upload File :
Current File : /var/www/amortar/data/www/a-mortar/bitrix/php_interface/include/kda.importexcel/cron_frame.php

<?
@set_time_limit(0);
define('NOT_CHECK_PERMISSIONS', true);
if(!ini_get('date.timezone') && function_exists('date_default_timezone_set')){@date_default_timezone_set("Europe/Moscow");}
$_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__).'/../../../..');
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
@set_time_limit(0);
CModule::IncludeModule("iblock");
CModule::IncludeModule('catalog');
CModule::IncludeModule("currency");
$module_id = 'kda.importexcel';
CModule::IncludeModule($module_id);
$PROFILE_ID = $argv[1];

/*Remove old dirs*/
CKDAImportUtils::RemoveTmpFiles(0);
/*/Remove old dirs*/

if(strlen($PROFILE_ID)==0)
{
	echo date('Y-m-d H:i:s').": profile id is not set\r\n";
	die();
}

$SETTINGS_DEFAULT = $SETTINGS = $EXTRASETTINGS = null;
$oProfile = new CKDAImportProfile();
$oProfile->Apply($SETTINGS_DEFAULT, $SETTINGS, $PROFILE_ID);
$oProfile->ApplyExtra($EXTRASETTINGS, $PROFILE_ID);
$params = array_merge($SETTINGS_DEFAULT, $SETTINGS);
$params['MAX_EXECUTION_TIME'] = (isset($MAX_EXECUTION_TIME) && (int)$MAX_EXECUTION_TIME > 0 ? $MAX_EXECUTION_TIME : 0);

$needCheckSize = (bool)(COption::GetOptionString($module_id, 'CRON_NEED_CHECKSIZE', 'N')=='Y');
$needImport = true;
if($needCheckSize)
{
	$arProfileFields = $oProfile->GetFieldsByID($PROFILE_ID);
	$checkSum = $arProfileFields['FILE_HASH'];
}

$fileSum = '';
$DATA_FILE_NAME = $params['URL_DATA_FILE'];
if($params['EXT_DATA_FILE'] || $params['EMAIL_DATA_FILE'])
{
	$newFileId = 0;
	$fileLink = '';
	if($params['EMAIL_DATA_FILE'])
	{
		if($newFileId = \Bitrix\KdaImportexcel\SMail::GetNewFile($params['EMAIL_DATA_FILE']))
		{
			$arFile = CFile::GetFileArray($newFileId);
			$fileLink = $_SERVER["DOCUMENT_ROOT"].$arFile['SRC'];
			$fileSum = md5_file($fileLink);
		}
		elseif($checkSum)
		{
			 $fileSum = $checkSum;
		}
	}
	else
	{
		$arFile = CKDAImportUtils::MakeFileArray($params['EXT_DATA_FILE'], 86400);
		if($arFile['tmp_name'] && file_exists($arFile['tmp_name'])) $fileSum = md5_file($arFile['tmp_name']);
		elseif($checkSum) $fileSum = $checkSum;
	}
	
	if($needCheckSize && $checkSum && $checkSum==$fileSum)
	{
		$needImport = false;
	}
	else
	{
		if(!$newFileId && $arFile)
		{
			$newFileId = CKDAImportUtils::SaveFile($arFile);
		}
	}
	
	if($newFileId > 0)
	{
		$arFile = CFile::GetFileArray($newFileId);
		$DATA_FILE_NAME = $arFile['SRC'];
			
		if($params['DATA_FILE']) CKDAImportUtils::DeleteFile($params['DATA_FILE']);
		
		$SETTINGS_DEFAULT['DATA_FILE'] = $newFileId;
		$SETTINGS_DEFAULT['URL_DATA_FILE'] = $DATA_FILE_NAME;
		$oProfile->Update($PROFILE_ID, $SETTINGS_DEFAULT, $SETTINGS);
	}
}

if(!file_exists($_SERVER["DOCUMENT_ROOT"].$DATA_FILE_NAME))
{
	if(defined("BX_UTF")) $DATA_FILE_NAME = $APPLICATION->ConvertCharsetArray($DATA_FILE_NAME, LANG_CHARSET, 'CP1251');
	else $DATA_FILE_NAME = $APPLICATION->ConvertCharsetArray($DATA_FILE_NAME, LANG_CHARSET, 'UTF-8');
}
if(!file_exists($_SERVER["DOCUMENT_ROOT"].$DATA_FILE_NAME))
{
	echo date('Y-m-d H:i:s').": file not exists\r\n";
	die();
}

$arParams = array();
//$pid = false;
$pid = $PROFILE_ID;
if(COption::GetOptionString($module_id, 'CRON_CONTINUE_LOADING', 'N')=='Y')
{
	//$pid = $PROFILE_ID;
	$oProfile = new CKDAImportProfile();
	$arParams = $oProfile->GetProccessParamsFromPidFile($PROFILE_ID);
	if($arParams===false)
	{
		echo date('Y-m-d H:i:s').": import in process\r\n";
		die();
	}
}
if(!is_array($arParams)) $arParams = array();
if(empty($arParams) && !$needImport)
{
	echo date('Y-m-d H:i:s').": file is loaded\r\n";
	die();
}

$arParams['IMPORT_MODE'] = 'CRON';
$ie = new CKDAImportExcel($DATA_FILE_NAME, $params, $EXTRASETTINGS, $arParams, $pid);
$arResult = $ie->Import();

if(COption::GetOptionString($module_id, 'CRON_REMOVE_LOADED_FILE', 'N')=='Y')
{
	if(file_exists($_SERVER["DOCUMENT_ROOT"].$DATA_FILE_NAME))
	{
		unlink($_SERVER["DOCUMENT_ROOT"].$DATA_FILE_NAME);
	}
	
	if($params['EXT_DATA_FILE'])
	{
		$fn = $params['EXT_DATA_FILE'];
		if(is_file($fn)) unlink($fn);
		elseif(is_file($_SERVER["DOCUMENT_ROOT"].$fn)) unlink($_SERVER["DOCUMENT_ROOT"].$fn);
	}
}
echo date('Y-m-d H:i:s').": import complete\r\n".CUtil::PhpToJSObject($arResult)."\r\n";
?>