Ejemplo n.º 1
0
    /**
     * 提携メディアリストを取得します。
     * @param string キャンペーンコード
     * @param array  検索条件
     * @param string 単価タイプ
     * @return array 提携メディアリスト
     */
    public function &Anken_TeikeiIndex_getAnkenTeikeiList($code, $like, $priceTypeCd)
    {
        $db =& $this->_core->getDB();
        $tables = new CampaignDbTables($code);
        $teikeiAnkenStatus = $like['teikei_media_status'];
        $hatena = str_repeat('?,', count($teikeiAnkenStatus));
        $hatena = trim($hatena, ',');
        $name_media = $tables->getTableName_Media();
        $name_anken = $tables->getTableName_Anken();
        $param = array();
        $where = "";
        if (empty($teikeiAnkenStatus) == false) {
            $where .= " and CA.nyuko_status in ({$hatena}) ";
            if (in_array(0, $teikeiAnkenStatus) == true) {
                $where .= " or CA.nyuko_status is null ";
            }
            $param = $teikeiAnkenStatus;
        }
        $sql = <<<SQL
select
CM.teikei_media_id,
C.media_company_id,
C.media_company_name,
M.media_id,
M.media_name,
CM.media_url,
CM.price,
CM.oroshi_price,
CM.teikei_from,
CM.teikei_to,
CM.extra_price,
CM.extra_oroshi,
CA.anken_send_flg,
CA.nyuko_send_flg,
CA.media_test_flg,
CA.keisai_test_flg,
CA.keisai_end_flg,
CA.anken_finish_flg,
CASE WHEN CA.nyuko_status is null THEN '0' ELSE CA.nyuko_status END as nyuko_status
from {$name_media} as CM
left join {$name_anken} as CA
on CM.teikei_media_id = CA.teikei_media_id
left join ald_anken_genko as G
on CM.anken_id = G.anken_id

inner join ald_media as M
on CM.media_id = M.media_id
inner join ald_media_company as C
on C.media_company_id = M.media_company_id
where 1
{$where}
order by CM.teikei_media_id
SQL;
        return $db->query($sql, $param);
    }