Example #1
0
 /**
  * 画面表示のためのテンプレート初期化
  */
 public function &Anken_Edit_getInitData()
 {
     $data = array();
     // 締め日
     $enum = new ShimeDayEnum();
     $data['shime_day'] = $enum->getArray();
     // 案件カテゴリ
     $enum = new AnkenGategoryEnum();
     $data['category'] = $enum->getArray();
     // 実施タイプ
     $enum = new AnkenTypeEnum();
     $data['type'] = $enum->getArray();
     // 案件種別
     $enum = new AnkenSyubetsuEnum();
     $data['syubetsu'] = $enum->getArray();
     // 案件タイプ
     $enum = new AnkenType2Enum();
     $data['type2'] = $enum->getArray();
     // 成果地点
     $enum = new AnkenSeikaPointEnum();
     $data['seika_point'] = $enum->getArray();
     // デバイス
     $enum = new AnkenDeviceEnum();
     $data['device'] = $enum->getArray();
     //↓↓===========nm00189 2010/03/29 start===================================
     // 成果計測方式追加
     $enum = new AnkenSeikaCountTypeEnum();
     $data['seika_count_type'] = $enum->getArray();
     //↑↑===========nm00189 2010/03/29 end=====================================
     // クライアント
     $list =& $this->Anken_Edit_getClientList();
     $data['client_list'] = $list;
     // 入力モード
     $data['input_type'] = 'input';
     // 成果UL時紐付けID
     $enum = new AcceptUseActionIdEnum();
     $data['accept_use_action_id'] = $enum->getArray();
     // 成果
     $enum = new AcceptDankaiEnum();
     $data['accept_dankai'] = $enum->getArray();
     // 成果承認
     $enum = new AutoAcceptEnum();
     $data['auto_accept'] = $enum->getArray();
     // 単価タイプ
     $enum = new PriceTypeCdEnum();
     $data['price_type'] = $enum->getArray();
     //↓↓===========nm90073 2013/07/24 start===================================
     // 売上端数調整方法追加
     $enum = new RoundingTypeEnum();
     $data['rounding_type'] = $enum->getArray();
     //↑↑===========nm90073 2013/07/24 end=====================================
     // 消費税
     $enum = new ClientAmountIncludeTaxEnum();
     $data['client_amount_include_tax'] = $enum->getArray();
     // 退会率
     $enum = new AnkenTaikaiOptionCdEnum();
     $data['taikai_option_cd'] = $enum->getArray();
     return $data;
 }
Example #2
0
 /**
  * 実行
  */
 protected function perform()
 {
     // 案件ID
     $ankenId = $this->_request['aid'];
     // モデル
     $m =& $this->_model;
     // 基本情報
     $anken =& $m->getAnkenData($ankenId);
     $this->appendDataFrom($anken);
     // ログインクライアントIDチェック
     if ($this->_core->getLoginKind() == 'client' && $this->_loginClientId != $anken['client_id']) {
         throw new RequestParamsException('ログインクライアントIDと要求したクライアントIDが一致しません。');
     }
     // 締め日
     $shime = $anken['shime_date'];
     // キャンペーン期間
     $from = $anken['campaign_from'];
     $to = $anken['campaign_to'];
     // 空の期間配列を作成
     $blank = DateManager::getArrayShimeSpan($ankenId, $from, $to, $shime);
     // 集計
     $data =& $m->Result_ClientReportResult_counting($anken, $blank);
     // テンプレートに渡す
     $this->_dataFrom['list'] =& $data;
     // 案件情報のアクションID対応の値
     $enum = new AcceptUseActionIdEnum();
     $this->_dataFrom["accept_use_action"] = $enum->getKey('アクションID');
     // 案件情報の定率対応の値
     $enum = new PriceTypeCdEnum();
     $this->_dataFrom["price_use_rate"] = $enum->getKey('定率');
     //---------------------------------------
     // UPLOAD用のフォームのカスタム処理
     //---------------------------------------
     $path = $m->Result_ClientReportResult_getUploadFormTmplPath($ankenId);
     $this->_dataFrom["upform_path"] = $path;
     //---------------------------------------
     // CSVの追加オプション表示
     //---------------------------------------
     $this->_dataFrom["add_option_name"] = $m->Result_ClientReportResult_getAddLabelForUploadForm($ankenId);
     //---------------------------------------
     // フッターのリンク
     //---------------------------------------
     $tmpl = $m->getExtraLinkTmplPath($ankenId);
     $this->_dataFrom["extra_link_path"] = $tmpl;
     //---------------------------------------
     // レポートの表示/非表示制御
     //---------------------------------------
     $this->_dataFrom["disp"] =& $m->getReportDisp($ankenId, $this->_core->getLoginKind());
 }
