Exemple #1
0
 /**
  * 売上金額項目・その他売上項目をマージしソートする
  */
 public function &getSalesDataAndEtcSalesDataSort(&$billing, &$etc)
 {
     $list = array_merge($billing, $etc);
     $as = new ArraySort();
     $as->keySort($list, 'sales_type_cd', true, 'syubetsu_cd', 'anken_id');
     $result = array();
     foreach ($list as $value) {
         if ($value['sales_type_cd'] == 1) {
             $header = "案件名";
         } else {
             $header = $value['syubetsu_name'];
         }
         // 売上項目毎に分類
         $result[$header][] = $value;
     }
     return $result;
 }
Exemple #2
0
 /**
  * 実行
  */
 protected function perform()
 {
     // 案件ID
     $ankenId = $this->_request['aid'];
     // モデル
     $m =& $this->_model;
     // フォーム初期化
     $m->initFormData();
     if (isset($this->_request['search']) == true || $this->_isDownload == true) {
         // 日にちの空データを作成
         $from = $this->_like['from'];
         $to = $this->_like['to'];
         $blank = DateManager::getArrayDaily($ankenId, $from, $to);
         // キャンペーンコード
         $code = $this->_anken['campaign_code'];
         // レポート種別
         $reportKind = $this->_like['report_kind'];
         // 該当メディア/メディア企業一覧取得
         $groupList =& $m->getGropuList($code, $this->_like);
         // PVデータ
         $dataPv =& $m->getDailyPv($code, $this->_like);
         // 成果データ
         $dataSeika =& $m->getDailySeika($code, $this->_like);
         if ($reportKind == 1) {
             ////////////////////
             // 総合
             ////////////////////
             // マージ
             $formData =& $m->counting($blank, $dataPv, $dataSeika);
             // テンプレート変数追加
             $this->_dataFrom['show'] = true;
             $this->_dataFrom['group'] =& $groupList;
             $this->_dataFrom['list'] =& $formData;
             $as = new ArraySort();
             if (is_array($groupList['media']) == true) {
                 $as->keySort($groupList['media'], 'id');
             }
             if (is_array($groupList['media_company']) == true) {
                 $as->keySort($groupList['media_company'], 'id');
             }
             $this->_dataFrom['search_group'] =& $groupList;
         } else {
             if ($reportKind == 2) {
                 ////////////////////
                 // メディア別
                 ////////////////////
                 $group = $groupList['media'];
             } else {
                 if ($reportKind == 3) {
                     ////////////////////
                     // メディア企業別
                     ////////////////////
                     $group = $groupList['media_company'];
                 }
             }
             if (count($group) > 0) {
                 // マージ
                 $formData =& $m->countingGroup($blank, $dataPv, $dataSeika, $group);
                 // テンプレート変数追加
                 $this->_dataFrom['show'] = true;
                 $this->_dataFrom['search_group'] =& $groupList;
                 $this->_dataFrom['group'] =& $group;
                 $this->_dataFrom['list'] =& $formData;
                 $as = new ArraySort();
                 if (is_array($groupList['media']) == true) {
                     $as->keySort($groupList['media'], 'id');
                 }
                 if (is_array($groupList['media_company']) == true) {
                     $as->keySort($groupList['media_company'], 'id');
                 }
                 $this->_dataFrom['search_group'] =& $groupList;
             }
         }
     }
     // モデル内の値をテンプレートに設定
     $d =& $m->getFormData();
     $this->appendDataFrom($d);
 }
Exemple #3
0
 /**
  * 実行
  */
 protected function perform()
 {
     // 案件ID
     $ankenId = $this->_request['aid'];
     // モデル
     $m =& $this->_model;
     // フォーム初期化
     $m->Result_ClientReportMedia_initFormData();
     // 基本情報
     $anken =& $m->getAnkenData($ankenId);
     $this->appendDataFrom($anken);
     if (isset($this->_request['search']) == true || $this->_isDownload == true) {
         // キャンペーンコード
         $code = $anken['campaign_code'];
         // メディア提携
         $mediaList =& $m->Result_ClientReportMedia_getMediaTeikeiList($code);
         // メディアごとPV集計
         $dataPv =& $m->Result_ClientReportMedia_getMediaPvCount($code, $this->_like);
         // メディアごと成果集計
         $dataSeika =& $m->Result_ClientReportMedia_getMediaActionAcceptCount($code, $this->_like);
         // マージ
         $data =& $m->Result_ClientReportMedia_merge($mediaList, $dataPv, $dataSeika);
         ////////////////////////////////
         // 拡張仕様
         // ASPID
         ////////////////////////////////
         $man = new ApsIdManager_52();
         foreach ($data as $k => $v) {
             $mediaId = intval($v['media_id']);
             $aspId = $man->getAspId($mediaId);
             $data[$k]['asp_id'] = $aspId;
         }
         // 計算
         $formData =& $m->Result_ClientReportMedia_counting($data);
         //----------------------------
         // 並び替え
         //----------------------------
         $isAsc = true;
         if ($this->_like['order_type'] == "2") {
             $isAsc = false;
         }
         $as = new ArraySort();
         $as->keySort($formData, $this->_like['order_kind'], $isAsc, 'media_id');
         // 小計行追加
         $formData =& $m->Result_ClientReportMedia_getTotal($formData);
         // テンプレート変数追加
         $this->_dataFrom['show'] = true;
         $this->_dataFrom['list'] =& $formData;
     }
     // モデル内の値をテンプレートに設定
     $d =& $m->getFormData();
     $this->appendDataFrom($d);
 }
