<?php
/**
 * @copyright ONE/DEPO Project
 * @license   PHP License 3.01 <http://www.php.net/license/3_01.txt>
 */

/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */

//require_once 'Pager.php';

/**
 * 出荷指示一覧
 *
 * @package     Admin_Ordermanage_Instruction_List
 * @author      netnee <mail@example.com>
 * @access      public
 */
class Admin_Ordermanage_Instruction_List_Export
{
    var $order;
    var $pagename;
    var $title;
    
    var $instructionlist;
    
    /**
     * execute
     *
     * @access  public
     */
    function execute()
    {
        $log =& LogFactory::getLog();
        $log->debug("Admin_Ordermanage_Instruction_Listが実行されました", "Admin_Ordermanage_Instruction_List#execute");
        $func_name = "Admin_Ordermanage_Instruction_List_Export#execute";
        
        $records = $this->order->getInstructionOrderEndList();
        
        if (!$records) {
            $log->debug("データがありません", $func_name);
            exit("データがありません");
        }
        
        $path = TEMP_DIR;
        $filename = "export.csv";
        $filepathname = $path.$filename;
                
        $records = $this->createCSV($records, $filepathname);
        

        $this->exportCSV($filepathname, $filename);
        unlink($filepathname);

        return 'success';
    }
    
    /**
     * CSVファイル作成
     *
     * @param object  $records      配列レコード
     * @param string  $filepathname ディレクトリパス付きファイル名
     * @return boolean 結果ステータス
     */
    function createCSV($records, $filepathname)
    {
        $tmp = array();

        // 更新前データから更新したデータだけ抜き出す
        foreach ( $records as $key => $val){
            //$send = ($val["depositdiv"]==3) ? "代引" : ($val["takkyubin"]==1) ? "宅急便" : "メール便";
            //$depo = ($val["depositdiv"]==1) ? "カード会社：". $this->cardcompany[$val[cardcompany]] : ($val["depositdiv"]==4) ? "支店番号：". $val["shitennumberkey"] ."口座番号：". $val["kouzanumberkey"] : '';
            $send = "";
            $sendcode = "";
            if($val["depositdiv"]==3) {
                $send = "コレクト";
                $sendcode = 2;
            } else if($val["takkyubin"]==1) {
                $send = "宅急便";
                $sendcode = 0;
            } else {
                $send = "メール便";
                $sendcode = 3;
            }

            $tmp[] = array($val["rackid"], $val["makeritemcd"], $val["jancd"], $val["itemnm"], $val["count"], $val["salestartdate"], $val["orderno"], $val["orderdate"],$sendcode, $send,
                                   (!empty($val["ordermember"])) ? $val["lastnm"]." ".$val["firstnm"] : $val["sendbuyer"], 
                                   $val["addressee"], $val["sendpostalcd"], 
                                   $val["prefnm"].$val["sendaddr1"].$val["sendaddr2"],
                                   $val["sendtelno1"]);
                           
        }

        $arr[] = array(
                '棚番ID','品番','JANコード','タイトル','数量',
                '発売日','受注番号','受注日', '配送コード', '配送',
                '購入者', '宛名','郵便番号', '送り先','送付先TEL');
                
        if (is_array($arr)) $records = array_merge($arr, $tmp);
        
        $fp = fopen($filepathname, 'w');
        for ($i = 0; $i < count($records); $i++) {
            fputcsv($fp, $records[$i]);
        }
        fclose($fp);
    }
    /**
     * CSVファイルブラウザ出力
     *
     * @param string  $filepathname ディレクトリパス付きファイル名
     * @param string  $filename     出力ファイル名
     * @return boolean 結果ステータス
     */
    function exportCSV($filepathname, $filename="export.csv")
    {
        $len = filesize($filepathname);
        header("Cache-Control: public");
        header("Pragma: public");
        header ("Content-Disposition: inline ; filename=$filename");
        header ("Content-type: text/octet-stream");
        header ("Content-Length: ". $len);
        $handle = fopen ($filepathname, "r");
        while (!feof ($handle)) {
            $buffer = fgets($handle, 4096);
            $buffer = mb_convert_encoding($buffer, "SJIS","UTF-8");
            echo $buffer;
        }
        fclose ($handle);

        return TRUE;
    }
}
?>
