Example #1
0
 public function indexAction()
 {
     ini_set('memory_limit', '2000M');
     ignore_user_abort(true);
     set_time_limit(0);
     if (empty($_SESSION['auth'])) {
         if (empty($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW'])) {
             header('WWW-Authenticate: Basic realm="exchange1c"');
             header('HTTP/1.0 401 Unauthorized');
             $this->module->response('failure', 'Not isset PHP_AUTH_USER or PHP_AUTH_PW');
         }
         if ($_SERVER['PHP_AUTH_USER'] !== $this->module->config['user']['login'] || $_SERVER['PHP_AUTH_PW'] !== $this->module->config['user']['password']) {
             $this->module->response('failure', 'User or password not correct');
         }
     }
     if (empty($_GET['mode'])) {
         $this->module->response('failure', 'Mode missing');
     }
     $exchange = \Exchange1c\Exchange::get(['session', session_id()]);
     if (!$exchange) {
         $exchange = new \Exchange1c\Exchange();
         $exchange->type = $_GET['type'];
         $exchange->session = session_id();
         $exchange->save();
         $exchange->path = App::$cur->path . '/tmp/Exchange1c/' . date('Y-m-d') . '/' . $exchange->id;
         $exchange->save();
     }
     $log = new \Exchange1c\Exchange\Log();
     $log->exchange_id = $exchange->id;
     $log->type = 'mode';
     $log->info = $_GET['mode'];
     $log->status = 'process';
     $log->query = json_encode($_GET);
     $log->save();
     $modeClass = 'Exchange1c\\Mode\\' . ucfirst(strtolower($_GET['mode']));
     if (!class_exists($modeClass)) {
         $log->status = 'failure';
         $log->info = 'mode class ' . $modeClass . ' not found';
         $log->date_end = date('Y-m-d H:i:s');
         $log->save();
     }
     $mode = new $modeClass();
     $mode->exchange = $exchange;
     $mode->log = $log;
     $mode->process();
 }
Example #2
0
 public function reExchangeAction()
 {
     ini_set('memory_limit', '2000M');
     ignore_user_abort(true);
     set_time_limit(0);
     $reExchange = Exchange1c\Exchange::get((int) $_GET['item_pk']);
     $exchange = new \Exchange1c\Exchange();
     $exchange->type = $reExchange->type;
     $exchange->save();
     $exchange->path = $reExchange->path;
     $exchange->save();
     foreach ($reExchange->files as $reFile) {
         if (strpos($reFile->name, '/')) {
             Tools::createDir($exchange->path . '/' . substr($reFile->name, 0, strrpos($reFile->name, '/')));
         }
         copy($reExchange->path . '/' . $reFile->name, $exchange->path . '/' . $reFile->name);
     }
     //Tools::copyFiles($reExchange->path, $exchange->path);
     foreach ($reExchange->logs as $reLog) {
         if (!in_array($reLog->info, ['import'])) {
             continue;
         }
         $_GET = json_decode($reLog->query, true);
         $log = new \Exchange1c\Exchange\Log();
         $log->exchange_id = $exchange->id;
         $log->type = 'mode';
         $log->info = $reLog->info;
         $log->status = 'process';
         $log->query = $reLog->query;
         $log->save();
         $modeClass = 'Exchange1c\\Mode\\' . ucfirst(strtolower($log->info));
         if (!class_exists($modeClass)) {
             $log->status = 'failure';
             $log->info = 'mode class ' . $modeClass . ' not found';
             $log->date_end = date('Y-m-d H:i:s');
             $log->save();
         }
         $mode = new $modeClass();
         $mode->exchange = $exchange;
         $mode->log = $log;
         $mode->process();
     }
     Tools::redirect('/admin/exchange1c/Exchange');
 }