/** * 売上金額項目・その他売上項目をマージしソートする */ 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; }
/** * 実行 */ 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); }
/** * 実行 */ 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); }
/** * 実行 */ 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()); }
/** * 実行 */ 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)); }