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

/**
 * ダウンロード商品関連
 *
 * @package     Onedepo.Logic.Itemdownload
 * @author      netnee <>
 * @access      public
 */
class Onedepo_Logic_Itemdownload
{
    //var $dbaccess;
    var $db_down;
    
    /**
    * work ディレクトリにファイルが存在しているか確認
    *
    * @param item   int 確認対象の商品コード
    *        struct int 確認対象の構成コード
    */
    function checkWorkFile($itemcd, $structcd)
    {
        $log =& LogFactory::getLog();
        $log->debug("debug", "Onedepo_Logic_Itemdownload#checkWorkFile");
        
        foreach (glob(IMAGE_WORKDIR ."/".$itemcd ."_". $structcd .".*", GLOB_NOSORT) as $filename) {
            return true;
        }
        return false;
    }
    
    /**
    * 既に商品ファイルが存在しているか確認
    *
    * @param item   int 確認対象の商品コード
    *        struct int 確認対象の構成コード
    */
    function checkItemFile($itemcd, $structcd)
    {
        $log =& LogFactory::getLog();
        $log->debug("debug", "Onedepo_Logic_Itemdownload#checkItemFile");
        
        foreach (glob(IMAGE_DIR ."/7/".$itemcd ."_". $structcd .".*", GLOB_NOSORT) as $filename) {
            return true;
        }
        return false;
    }
    
    
    /**
    * work ディレクトリにあるファイルを削除
    *
    * @param item   int 削除対象の商品コード
    *        struct int 削除対象の構成コード
    */
    function delWorkFile($itemcd, $structcd)
    {
        $log =& LogFactory::getLog();
        $log->debug("debug", "Onedepo_Logic_Itemdownload#delWorkFile");
        
        foreach (glob(IMAGE_WORKDIR ."/".$itemcd ."_". $structcd .".*", GLOB_NOSORT) as $filename) {
            @unlink($filename);
        }
    }
    
    /**
    * 登録されているファイルを削除
    *
    * @param item   int 削除対象の商品コード
    *        struct int 削除対象の構成コード
    */
    function delItemFile($itemcd, $structcd)
    {
        $log =& LogFactory::getLog();
        $log->debug("debug", "Onedepo_Logic_Itemdownload#delItemFile");
        
        foreach (glob(IMAGE_DIR ."/7/". $itemcd ."_". $structcd .".*", GLOB_NOSORT) as $filename) {
            @unlink($filename);
        }
    }
    
    /**
    * work ディレクトリから任意のディレクトリにファイルをコピー
    *
    * @param $itemcd      int     処理区分
    * @param $structcd    int     移動対象のコード
    */
    function setItemFile($itemcd, $structcd)
    {
        $log =& LogFactory::getLog();
        $log->debug("debug", "Onedepo_Logic_Itemdownload#setItemFile");
        
        $filename = glob(IMAGE_WORKDIR .'/'. $itemcd ."_". $structcd .".*", GLOB_NOSORT);
        $pathinfo = pathInfo($filename[0]);
        
        $from = IMAGE_WORKDIR ."/". $pathinfo['basename'];
        $to = IMAGE_DIR ."/7/". $pathinfo['basename'];
        
        $log->debug("debug : file " .$to, "Onedepo_Logic_Itemdownload#setItemFile");
        
        //コピーできたら、workファイル削除
        if( is_file($from) ) {
            if( copy($from, $to) ) {
                unlink($from);
            }
        }
        
        $log->debug("debug : execute true", "Onedepo_Logic_Itemdownload#setItemFile");
        return true;
    }
    

    /**
     * DBのファイル有無フラグを変更
     *
     * @param       $itemcd    商品コード
     *              $structcd  構成コード
     *              $existence ファイル有無フラグ
     *
     * @return      成功:true  失敗:エラーメッセージ
     *
     * @author      netnee Watanabe <hiroshi.watanabe@netnee.jp>
     * @access      public
     */
    function setFileExistence($itemcd, $structcd, $existence, $updcnt) {
        $log =& LogFactory::getLog();
        $func_name = "Onedepo_Logic_Itemdownload#setFileExistence";
        
        // 現在のレコード取得
        $record = $this->db_down->select($itemcd, $structcd);
        
        // 更新
        $data = $this->db_down->update($itemcd, $structcd, $existence, $record['dlcount'], 
            $record['dlperioddays'], $record['comment'], $updcnt);
        return $data;
    }

}
?>