Example #3
0
 /**
  * 実行
  */
 protected function perform()
 {
     // モデル
     $m =& $this->_model;
     // 案件ID
     $ankenId = $this->_request['aid'];
     // 案件情報
     $anken =& $m->getAnkenData($ankenId);
     $this->_anken = $anken;
     // テンプレート変数追加
     $this->_dataFrom['anken'] = $anken;
     // カウンター初期化
     $this->_updateCount['sum'] = 0;
     $this->_updateCount['Y'] = 0;
     $this->_updateCount['E'] = 0;
     //--------------------------
     // リロード防止対策
     //--------------------------
     $hashKey = $this->_request['hash'];
     $execute = $this->_core->getSession("execute{$hashKey}");
     if (is_bool($execute) == false || $execute === true) {
         // エラーメッセージ
         $this->_dataFrom['reload_error'] = true;
         // カウンター値をテンプレートに渡す
         $this->_dataFrom['update_count'] =& $this->_updateCount;
         return;
     }
     $this->_core->setSession("execute{$hashKey}", true);
     // キャンペーンコード
     $code = $anken['campaign_code'];
     // 案件情報の成果段階の値
     $enum = new AcceptDankaiEnum();
     $accept2Dankai = $enum->getKey('2段階');
     $this->_dataFrom["accept_2dankai"] = $accept2Dankai;
     // 案件情報の単価タイプの値
     $enum = new PriceTypeCdEnum();
     $priceTeiritsu = $enum->getKey('定率');
     $this->_dataFrom["price_teiritsu"] = $priceTeiritsu;
     // UL項目
     $keys = $this->_nomalKeys;
     $isAccept2Dankai = false;
     $isPriceTeiritsu = false;
     if ($anken['accept_dankai'] == $accept2Dankai) {
         $keys = $this->_2dankaiKeys;
         $isAccept2Dankai = true;
     } else {
         if ($anken['price_type_cd'] == $priceTeiritsu) {
             $keys = $this->_teiritsuKeys;
             $isPriceTeiritsu = true;
         }
     }
     // オプションパラメータ一覧取得
     $option =& $m->Result_HotenUpload_getOptionParamList($ankenId);
     $this->_option =& $option;
     $this->_dataFrom["option"] =& $option;
     // 任意のIDの後ろに追加
     $cidIndex = array_search('client_user_id', $keys);
     foreach ($option as $k => $v) {
         $cidIndex++;
         array_splice($keys, $cidIndex, 0, $k);
     }
     $result = array();
     // ファイル読込み
     if (is_file($this->_tmpFilePath) == true) {
         $lines = file($this->_tmpFilePath);
         //↓↓===========nm00234 2011/02/11 start=================================
         // 任意のID重複チェックの対象案件判断
         $useSameClientUserIdCheck =& $m->Result_HotenUpload_getUseSameClientUserIdCheckFlg($ankenId);
         //↑↑===========nm00234 2011/02/11 end===================================
         foreach ($lines as $index => $line) {
             // 空白行は無視
             if (strlen(trim($line)) == 0) {
                 continue;
             }
             // 文字コード変換
             $line = mb_convert_encoding($line, 'utf-8', 'cp932');
             // 配列に
             $values = explode(',', $line);
             // 1行を処理
             //↓↓===========nm00234 2011/02/11 start=================================
             //$d =& $this->actionLine($code, $isAccept2Dankai, $isPriceTeiritsu, $keys, $values);
             $d =& $this->actionLine($code, $isAccept2Dankai, $isPriceTeiritsu, $keys, $values, $useSameClientUserIdCheck);
             //↑↑===========nm00234 2011/02/11 end===================================
             // 結果を取得
             if (empty($d['data']) == false) {
                 $result[$index + 1] =& $d;
             }
         }
     }
     // テンプレート変数の設定
     $this->_dataFrom['list'] =& $result;
     // カウンター値をテンプレートに渡す
     $this->_dataFrom['update_count'] =& $this->_updateCount;
     // ファイル削除
     if (is_file($this->_tmpFilePath) == true) {
         @unlink($this->_tmpFilePath);
     }
     //↓↓===========nm00312 2013/07/29 start===================================
     /// ログファイル作成
     $logFilePath = $this->makeLogFile($result);
     // 文書作成
     $addMessage .= "該当:" . $this->_updateCount['sum'] . "件\r\n";
     $addMessage .= "実施:" . $this->_updateCount['Y'] . "件\r\n";
     $addMessage .= "エラー:" . $this->_updateCount['E'] . "件\r\n";
     if ($this->_updateCount['sum'] == '0') {
         $addMessage .= "対象の成果がありません。\r\n";
     }
     // 完了メール送信
     NotifyManager::hotenUpload($this->_core, $anken, $logFilePath, $addMessage);
     //↑↑===========nm00312 2013/07/29 end=====================================
 }
