. * */ namespace SP\Import; use SP\Log\Email; use SP\Log\Log; use SP\Core\Exceptions\SPException; defined('APP_ROOT') || die(_('No es posible acceder directamente a este archivo')); /** * Esta clase es la encargada de importar cuentas. */ class Import { /** * @var string */ public static $importPwd = ''; /** * @var int */ public static $defUser = 0; /** * @var int */ public static $defGroup = 0; /** * @var string */ public static $csvDelimiter = ''; /** * @param string $importPwd */ public static function setImportPwd($importPwd) { self::$importPwd = $importPwd; } /** * @param int $defUser */ public static function setDefUser($defUser) { self::$defUser = $defUser; } /** * @param int $defGroup */ public static function setDefGroup($defGroup) { self::$defGroup = $defGroup; } /** * @param string $csvDelimiter */ public static function setCsvDelimiter($csvDelimiter) { self::$csvDelimiter = $csvDelimiter; } /** * Iniciar la importación de cuentas. * * @param array $fileData Los datos del archivo * @return array resultado del proceso */ public static function doImport(&$fileData) { $Log = new Log(_('Importar Cuentas')); try { $file = new FileImport($fileData); switch ($file->getFileType()) { case 'text/csv': case 'application/vnd.ms-excel': $import = new CsvImport($file); $import->setFieldDelimiter(self::$csvDelimiter); break; case 'text/xml': $import = new XmlImport($file); $import->setImportPass(self::$importPwd); break; default: throw new SPException( SPException::SP_WARNING, _('Tipo mime no soportado'), _('Compruebe el formato del archivo') ); } $import->setUserId(self::$defUser); $import->setUserGroupId(self::$defGroup); $import->doImport(); } catch (SPException $e) { $Log->setLogLevel(Log::ERROR); $Log->addDescription($e->getMessage()); $Log->addDetails(_('Ayuda'), $e->getHint()); $Log->writeLog(); $result['error'] = array('description' => $e->getMessage(), 'hint' => $e->getHint()); return $result; } $Log->addDescription(_('Importación finalizada')); $Log->writeLog(); Email::sendEmail($Log); $result['ok'] = array( _('Importación finalizada'), _('Revise el registro de eventos para más detalles') ); return $result; } }