Esempio n. 1
0
 /**
  * 実行
  */
 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;
     }
 }
Esempio n. 2
0
 /**
  * 実行
  */
 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());
 }