Example #4
0
 /**
  * 実行
  */
 protected function perform()
 {
     // モデル
     $m =& $this->_model;
     // 案件ID
     $ankenId = $this->_request['aid'];
     // 案件情報
     $anken =& $m->getAnkenData($ankenId);
     $this->_anken = $anken;
     // テンプレート変数追加
     $this->_dataFrom['anken'] = $anken;
     // カウンター初期化
     $this->_updateCount['sum'] = 0;
     $this->_updateCount['Y'] = 0;
     $this->_updateCount['E'] = 0;
     // キャンペーンコード
     $code = $anken['campaign_code'];
     // 案件情報の成果段階の値
     $enum = new AcceptDankaiEnum();
     $accept2Dankai = $enum->getKey('2段階');
     $this->_dataFrom["accept_2dankai"] = $accept2Dankai;
     // 案件情報の単価タイプの値
     $enum = new PriceTypeCdEnum();
     $priceTeiritsu = $enum->getKey('定率');
     $this->_dataFrom["price_teiritsu"] = $priceTeiritsu;
     // UL項目
     $keys = $this->_nomalKeys;
     $isAccept2Dankai = false;
     $isPriceTeiritsu = false;
     if ($anken['accept_dankai'] == $accept2Dankai) {
         $keys = $this->_2dankaiKeys;
         $isAccept2Dankai = true;
     } else {
         if ($anken['price_type_cd'] == $priceTeiritsu) {
             $keys = $this->_teiritsuKeys;
             $isPriceTeiritsu = true;
         }
     }
     // オプションパラメータ一覧取得
     $option =& $m->Result_HotenUpload_getOptionParamList($ankenId);
     $this->_option =& $option;
     $this->_dataFrom["option"] =& $option;
     // 任意のIDの後ろに追加
     $cidIndex = array_search('client_user_id', $keys);
     foreach ($option as $k => $v) {
         $cidIndex++;
         array_splice($keys, $cidIndex, 0, $k);
     }
     $result = array();
     // ファイル読込み
     if (is_file($this->_tmpFilePath) == true) {
         $lines = file($this->_tmpFilePath);
         foreach ($lines as $index => $line) {
             // 空白行は無視
             if (strlen(trim($line)) == 0) {
                 continue;
             }
             // 文字コード変換
             $line = mb_convert_encoding($line, 'utf-8', 'cp932');
             // 配列に
             $values = explode(',', $line);
             // 1行を処理
             $d =& $this->actionLine($code, $isAccept2Dankai, $isPriceTeiritsu, $keys, $values);
             // 結果を取得
             if (empty($d['data']) == false) {
                 $result[$index + 1] =& $d;
             }
         }
     }
     // テンプレート変数の設定
     $this->_dataFrom['list'] =& $result;
     // カウンター値をテンプレートに渡す
     $this->_dataFrom['update_count'] =& $this->_updateCount;
     // ファイル削除
     if (is_file($this->_tmpFilePath) == true) {
         @unlink($this->_tmpFilePath);
     }
 }