/**
  * 
  * @param type $emplog
  * @return array
  */
 private function getSumData($emplog, $stores, $empname, $qry_dateS, $qry_dateE)
 {
     //畫面上的陣列
     $colAry = array();
     //年月
     $pdate = substr($qry_dateS, 0, 6);
     //每一行的陣列
     $row = array();
     //合計陣列
     $sum = TbpPerformParamRpt08::model()->getRptTitle();
     if (isset($sum)) {
         foreach ($sum as $key => $value) {
             $sum[$key] = 0;
         }
     }
     //全域變數
     $store = '';
     //如果撈出的結果>0,就先把第一筆資料先放進去
     if (count($emplog > 0)) {
         //讓全域變數等於第一筆資料的門市
         $store = $emplog[0]['storecode'];
         $row['storename'] = $emplog[0]['storename'];
         $row['storecode'] = $emplog[0]['storecode'];
         $row['empname'] = $empname;
         $row['pdate'] = $pdate;
     }
     //開始對每一筆資料跑loop
     for ($i = 0; $i < count($emplog); $i++) {
         //如果門市=第一筆資料的門市,就把num填入服務項目的欄位
         if ($emplog[$i]['storecode'] == $store) {
             $row['area'] = $stores[$emplog[$i]['storecode']];
             $row[$emplog[$i]['serviceno']] = $emplog[$i]['num'];
             $row['empname'] = $empname;
         } else {
             //跑完一天之後push進畫面
             array_push($colAry, $row);
             //把row清空,再把全域變數換成下一間門市
             $row = array();
             $store = $emplog[$i]['storecode'];
             $row['area'] = $stores[$emplog[$i]['storecode']];
             $row['storecode'] = $emplog[$i]['storecode'];
             $row['storename'] = $emplog[$i]['storename'];
             $row['pdate'] = $pdate;
             $row[$emplog[$i]['serviceno']] = $emplog[$i]['num'];
         }
         //合計
         if (!isset($sum[$emplog[$i]['serviceno']])) {
             $sum[$emplog[$i]['serviceno']] = 0;
         }
     }
     //最後一天push進畫面
     array_push($colAry, $row);
     $peform_service = TbsService::model()->findAllByAttributes(array('type1' => '1'));
     $assist_service = TbsService::model()->findAllByAttributes(array('type1' => '2'));
     // 利用 col 把每一個ARRAY的值丟進入
     //'A01'->'10','B01'->0...
     for ($j = 0; $j < count($colAry); $j++) {
         $colAry[$j] = $this->setRpt08RowData($colAry[$j], $colAry[$j], $peform_service, $assist_service);
         //合計
         foreach ($sum as $key => $value) {
             if (isset($colAry[$j][$key])) {
                 $sum[$key] = $sum[$key] + $colAry[$j][$key];
             }
         }
     }
     $tbpPerforms = TbpPerform::model()->findAllByAttributes(array(), $condition = "pdate between '{$qry_dateS}' and '{$qry_dateE}' ");
     // 建立storecode->remit的array
     $totalAry = array();
     $outputAry = array();
     $remitAry = array();
     $realRemitAry = array();
     //            $realTypeAry = array();
     $realMemoAry = array();
     $sumTotal = array();
     $sumOutput = array();
     $sumRemit = array();
     $sumRealRemit = array();
     //            $sumRealType = array();
     $sumRealMemo = array();
     foreach ($tbpPerforms as $perform) {
         if (isset($sumTotal[$perform->storecode])) {
             $sumTotal[$perform->storecode] = $sumTotal[$perform->storecode] + $perform->total;
         } else {
             $sumTotal[$perform->storecode] = $perform->total;
         }
         if (isset($sumOutput[$perform->storecode])) {
             $sumOutput[$perform->storecode] = $sumOutput[$perform->storecode] + $perform->output;
         } else {
             $sumOutput[$perform->storecode] = $perform->output;
         }
         if (isset($sumRemit[$perform->storecode])) {
             $sumRemit[$perform->storecode] = $sumRemit[$perform->storecode] + $perform->remit;
         } else {
             $sumRemit[$perform->storecode] = $perform->remit;
         }
         if (isset($sumRealRemit[$perform->storecode])) {
             $sumRealRemit[$perform->storecode] = $sumRealRemit[$perform->storecode] + $perform->realremit;
         } else {
             $sumRealRemit[$perform->storecode] = $perform->realremit;
         }
         // 備註
         if (isset($sumRealMemo[$perform->storecode])) {
             $str = $sumRealMemo[$perform->storecode];
             if ($str != '' && $perform->realmemo != '') {
                 $str = $str . ', ' . '[' . $perform->pdate . ']' . $perform->realmemo;
             } elseif ($str == '' && $perform->realmemo != '') {
                 $str = '[' . $perform->pdate . ']' . $perform->realmemo;
             }
             $sumRealMemo[$perform->storecode] = $str;
         } else {
             if ($perform->realmemo == '') {
                 $sumRealMemo[$perform->storecode] = $perform->realmemo;
             } else {
                 $sumRealMemo[$perform->storecode] = '[' . $perform->pdate . ']' . $perform->realmemo;
             }
         }
         $totalAry[$pdate . $perform->storecode] = $sumTotal[$perform->storecode];
         $outputAry[$pdate . $perform->storecode] = $sumOutput[$perform->storecode];
         $remitAry[$pdate . $perform->storecode] = $sumRemit[$perform->storecode];
         $realRemitAry[$pdate . $perform->storecode] = $sumRealRemit[$perform->storecode];
         $realMemoAry[$pdate . $perform->storecode] = $sumRealMemo[$perform->storecode];
     }
     // 放匯款金額進 $colAry
     for ($j = 0; $j < count($colAry); $j++) {
         $key = $colAry[$j]['pdate'] . $colAry[$j]['storecode'];
         // 取得
         $total = $totalAry[$key];
         $output = $outputAry[$key];
         $remit = $remitAry[$key];
         $realremit = $realRemitAry[$key];
         //                $realtype = $realTypeAry[$key];
         $realmemo = $realMemoAry[$key];
         // 填入
         $colAry[$j]['total'] = $total;
         $colAry[$j]['output'] = $output;
         $colAry[$j]['remit'] = $remit;
         $colAry[$j]['realremit'] = $realremit;
         //                $colAry[$j]['realtype'] = $realtype;
         $colAry[$j]['realmemo'] = $realmemo;
         // 合計
         if (isset($sum['total'])) {
             $sum['total'] = $sum['total'] + $total;
         } else {
             $sum['total'] = $total;
         }
         if (isset($sum['output'])) {
             $sum['output'] = $sum['output'] + $output;
         } else {
             $sum['output'] = $output;
         }
         if (isset($sum['remit'])) {
             $sum['remit'] = $sum['remit'] + $remit;
         } else {
             $sum['remit'] = $remit;
         }
         if (isset($sum['realremit'])) {
             $sum['realremit'] = $sum['realremit'] + $realremit;
         } else {
             $sum['realremit'] = $realremit;
         }
         if (isset($sum['realmemo'])) {
             $str = $sum['realmemo'];
             if ($str != '' && $realmemo != '') {
                 $str = $str . ', ' . $realmemo;
             } elseif ($str == '' && $realmemo != '') {
                 $str = $realmemo;
             }
             $sum['realmemo'] = $str;
         } else {
             $sum['realmemo'] = $realmemo;
         }
     }
     array_push($colAry, $sum);
     return $colAry;
 }
 public function actionExport()
 {
     // 用以計算開始/結束時間之變數
     $time_start = microtime(true);
     //ini_set('memory_limit', '256M');
     //ini_set('max_execution_time', '300');
     // Sleep for a while
     usleep(100);
     //得到起始 結束的年月日
     $qry_dateS = date('Ymd');
     $qry_dateE = date('Ymd');
     $qry_area = "";
     //區域
     $qry_store = "";
     // 門市
     $qry_serviceno = array();
     //服務項目
     $serviceno_seq = array();
     //服務項目順序
     //預設取消匯出初始值
     $cancel_export = false;
     //預設查詢異動初始值
     $qry_move = false;
     if (isset($_POST['qry_dateS'])) {
         $qry_dateS = $_POST['qry_dateS'];
     }
     if (isset($_POST['qry_dateE'])) {
         $qry_dateE = $_POST['qry_dateE'];
     }
     if (isset($_POST['qry_area'])) {
         $qry_area = $_POST['qry_area'];
     }
     if (isset($_POST['qry_store'])) {
         $qry_store = $_POST['qry_store'];
     }
     if (isset($_POST['cancel_export'])) {
         $cancel_export = $_POST['cancel_export'];
     }
     if (isset($_POST['qry_move'])) {
         $qry_move = $_POST['qry_move'];
     }
     // 篩選條件初始的預設值
     $default_serviceno = array();
     $tbpParam = TbpPerformOut01::model()->findByAttributes(array('name' => 'ching_hang'));
     if ($tbpParam != NULL) {
         $default_serviceno = explode(",", $tbpParam->item);
         $serviceno_seq = explode(",", $tbpParam->sequence);
     }
     //  篩選條件初始的預設值
     $qry_serviceno = $default_serviceno;
     unset($default_serviceno);
     // 畫面呈現的表格欄位, col是欄位名稱, title是欄位顯示的中文字
     $col = array();
     $title = array();
     //            $col = $qry_serviceno;
     //
     //            // 取得預設報表抬頭
     //            $title = TbpPerformOut01::model()->getRptTitle($col);
     //
     //            // 設定報表抬頭
     //            foreach ($serviceno as $row) {
     //                $title[$row->serviceno] = $row->cname;
     //            }
     //正航匯入title
     if (count($serviceno_seq) != 0) {
         // 將指定的順序放進去, 再重新排序
         $col = array_combine($serviceno_seq, $qry_serviceno);
         ksort($col);
     } else {
         //models預設好的col
         $col = TbpPerformOut01::model()->getRemitCol();
     }
     unset($serviceno_seq);
     unset($qry_serviceno);
     // 取得預設報表抬頭
     $title = TbpPerformOut01::model()->getRemittitle();
     // 輸出在畫面上的陣列
     $colAry = array();
     //店編對應區域名稱的陣列
     $stores = array();
     //儲存篩選出來的門市
     $tbsStroes = array();
     //儲存塞選出的門市的店編
     $sqlStroe = array();
     //如果有選門市,就只選出那一家門市
     if ($qry_store != '') {
         $tbsStroes = TbsStore::model()->findAllByAttributes(array('storecode' => $qry_store));
     } elseif ($qry_area != '') {
         $tbsStroes = TbsStore::model()->findAllByAttributes(array('area_id' => $qry_area));
     } else {
         $tbsStroes = TbsStore::model()->findAll();
     }
     foreach ($tbsStroes as $store) {
         //找出篩選出的門市的區域代碼
         $area = TbsArea::model()->findByPK($store->area_id);
         if ($area != NULL) {
             //push店編
             array_push($sqlStroe, $store->storecode);
             //店編對應區域名稱
             $stores[$store->storecode] = $area->areaname;
         }
     }
     // 查詢用的SQL
     $qryStr = '';
     //如果有選門市或區域就需要sql=AND storecode in('007001',007002')
     if ($qry_store != '' or $qry_area != '') {
         //sql=sql.in('007001')因為只有一筆的時候沒有' , '  所以直接把店編放進去
         if (count($sqlStroe) > 0) {
             $qryStr = " AND storecode in ('{$sqlStroe['0']}'";
             //如果門市>1,就需要' , '
             if (count($sqlStroe) > 1) {
                 for ($i = 1; $i < count($sqlStroe); $i++) {
                     $qryStr = $qryStr . ",'{$sqlStroe[$i]}'";
                 }
             }
             $qryStr = $qryStr . ")";
         }
     }
     $fileName = '';
     //按下查詢
     if (isset($_POST['qry']) or isset($_POST['export'])) {
         $sql = "( SELECT pdate, storecode, storename, serviceno, sum(num) as num FROM tbp_perform_emp_log " . "WHERE pdate BETWEEN '{$qry_dateS}' AND '{$qry_dateE}' {$qryStr} AND num !=0 " . "GROUP BY pdate, storecode, storename, serviceno ORDER BY pdate, storecode ,serviceno) ";
         $sql2 = "( SELECT pdate, storecode, storename, serviceno, sum(num) as num FROM tbp_perform_log " . "WHERE pdate BETWEEN '{$qry_dateS}' AND '{$qry_dateE}' {$qryStr} AND num !=0 " . "GROUP BY pdate, storecode, storename, serviceno ORDER BY pdate, storecode ,serviceno) ";
         $sql = $sql . "UNION" . $sql2;
         //合併
         $sql = $sql . "order by pdate, storecode, serviceno";
         //一定要照pdate排序,因為loop要照日期去跑
         $emplog = Yii::app()->db->createCommand($sql)->queryAll();
         if ($emplog != NULL && count($emplog) > 0) {
             $colAry = $this->getDailyData($emplog);
             Yii::app()->user->setFlash('success', '以日期區間' . $qry_dateS . ' ~ ' . $qry_dateE . ' 查詢成功!合計' . count($colAry) . '筆資料');
         } else {
             Yii::app()->user->setFlash('error', '以日期區間' . $qry_dateS . ' ~ ' . $qry_dateE . ' 查無資料');
         }
         unset($emplog);
         if (isset($_POST['export'])) {
             $excelname = $qry_dateS . '-' . $qry_dateE;
             $fileName = $this->exportEXCEL($excelname, $col, $title, $colAry);
             $pdate = array();
             $storecode = array();
             //匯入成功
             if (isset($fileName)) {
                 if (count($colAry) > 0) {
                     for ($i = 0; $i < count($colAry); $i++) {
                         //給sql查詢條件
                         array_push($pdate, $colAry[$i]['pdate']);
                         array_push($storecode, $colAry[$i]['storecode']);
                     }
                     $_pdatestr = "'" . implode("','", $pdate) . "'";
                     //每個日期加入單引號為了sql in查詢使用
                     $arr1 = array_unique(explode(',', $_pdatestr));
                     //將重複日期刪除只保留一個的array
                     $_pdatestr = implode(',', $arr1);
                     //再將不重複日期轉成字串
                     $_storecodestr = "'" . implode("','", $storecode) . "'";
                     //每個店編加入單引號為了sql in查詢使用
                     $arr2 = array_unique(explode(',', $_storecodestr));
                     //將重複店編刪除只保留一個的array
                     $_storecodestr = implode(',', $arr2);
                     //再將不重複店編轉成字串
                     //不只一筆所以用findAllByAttributes
                     $isExist = TbpPerform::model()->findAllByAttributes(array(), $conditon = " pdate IN ({$_pdatestr}) and storecode IN ({$_storecodestr}) ORDER BY pdate DESC ");
                     //將匯入日期、店編符合DB條件的,則opt2設定為1
                     if (isset($isExist) and count($isExist) > 0) {
                         for ($i = 0; $i < count($isExist); $i++) {
                             $isExist[$i]->opt2 = 1;
                             $isExist[$i]->save();
                         }
                     }
                 }
             }
             unset($pdate);
             unset($storecode);
             //  CVarDumper::dump($remitAry,10,true);
             //  $col = array();
             //  $title = array();
             $colAry = array();
             // unset($colAry);
             $clickUrl = "<a href='" . Yii::app()->request->baseUrl . '/' . "protected" . '/' . "tmp" . '/' . $fileName . "'>點我下載</a>";
             Yii::app()->user->setFlash('success', "正航匯入成功!請點擊下載 " . $clickUrl);
         } else {
         }
         //Yii::app()->user->setFlash('success', "查詢成功!共計 ".count($colAry)."筆資料!");
     }
     //if(isset($_POST['qry']) OR isset($_POST['export'])
     //查詢異動array
     $qry_move_result = array();
     if (isset($_POST['qry_move']) or isset($_POST['move_export'])) {
         $qry_move = true;
         //查詢日期區間被已被匯出資料
         $isExist = TbpPerform::model()->findAllByAttributes(array(), $conditon = "  opt2=1 AND uemp IS NOT  NULL AND opt3 IS NULL ORDER BY pdate ,storecode ");
         foreach ($isExist as $value) {
             $temp = array('pdate' => $value->pdate, 'storecode' => $value->storecode, 'storename' => $value->storename, 'total' => $value->total, 'output' => $value->output, 'remit' => $value->remit, 'cemp' => $value->cemp, 'ctime' => $value->ctime, 'uemp' => $value->uemp, 'utime' => $value->utime);
             array_push($qry_move_result, $temp);
         }
         if (isset($qry_move_result) && count($qry_move_result) > 0) {
             Yii::app()->user->setFlash('success', "查出異動資料!共計 " . count($qry_move_result) . "筆資料。");
         } else {
             Yii::app()->user->setFlash('error', "沒有任何異動資料!");
         }
         // 查詢異動用的SQL
         $qrymoveStr = '';
         //為了sql 使用 in(20140506,...)
         $dateStr = '';
         //為了sql 使用 in(007002,...)
         $storecodeStr = '';
         //日期array
         $sdate = array();
         //店編array
         $sstorecode = array();
         //先把$qry_move_result的日期與店編曲出來
         if (count($qry_move_result) > 0) {
             for ($i = 0; $i < count($qry_move_result); $i++) {
                 array_push($sdate, $qry_move_result[$i]['pdate']);
                 array_push($sstorecode, $qry_move_result[$i]['storecode']);
             }
             //每個日期加入單引號為了sql in查詢使用
             if (count($sdate) > 0) {
                 $dateStr = "'" . implode("','", $sdate) . "'";
             }
             //每個店編加入單引號為了sql in查詢使用
             if (count($sstorecode) > 0) {
                 $storecodeStr = "'" . implode("','", $sstorecode) . "'";
             }
         }
         //if(count($qry_move_result)>0)
         //給sql查詢日期與店編
         $qrymoveStr = $qrymoveStr . "pdate IN ({$dateStr}) AND storecode IN ({$storecodeStr})";
         //sql字串清空
         $sql = '';
         if ($dateStr != '' and $storecodeStr != '') {
             $sql = "( SELECT pdate, storecode, storename, serviceno, sum(num) as num FROM tbp_perform_emp_log " . "WHERE {$qrymoveStr} AND num !=0 " . "GROUP BY pdate, storecode, storename, serviceno ORDER BY pdate, storecode ,serviceno) ";
             $sql2 = "( SELECT pdate, storecode, storename, serviceno, sum(num) as num FROM tbp_perform_log " . "WHERE {$qrymoveStr} AND num !=0 " . "GROUP BY pdate, storecode, storename, serviceno ORDER BY pdate, storecode ,serviceno) ";
             $sql = $sql . "UNION" . $sql2;
             //合併
             $sql = $sql . "order by pdate, storecode, serviceno";
             //一定要照pdate排序,因為loop要照日期去跑
             $emplog = Yii::app()->db->createCommand($sql)->queryAll();
             if ($emplog != NULL && count($emplog) > 0) {
                 $colAry = $this->getDailyData($emplog);
             }
         }
         unset($emplog);
         if (isset($_POST['move_export'])) {
             $excelname = "move_table";
             $fileName = $this->exportEXCEL($excelname, $col, $title, $colAry);
             //  CVarDumper::dump($remitAry,10,true);
             //  $col = array();
             // $title = array();
             $colAry = array();
             $clickUrl = "<a href='" . Yii::app()->request->baseUrl . '/' . "protected" . '/' . "tmp" . '/' . $fileName . "'>點我下載</a>";
             Yii::app()->user->setFlash('success', "異動表匯入Excel成功!請點擊下載 " . $clickUrl);
         }
     }
     // if(isset($_POST['qry_move']) OR isset($_POST['move_export']))
     //取消正航匯出array
     $cancel_result = array();
     //取消匯出正航
     if (isset($_POST['cancel_export'])) {
         $cancel_export = true;
         //查詢日期區間被已被匯出資料
         $isExist = TbpPerform::model()->findAllByAttributes(array(), $conditon = " pdate BETWEEN {$qry_dateS} AND {$qry_dateE} AND opt2=1 ORDER BY pdate ,storecode ");
         foreach ($isExist as $value) {
             $temp = array('pdate' => $value->pdate, 'storename' => $value->storename, 'total' => $value->total, 'output' => $value->output, 'remit' => $value->remit, 'realremit' => $value->realremit, 'realmemo' => $value->realmemo, 'status' => '成功');
             array_push($cancel_result, $temp);
         }
         //將日期區間DB條件的,則opt2設定為NULL
         if (isset($isExist) and count($isExist) > 0) {
             for ($i = 0; $i < count($isExist); $i++) {
                 $isExist[$i]->opt2 = NULL;
                 $isExist[$i]->save();
             }
             Yii::app()->user->setFlash('success', "取消匯出成功!共計 " . count($isExist) . "筆資料!");
         } else {
             Yii::app()->user->setFlash('error', "查無任何資料!");
         }
     }
     //if(isset($_POST['cancel_export']))
     // 用以計算開始/結束時間之變數
     $time_end = microtime(true);
     $computetime = $time_end - $time_start;
     try {
         $this->render('export', array('qry_dateS' => $qry_dateS, 'qry_dateE' => $qry_dateE, 'qry_area' => $qry_area, 'qry_store' => $qry_store, 'col' => $col, 'title' => $title, 'colAry' => $colAry, 'fileName' => $fileName, 'computetime' => $computetime, 'cancel_export' => $cancel_export, 'cancel_result' => $cancel_result, 'qry_move' => $qry_move, 'qry_move_result' => $qry_move_result));
     } catch (Exception $exc) {
         echo $exc->getTraceAsString();
     }
 }
 private function createPerformData($store, $daymonth)
 {
     // 每一列業績
     $models = array();
     //業績查詢
     if (isset($_POST['qry_perform'])) {
         $models = TbpPerform::model()->findAllByAttributes(array(), $condition = "MID(pdate,1,6) = '{$daymonth}' AND storecode= '{$store->storecode}' ");
         if (isset($models) && count($models) > 0) {
             Yii::app()->user->setFlash('success', '以下為查詢結果!');
         } else {
             Yii::app()->user->setFlash('error', '查無當月業績!');
         }
     } elseif (isset($_POST['qry_output'])) {
         //支出查詢
         $models = TbpPerform::model()->findAllByAttributes(array(), $condition = "MID(pdate,1,6) = '{$daymonth}' AND storecode= '{$store->storecode}' AND output > 0 ");
         if (isset($models) && count($models) > 0) {
             Yii::app()->user->setFlash('success', '以下為查詢結果!');
         } else {
             Yii::app()->user->setFlash('error', '當月無零用金輸出金額!');
         }
     } else {
         Yii::app()->user->setFlash('notice', '請選擇年月,以查詢業績謝謝!');
     }
     return $models;
 }
 /**
  * 新增修改 門市支出明細
  */
 public function actionCreateandupdate()
 {
     $storecode = '';
     $pdate = '';
     if (isset($_GET['storecode'])) {
         $storecode = $_GET['storecode'];
     }
     //門市編號
     if (isset($_GET['pdate'])) {
         $pdate = $_GET['pdate'];
     }
     //門市日期
     // 是否存在(合法)
     $isExist = TRUE;
     // 門市
     $store = '';
     // 門市當天業績
     $perform = '';
     // 錯誤訊息
     $errorMsg = '';
     // 畫面顯示
     $result = array();
     //如果有門市編號及日期不為空, 就查出那一家門市資料
     if ($storecode != '' && $pdate != '') {
         $store = TbsStore::model()->findByAttributes(array('storecode' => $storecode));
         if (isset($store)) {
             //取得目前IP
             $myip = $this->getMyip();
             //$myip='211.75.115.206';
             //假ip,預設高雄聯興
             //            $myip='60.249.143.210';
             // 比較登入者門市的IP,是否合法
             if (!strstr($store->storeip1, $myip)) {
                 $isExist = FALSE;
                 $errorMsg = "錯誤!所查詢之資料不屬於貴門市 [ IP: {$myip} ] ~請洽資訊組, 分機306<br>";
             }
             $perform = TbpPerform::model()->findByAttributes(array('pdate' => $pdate, 'storecode' => $storecode, 'opt1' => 1));
             if (!isset($perform)) {
                 $isExist = FALSE;
                 $errorMsg = $errorMsg . "錯誤!所查詢之門市[{$store->storename}]、日期[{$pdate}]無業績資料!";
             } elseif ($perform->output < 1) {
                 $isExist = FALSE;
                 $errorMsg = $errorMsg . "錯誤!所查詢之門市[{$store->storename}]、日期[{$pdate}]當天支出為 0 !";
             }
         } else {
             $isExist = FALSE;
             $errorMsg = "錯誤!所查詢之門市 [ {$storecode} ] 不存在~請洽資訊組, 分機306";
         }
     } else {
         $isExist = FALSE;
         $errorMsg = '錯誤!不正確的進入方式~請重新開啟EIP~若一直出現此情況,請洽資訊組, 分機306';
     }
     // 檢核日期是否合乎規範
     if ($isExist) {
         $isExist = $this->checkDate($pdate);
         if (!$isExist) {
             $errorMsg = $errorMsg . '已超過門市可修改門市支出明細時間,請聯絡會計組進行處理!!';
         }
     }
     // 預設筆數, 由公用變數取得
     $default_num = 0;
     if (isset($_POST['default_num']) && $_POST['default_num'] > 0) {
         $default_num = $_POST['default_num'];
         Yii::app()->user->setFlash('success', '修改顯示筆數成功,請依照主、次、細項點選,金額必須填入!!');
     } else {
         $tbpParam = TbpParam::model()->findByAttributes(array('param' => 'output_num'));
         if ($tbpParam != NULL) {
             $default_num = $tbpParam->pvalue;
         }
     }
     //針對F5重複刷新做解決
     //The second parameter on print_r returns the result to a variable rather than displaying it
     $RequestSignature = md5($_SERVER['REQUEST_URI'] . $_SERVER['QUERY_STRING'] . print_r($_POST, true));
     if (Yii::app()->session['LastRequest'] == $RequestSignature) {
         //echo $RequestSignature ;
         // 畫面顯示
         $result = TbpOutputLog::model()->findAllByAttributes(array('pdate' => $perform->pdate, 'storecode' => $perform->storecode));
     } else {
         // 若當天有業績, 且業績大於0
         if (!isset($_POST['reload']) && isset($_POST['TbpOutputLog']) && isset($perform) && $perform->output > 0) {
             $result = $this->createOutputData($result, $perform);
         } else {
             // 畫面顯示
             $result = TbpOutputLog::model()->findAllByAttributes(array('pdate' => $perform->pdate, 'storecode' => $perform->storecode));
         }
         Yii::app()->session['LastRequest'] = $RequestSignature;
     }
     $result_num = isset($result) ? count($result) : 0;
     if (isset($_POST)) {
         if ($result_num > 0) {
             Yii::app()->user->setFlash('notice', '修改細項時,仍需按照主、次、細項點選,金額必須大於0才會紀錄!!');
         } else {
             Yii::app()->user->setFlash('notice', '請按照主、次、細項點選,金額必須大於0才會紀錄!!');
         }
     }
     // 員工列數, 利用預設值產出列數
     if ($result_num < $default_num) {
         for ($i = 0; $i < $default_num - $result_num; $i++) {
             // 零用金支出表紀錄
             $model = new TbpOutputLog();
             array_push($result, $model);
         }
     }
     $this->render('createandupdate', array('pdate' => $pdate, 'store' => $store, 'perform' => $perform, 'isExist' => $isExist, 'default_num' => $default_num, 'array' => $result, 'errorMsg' => $errorMsg));
 }