protected function orderStatistics($cal_id) { //参团人 $allPrice = 0; $PeopleCount = 0; //保险 $insuranceCount = 0; $insurancePrice = 0; //门票 $addPrice = 0; $addCount = 0; //房间 $roomPrice = 0; $roomCount = 0; //捐款 $dotadePrice = 0; $dotadeCount = 0; $allArr = Order::model()->findAll(array( 'select'=>'id,aduit,child,daynumber,aduit_price,chilend_price,donate', 'condition'=>"cal_id=$cal_id and status=1" )); //单个订单总价格 foreach($allArr as $arr){ //基础价格 $allPrice += ($arr->aduit *$arr->aduit_price) + ($arr->child * $arr->chilend_price); $PeopleCount += ($arr->aduit) + ($arr->child); //捐款 if($arr->donate != 0){ $dotadePrice += $arr->donate; $dotadeCount += 1; } //保险 $insuranceModel = OrderInsurance::model()->find(array('select'=>'price','condition'=>"oid=$arr->id")); if($insuranceModel){ $insuranceCount += ($arr->aduit) + ($arr->child); $insurancePrice += ($arr->aduit + $arr->child) * $insuranceModel->price * $arr->daynumber; } //门票 $addModel = OrderAdditional::model()->findAll(array('select'=>'num,price','condition'=>"oid=$arr->id")); if($addModel){ foreach($addModel as $add){ $addCount += $add->num; $addPrice += $add->price * $add->num; } } //房间 $rooModel = OrderRoom::model()->findAll(array('select'=>'price','condition'=>"oid=$arr->id")); if($rooModel){ $roomCount += count($rooModel); foreach($rooModel as $roo){ $roomPrice += $roo->price; } } } return array($allPrice,$PeopleCount,$insurancePrice,$insuranceCount,$addPrice,$addCount,$roomPrice,$roomCount,$dotadePrice,$dotadeCount); }
protected function getRoomTypeAndCount($token) { $oid = intval($token); $arr = OrderRoom::model()->findAll(array('select'=>'type','condition'=>"oid=$oid")); $roomTypeArr = array(); foreach($arr as $onearr){ $roomTypeArr[] = $onearr->type; } if(empty($roomTypeArr)){ return "没有预定房间"; exit; } $str = ''; $tempArr = array_count_values($roomTypeArr);//返回一个数组,键名为 房型名称,键值为该值出行的次数 foreach($tempArr as $key=>$value){ $str .= $key."×".$value." "; } return $str; }
public function actionRoom($id) { $id = intval($id); $model = $this->loadModel($id); if(isset($_GET['rid'])){ $rid = intval($_GET['rid']); $romModel = OrderRoom::model()->findByPk($rid); }else $romModel = new OrderRoom; //房型列表 $romtypeaduitprice = array(); $romtypechildprice = array(); $roomtypeArr = array(); $roomType = Housetype::model()->findAll(array('condition'=>"tid=$model->tid")); foreach($roomType as $roomty){ $key = $roomty->id; $roomtypeArr[$key]=$roomty->name; $romtypeaduitprice[$key]=$roomty->aduit_price; $romtypechildprice[$key]=$roomty->chilend_price; } //接收参数并添加或修改房间信息 if(isset($_POST['OrderRoom'])){ $aduit = intval($_POST['OrderRoom']['aduit']);//成人数 $child = intval($_POST['OrderRoom']['child']);//儿童数 if($aduit==0 && $child==0){ Yii::app()->user->setFlash('error','成人数和儿童或必须至少一个不为零!'); }else{ $rkey = intval($_POST['OrderRoom']['type']); $romModel->oid = $id; $romModel->aduit = $aduit; $romModel->child = $child; $romModel->type = $roomtypeArr[$rkey]; $romModel->price = ($romtypeaduitprice[$rkey]*$aduit) + ($romtypechildprice[$rkey]*$child); if($romModel->save(false)){ Yii::app()->user->setFlash('success','成功!'); }else{ Yii::app()->user->setFlash('error','失败!'); } } } //房间列表 $rooms = $model->Rooms; $this->render('room',array( 'model'=>$model, 'rooms'=>$rooms, 'romModel'=>$romModel, 'roomtypeArr'=>$roomtypeArr, 'roomType'=>$roomType, )); }
protected function roomsTotalPrice($oid) { $totalPrice = 0; $arr = OrderRoom::model()->findAll(array( 'select'=>'price', 'condition'=>"oid=$oid" )); if(!empty($arr)){ foreach($arr as $model){ $totalPrice += $model->price; } } return $totalPrice; }
public function getTotalPriceFormDb($oid) { // 参团人基础价格 + 房间价格 + 附加项目(门票) + 保险 + 捐赠 //基础价格 $orderModel = Order::model()->findByPk($oid); $basePrice = 0; //保险价格 $insruancePrice = 0; //捐赠价格 $donatePrice = 0; //附加项目总价 $addsPrice = 0; //房间价格 $roomPrice = 0; if($orderModel!==null){ $basePrice = ($orderModel->aduit * $orderModel->aduit_price) + ($orderModel->child * $orderModel->chilend_price); //捐赠价格 $donatePrice = $orderModel->donate; //保险价格 $insruanceModel = OrderInsurance::model()->find(array('select'=>'price','condition'=>"oid=$oid")); if($insruanceModel!==null){ $insruancePrice = ($orderModel->aduit + $orderModel->child) * $insruanceModel->price * $orderModel->daynumber; } //房间价格 $roomModel = OrderRoom::model()->findAll(array('select'=>'price','condition'=>"oid=$oid")); if(!empty($roomModel)){ foreach($roomModel as $m){ $roomPrice += $m->price; } } //附加项目总价 $addsModel = OrderAdditional::model()->findAll(array('select'=>'num,price','condition'=>"oid=$oid")); foreach($addsModel as $adds){ $addsPrice += $adds->num * $adds->price; } } return $basePrice + $insruancePrice + $donatePrice + $addsPrice + $roomPrice; }