Пример #1
0
	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);
	}
Пример #2
0
	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;
	}
Пример #3
0
	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,
				));
	}
Пример #4
0
	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;
	}
Пример #5
0
	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;
	}