Exemple #4
0
 /**
  * 実行
  */
 protected function perform()
 {
     // 案件ID
     $ankenId = $this->_request['aid'];
     // モデル
     $m =& $this->_model;
     // フォーム初期化
     $m->Result_ClientReportMedia_initFormData();
     // 基本情報
     $anken =& $m->getAnkenData($ankenId);
     $this->appendDataFrom($anken);
     if (isset($this->_request['search']) == true || $this->_isDownload == true) {
         // キャンペーンコード
         $code = $anken['campaign_code'];
         // メディア提携
         $mediaList =& $m->Result_ClientReportMedia_getMediaTeikeiList($code);
         // メディアごとPV集計
         $dataPv =& $m->Result_ClientReportMedia_getMediaPvCount($code, $this->_like);
         // メディアごと成果集計
         $dataSeika =& $m->Result_ClientReportMedia_getMediaActionAcceptCount($code, $this->_like);
         // マージ
         $data =& $m->Result_ClientReportMedia_merge($mediaList, $dataPv, $dataSeika);
         // 計算
         $formData =& $m->Result_ClientReportMedia_counting($data);
         //----------------------------
         // 並び替え
         //----------------------------
         $isAsc = true;
         if ($this->_like['order_type'] == "2") {
             $isAsc = false;
         }
         $as = new ArraySort();
         $as->keySort($formData, $this->_like['order_kind'], $isAsc, 'media_id');
         // 小計行追加
         $formData =& $m->Result_ClientReportMedia_getTotal($formData);
         // 平均行追加
         $formData =& $m->Result_ClientReportMedia_getAverage($formData);
         // テンプレート変数追加
         $this->_dataFrom['show'] = true;
         $this->_dataFrom['list'] =& $formData;
     }
     // モデル内の値をテンプレートに設定
     $d =& $m->getFormData();
     $this->appendDataFrom($d);
     //---------------------------------------
     // 流通売上合計金額表示設定の表示
     //---------------------------------------
     $this->_dataFrom["sales_distribution_amount_flg"] = $m->Result_ClientReportResult_GetSalesDistributionAmountFlag($ankenId);
     ///////////////////////////////////////////////
     // 拡張リンク用のカスタム処理
     ///////////////////////////////////////////////
     $tmpl = $m->Result_ClientReportMedia_getExtraLinkTmplPath($ankenId);
     $this->_dataFrom["extra_link_path"] = $tmpl;
     //---------------------------------------
     // レポートの表示/非表示制御
     //---------------------------------------
     $this->_dataFrom["disp"] =& $m->getReportDisp($ankenId, $this->_core->getLoginKind());
 }
Exemple #5
0
 /**
  * 実行
  */
 protected function perform()
 {
     // 案件ID
     $ankenId = $this->_request['aid'];
     // モデル
     $m =& $this->_model;
     //---------------------------------------
     // フッターのリンク
     //---------------------------------------
     $tmpl = $m->getExtraLinkTmplPath($ankenId);
     $this->_dataFrom["extra_link_path"] = $tmpl;
     // フォーム初期化
     $m->Result_ClientReportMedia_initFormData();
     // 基本情報
     $anken =& $m->getAnkenData($ankenId);
     $this->appendDataFrom($anken);
     if (isset($this->_request['search']) == true || $this->_isDownload == true) {
         // キャンペーンコード
         $code = $anken['campaign_code'];
         // メディア提携の企業
         $mediaCompanyList =& $m->Result_ClientReportMediaCompany_getMediaTeikeiCompanyList($code);
         // メディア企業ごとPV集計
         $dataPv =& $m->Result_ClientReportMediaCompany_getMediaPvCount($code, $this->_like);
         // メディアごと成果集計
         $dataSeika =& $m->Result_ClientReportMediaCompany_getMediaActionAcceptCount($code, $this->_like);
         // マージ
         $data =& $m->Result_ClientReportMediaCompany_merge($mediaCompanyList, $dataPv, $dataSeika);
         // 計算
         $formData =& $m->Result_ClientReportMediaCompany_counting($data);
         // 並び替え
         //----------------------------
         $isAsc = true;
         if ($this->_like['order_type'] == "2") {
             $isAsc = false;
         }
         $as = new ArraySort();
         $as->keySort($formData, $this->_like['order_kind'], $isAsc, 'media_company_id');
         // テンプレート変数追加
         $this->_dataFrom['show'] = true;
         $this->_dataFrom['list'] =& $formData;
     }
     // モデル内の値をテンプレートに設定
     $d =& $m->getFormData();
     $this->appendDataFrom($d);
 }
 /**
  * Multisort array
  * 
  * @param array|string $params
  * 
  * @return \ArrayObjectA
  * @see ArraySort::multisort
  */
 public function multisort($params)
 {
     return new static(ArraySort::multisort($this->getArrayCopy(), $params));
 }