/** * 実行 */ protected function perform() { // 案件ID $ankenId = $this->_request['aid']; // モデル $m =& $this->_model; // 期間 $from = $this->_from; $to = $this->_to; // 基本情報 $anken =& $m->getAnkenData($ankenId); $this->appendDataFrom($anken); // キャンペーンコード $code = $anken['campaign_code']; if ($code === null) { throw new AnkenNotFountException($ankenId); } if (isset($this->_request['update']) == true) { // 更新 // 更新情報を整理 $list =& $m->Result_ClientReportResultSeq_getUpdateList($_POST); // カウンター初期化 $updateCount['sum'] = 0; $updateCount['Y'] = 0; $updateCount['D'] = 0; $updateCount['N'] = 0; $updateCount['E'] = 0; // 更新結果 $result = array(); // 更新処理ループ if (count($list) != 0) { foreach ($list as $index => $value) { // 例外配列初期化 $eList = array(); // 該当数をカウント $updateCount['sum']++; /////////////////////////////// // !error 日付が不正の場合は、対象外 // !error 日付が現在より新しい場合は、対象外 // ステータスがY、Dの場合 /////////////////////////////// if ($value['accept_flg'] == 'Y' || $value['accept_flg'] == 'D') { if (ereg("^([0-9]{4})[\\/\\-]([0-9]{1,2})[\\/\\-]([0-9]{1,2})", trim($value['date']), $regs) !== false && checkdate($regs[2], $regs[3], $regs[1]) == true) { $date = "{$regs['1']}-{$regs['2']}-{$regs['3']}"; $value['date'] = $date; } else { $eList[] = new AcceptDateFormatException(); } } else { $value['date'] = ""; } if (count($eList) == 0) { // 更新 $m->Result_ClientReportResultSeq_update($this->_isExtra, $code, $value['seika_id'], $value['status'], $value['date']); // カウントアップ if ($value['accept_flg'] == 'Y') { $updateCount['Y']++; } elseif ($value['accept_flg'] == 'D') { $updateCount['D']++; } else { $updateCount['N']++; } } else { $updateCount['E']++; } $d['data'] = $value; $d['eListCount'] = count($eList); $d['eList'] = $eList; $result[$index + 1] = $d; } } // 個別承認更新メール送信 NotifyManager::seikaUploadSeq($this->_core, $anken, $result, $updateCount); // ページ番号 $page = $this->_request['pageID']; // テンプレート $this->_dataFrom['list'] =& $result; // カウンター値をテンプレートに渡す $this->_dataFrom['update_count'] =& $updateCount; return 'result/client_report_result_seq_result'; } else { // 表示 // if ($this->_isExtra == false) {$this->_isExtra, // ページャ // 対象成果件数 $count = $m->Result_ClientReportResultSeq_getListDataCount($code, $from, $to); $pager =& $this->_core->getPager($count); // 表示件数範囲を取得 list($pageFrom, $pageTo) = $pager->getOffsetByPageId(); // データ取得 $data =& $m->Result_ClientReportResultSeq_getListData($code, $from, $to, $pageFrom, $pageTo); // 整理します $data =& $m->Result_ClientReportResultSeq_format($data); // テンプレート $this->_dataFrom['list'] =& $data; $this->_dataFrom['pager'] =& $pager->getLinks(); $this->_dataFrom['count'] = $count; } }
/** * 実行 */ protected function perform() { // 案件ID $ankenId = $this->_request['aid']; // モデル $m =& $this->_model; // ステータス $accept_flg = array(3 => '指定なし', 1 => 'Y', 0 => 'D', 2 => 'N'); $this->_dataFrom['accept_flg'] = $accept_flg; // 基本情報 $anken =& $m->getAnkenData($ankenId); $this->appendDataFrom($anken); // キャンペーンコード $code = $anken['campaign_code']; if ($code === null) { throw new AnkenNotFountException($ankenId); } if (empty($_POST['update']) == false) { // 更新 // 更新情報を整理 $list =& $m->Result_ClientReportResultSeq_getUpdateList($_POST); // カウンター初期化 $updateCount['sum'] = 0; $updateCount['Y'] = 0; $updateCount['D'] = 0; $updateCount['N'] = 0; $updateCount['E'] = 0; // 更新結果 $result = array(); // 更新処理ループ if (count($list) != 0) { foreach ($list as $index => $value) { // 例外配列初期化 $eList = array(); // 該当数をカウント $updateCount['sum']++; /////////////////////////////// // !error 日付が不正の場合は、対象外 // !error 日付が現在より新しい場合は、対象外 // ステータスがY、Dの場合 /////////////////////////////// if ($value['accept_flg'] == 'Y' || $value['accept_flg'] == 'D') { if (ereg("^([0-9]{4})[\\/\\-]([0-9]{1,2})[\\/\\-]([0-9]{1,2})", trim($value['date']), $regs) !== false && checkdate($regs[2], $regs[3], $regs[1]) == true) { $date = "{$regs['1']}-{$regs['2']}-{$regs['3']}"; $value['date'] = $date; } else { $eList[] = new AcceptDateFormatException(); } } else { $value['date'] = ""; } /////////////////////////////// // 更新者 /////////////////////////////// if (empty($value['upd_user_id']) == true) { $eList[] = new UpdUserIdNotFountException(); } if (count($eList) == 0) { // 更新 $m->Result_ClientReportResultSeq_update($code, $value['seika_id'], $value['status'], $value['date'], $value['upd_user_id']); // カウントアップ if ($value['accept_flg'] == 'Y') { $updateCount['Y']++; } elseif ($value['accept_flg'] == 'D') { $updateCount['D']++; } else { $updateCount['N']++; } } else { $updateCount['E']++; } $d['data'] = $value; $d['eListCount'] = count($eList); $d['eList'] = $eList; $result[$index + 1] = $d; } } // 個別承認更新メール送信 NotifyManager::seikaUploadSeq($this->_core, $anken, $result, $updateCount); // ページ番号 $page = $this->_request['pageID']; // テンプレート $this->_dataFrom['list'] =& $result; // カウンター値をテンプレートに渡す $this->_dataFrom['update_count'] =& $updateCount; return 'result/client_report_result_seq_result'; } else { if (empty($this->_request['search']) == false) { // 検索 // 条件 $m->setWhereLike($this->_like); // 条件指定されていない場合はエラー if ($m->hasWhere() == false) { $this->_dataFrom['count'] = 0; $this->_dataFrom["error"] = array("検索条件が指定されていません"); return; } // ページャ // 対象成果件数 $count = $m->Result_ClientReportResultSeq_getListDataCount($code); $pager =& $this->_core->getPager($count); // 表示件数範囲を取得 list($pageFrom, $pageTo) = $pager->getOffsetByPageId(); // データ取得 $data =& $m->Result_ClientReportResultSeq_getListData($code, $pageFrom, $pageTo); // 整理します $data =& $m->Result_ClientReportResultSeq_format($data); $this->_dataFrom['show'] = true; // テンプレート $this->_dataFrom['list'] =& $data; $this->_dataFrom['pager'] =& $pager->getLinks(); $this->_dataFrom['count'] = $count; $this->_dataFrom['url_quert'] = $_SERVER['QUERY_STRING']; } } /////////////////////////////////////////////// // 拡張リンク用のカスタム処理 /////////////////////////////////////////////// $tmpl = $m->Result_ClientReportResultSeq_getExtraLinkTmplPath($ankenId); $this->_dataFrom["extra_link_path"] = $tmpl; //--------------------------------------- // レポートの表示/非表示制御 //--------------------------------------- $this->_dataFrom["disp"] =& $m->getReportDisp($ankenId, $this->_core->getLoginKind()); }