/** * 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; }