Пример #1
0
 /**
  * xxxの保存が成功したかJSON形式で返す
  * @access public
  * @see Admin_ActionClass::perform()
  */
 function perform()
 {
     $flg = $this->af->get('flg');
     $company_id = $this->session->get('company_id');
     try {
         $params = array('company_id' => $company_id);
         $methodarr = array();
         $methodarr[] = 'setStockMovercvMDShohinCdNullForGtin14';
         $methodarr[] = 'setStockMovercvMDShohinCdNullForBarcode';
         $methodarr[] = 'setStockMovercvMDShohinCdNullByAi';
         $dao = DaoFactory::StockMovercvD();
         $dao->BeginTransaction();
         // 一覧を取得
         $null_num_before = $dao->getStockMovercvMDShohinCdNullCount($params);
         foreach ($methodarr as $method) {
             $res = $dao->{$method}($params);
             if (!$res) {
                 throw new Exception("DB更新が失敗しました");
             }
         }
         $null_num_after = $dao->getStockMovercvMDShohinCdNullCount($params);
         $dao->CommitTransaction();
         $dir = dirname(BASE) . DIRECTORY_SEPARATOR . 'batch';
         exec('php ' . $dir . DIRECTORY_SEPARATOR . 'batch_zaiko_all.php ' . $company_id . ' > /dev/null &');
         $output = array();
         $output['result'] = '0';
         $output['updated_count'] = intval($null_num_before) - intval($null_num_after);
         $output['null_num'] = $null_num_after;
         return array('json', $output);
     } catch (Exception $e) {
         // 致命的なエラーが発生
         $dao->AbortTransaction();
         $this->logger->log(LOG_DEBUG, $e->getTraceAsString());
         return array('500', $e->getMessage());
     }
     exit;
 }