<?php
class Shipment_ShipHkController extends Ec_Controller_Action {
  public function preDispatch() {
    $this->tplDir = 'shipment/views/order/';
  }

  public function indexAction() {
    echo Ec::renderTpl($this->tplDir . "ship_hk.tpl", 'layout');
  }

  /**
   * 订单数据导入
   * 
   */
  public function importAction() {
    $this->_userAuth = new Zend_Session_Namespace('userAuthorization');
    if ($this->_request->isPost()) {
        $param = $this->_request->getPost();
        //读取excel文件
        $orderData = Common_Common::getXLSDataNew($_FILES,'excel');
        if(isset($orderData['ask']) && $orderData['ask'] == '0'){
            echo '<script>window.parent.alertTip("'.$orderData['error'].'");</script>';
            die();
        }
        // if($orderData){
        //   foreach (array_splice($orderData,1) as  $value) {
        //     if(count($value)!=4){
        //       echo '<script>window.parent.alertTip("上传文件不合格.");</script>';
        //       die();
        //     }
        //     $data[] = $value;
        //   }
        // }
        $data = array_splice($orderData,1);
        foreach ($data as $key => $value) {
          if($value[0]==''){
            echo '<script>window.parent.alertTip("订单号不能为空,请检查.");</script>';
            die();
          }elseif($value[1]==''){
            echo '<script>window.parent.alertTip("地点不能为空,请检查.");</script>';
            die();
          }elseif($value[2]==''){
            echo '<script>window.parent.alertTip("时间不能为空,请检查.");</script>';
            die();
          }elseif($value[3]==''){
            echo '<script>window.parent.alertTip("轨迹信息不能为空,请检查.");</script>';
            die();
          }
          
          if(!preg_match("/^\d{4}[\-](0?[1-9]|1[012])[\-](0?[1-9]|[12][0-9]|3[01])(\s+(0?[0-9]|1[0-9]|2[0-3])\:(0?[0-9]|[1-5][0-9])\:(0?[0-9]|[1-5][0-9]))?$/", $value[2])){
            echo '<script>window.parent.alertTip("'.$value[2].'日期格式非法或右键设置日期格式:2001/3/7 0:00:00");</script>';return;
          }
        }
        $i = count($data);
        switch ($param['type']) {
          case '1':
            $type = array('香港已交付'=>'hk_interactive_time');
            break;
          case '2':
            $type = array('香港已派送'=>'hk_delivery_time');
            break;
        }
        foreach ($data as $k => $v) {
          $time = $v[2];
          $order = Service_Orders::getByField($v[0],'order_code');
          // if(empty($order)){
          //   // echo '<script>window.parent.alertTip("'.$v[0].'订单不存在.");</script>';
          // }
          $orderTimeRow = Service_OrderOperationTime::getByField(trim($v[0]),'order_code');
          // $shipOrderTracking = Service_ShipOrderTracking::getByField(trim($v[0]),'order_code');
          if(empty($orderTimeRow)){
            // echo '<script>window.parent.alertTip("'.$v[0].'订单不存在.");</script>';
            $i--;
          }else{
              //根据订单号判断其渠道是否为：BH-HKZT，是，所产生的跟踪信息里，操作人写0，否就按照现在的程序执行
              $userId = $this->_userAuth->userId;
              if( $order['sm_code'] == 'BH-HKZT' ) {
                $userId = 0;
              }
            foreach ($type as $key => $value) {
              $isTime = strtotime($orderTimeRow[$value]);
               if(empty($isTime) || $isTime <0){
                //插入数据
                $orderOperationTimeRow = array(
                  $value=>$time
                );
                Service_OrderOperationTime::update($orderOperationTimeRow,$orderTimeRow['oot_id']);
                $row = array(
                  'order_code'=>$v[0],
                  'tracking_number'=>$v[0],
                  'sot_location'=>$v[1],
                  'sot_description'=>$key.'-'.$v[3],
                  'status_desc'=>Service_Orders::getStatusText($order['order_status']),
                  'sot_add_time'=>$time,
                  'user_id'=> $userId
                );
                Service_ShipOrderTracking::add($row);
              }else{
                //更新数据
                $orderOperationTimeRow = array(
                  $value=>$time
                );
                Service_OrderOperationTime::update($orderOperationTimeRow,$orderTimeRow['oot_id']);
                $row = array(
                  'order_code'=>$v[0],
                  'tracking_number'=>$v[0],
                  'sot_location'=>$v[1],
                  'sot_description'=>$key.'-'.$v[3],
                  'status_desc'=>Service_Orders::getStatusText($order['order_status']),
                  'sot_add_time'=>$time,
                  'user_id'=> $userId
                );
                $shipOrderRow = array('order_code'=>$v[0],'sot_description'=>$key.'%');
                Service_ShipOrderTracking::AndUpdate($row,$shipOrderRow);
              }
            }
          }
        }
        echo '<script>window.parent.alertTip("共导入'.count($data).'个订单，成功'.$i.'个订单");</script>';
        die();
    }else{
      echo '<script>window.parent.alertTip("no Pass!");</script>';
      die();
    }
  }

  public function orderAction() {
    $fullPath = APPLICATION_PATH."/../data/xls/ship-hk.xls";
    //方法2
    $filename = basename($fullPath);
    header("Content-Type: APPLICATION/OCTET-STREAM");
    //Force the download
    $header="Content-Disposition: attachment; filename=".$filename.";";
    header($header);
    //  header("Content-Transfer-Encoding: binary");
    //  header("Content-Length: ".$len);
    echo file_get_contents($fullPath);
    exit;
  }

  
}
