<?php

/**
 * @desc 业务处理类
 */
class Process_Box {

    public function __construct() {
        $this->_userId = Service_User::getUserId();
        $this->_date = date('Y-m-d H:i:s');
    }

    /*
      @param $field 上传文件输入框name
      @return $msg
     */
    public static function upload($field) {
        $customerAuth = new Zend_Session_Namespace("customerAuth");
        $customer = $customerAuth->data;
        $customerId = $customer['id'];
        //print_r($customer);
        //exit('sss');
        $path = APPLICATION_PATH . '/../data/boxupload/';
        $path.= $customerId;
        if (!file_exists($path)) {
            if (!mkdir($path, 0700, true)) {
                $result = array("ask" => 0, "message" => "上传文件失败失败", 'error' => array('上传目录不存在创建文件目录失败'));
                return $result;
            }
        }
        $config = array();
        $config['upload_path'] = $path;
        $config['allowed_types'] = 'xls|xlsx|csv';
        $config['max_size'] = '10000';
        $config['encrypt_name'] = true;
        $upload = new Common_UploadFile($config);
        $upload->set_upload_path($path);
        if (!$upload->do_upload($_FILES, $field)) {
            $result['ask'] = '0';
            $result['message'] = '上传文件失败';
            $result['error'] = $upload->display_errors();
            return $result;
            exit;
        }

        $resultArray = $upload->data();
        $full_path = $resultArray['full_path'];
        if (empty($resultArray) || empty($full_path)) {
            $result = array("ask" => 0, "message" => "上传文件失败失败", 'error' => array('数据不存在'));
            return $result;
            exit;
        }
        switch ($resultArray['file_ext']) {
            case ".xls":
            case ".xlsx":
                $resultArray = Common_Upload::readEXCEL($full_path);
                break;
            case ".csv":
                $resultArray = Common_Upload::readCSV($full_path);
                break;
            default:
                $resultArray = array();
                break;
        }
         @unlink($full_path);
        if (empty($resultArray) || !is_array($resultArray)) {
            $result = array("ask" => 0, "message" => "文件内容不符合格式或数据为空.", 'error' => array());
            //echo json_encode($result);
            //exit;
        }else{
            if(count($resultArray[0])!=2||($resultArray[0][0]!="箱子代码"||$resultArray[0][1]!="类型")){
                $result['ask'] = "0";
                $result['message'] = "文件格式错误,请下载模板";
                return $result;
            }
            
        }
        return $resultArray;
    }
    /*
     * @return $uploadData 
     * 验证通过message为0，错误为错误信息
     */
    public function dealAndValiData($uploadData){
        array_shift($uploadData);
        $codeArray=array();
        $boxType=array(
            '大'=>'0',
            '中'=>'1',
            '小'=>'2'
        );
        foreach($uploadData as $key=>$value){
             $uploadData[$key]['message']=0;
             $boxCode=trim($value[0]);
             $uploadBoxType=trim($value[1]);
             $uploadData[$key]['boxCode']=$boxCode;
             if($boxCode===''||$boxCode===null){
                  $uploadData[$key]['message']='箱号不能为空';
                  continue;
             }
            if(!array_key_exists($uploadBoxType, $boxType)){
                  $uploadData[$key]['message']='箱子类型不正确';
                  continue;
            }
            $uploadData[$key]['boxType']=$boxType[$uploadBoxType];
            if(Service_Box::getByField($boxCode,'box_code','box_id')){
                $uploadData[$key]['message']='箱号已存在';
            }
            if(isset($codeArray[$boxCode])){
                 $uploadData[$key]['message']='与第'.$codeArray[$boxCode]=$key.'行箱号重复';
            }else{
                $codeArray[$boxCode]=$key;
            }
        }
        return $uploadData;
    }

}
