public function actionSaveinfo() { if(isset($_POST['term'])) { //检查参数 $arr = $this->ajaxCheckParm(); $code = $arr['route']; $orderModel = $this->getOrderByRandCode($code); if($orderModel->updatetime != 0){ echo json_encode($arr); exit; } $now =time(); //防止重复提交,五秒内只能提交一次 if(isset(Yii::app()->session['submitrepeat'])&&Yii::app()->session['submitrepeat']>($now-7)){ $arr['statuCode'] = 302; $arr['msg'] = '五秒内,请不要重复提交!'; echo json_encode($arr); exit; }else{ Yii::app()->session['submitrepeat'] = $now; } //验证表单项是否为空 $verflag = false; foreach($_POST['Contacter'] as $key=>$value){ switch($key) { case 'name': empty($value)&&($verflag = true)?$arr['msg'] = '请填写您的姓!':'';break; case 'first': empty($value)&&($verflag = true)?$arr['msg'] = '请填写您的名!':'';break; case 'moblie': empty($value)&&($verflag = true)?$arr['msg'] = '请填写您的手机号码!':'';break; case 'email': empty($value)&&($verflag = true)?$arr['msg'] = '请填写您的邮箱!':'';break; case 'addr': empty($value)&&($verflag = true)?$arr['msg'] = '请填写您的地址!':'';break; } } if($verflag){ echo json_encode($arr); exit; } $mid = 0;//Yii::app()->session['myuserid'];判断是否登录//会员ID if(isset(Yii::app()->session['myuserid'])){ $mid = Yii::app()->session['myuserid']; } //存储联系人 //过滤参数 foreach($_POST['Contacter'] as $key=>$value){ $_POST['Contacter'][$key] = strip_tags($value); } //判断是否存在该会员关联的联系人,如果存在则跟新,不存在则添加 $CModel = Contacter::model()->find(array('condition'=>"mid=$mid and mid<>0")); if($CModel == null){//未登录 $CModel = new Contacter; //自动注册,添加email,fullname,first,gender,tel,address到会员表 $registerModel = new Member; $registerModel->email = strip_tags($_POST['Contacter']['email']); $registerModel->password = md5('123456'); $registerModel->fullname = strip_tags($_POST['Contacter']['name']); $registerModel->first = strip_tags($_POST['Contacter']['first']); $registerModel->gender = intval($_POST['Contacter']['gender']); $registerModel->tel = intval($_POST['Contacter']['moblie']); $registerModel->address = strip_tags($_POST['Contacter']['addr']); $registerModel->createtime = $now; $registerModel->updatetime = $now; $registerModel->flag = 1; if($registerModel->save(false)){ //注册成功,自动登录 $CModel->mid = $registerModel->id; $loginModel = new LoginForm; $loginModel->username = $registerModel->email; $loginModel->password = '******'; $loginModel->login();//登录 }else{ $CModel->mid = $mid; } } $CModel->name = strip_tags($_POST['Contacter']['name']); $CModel->first = strip_tags($_POST['Contacter']['first']); $CModel->gender = intval($_POST['Contacter']['gender']); $CModel->moblie = strip_tags($_POST['Contacter']['moblie']); $CModel->phone = strip_tags($_POST['Contacter']['phone']); $CModel->email = strip_tags($_POST['Contacter']['email']); $CModel->wechat = strip_tags($_POST['Contacter']['wechat']); $CModel->qq = strip_tags($_POST['Contacter']['qq']); /* $CModel->whatup = strip_tags($_POST['Contacter']['whatup']); */ $CModel->addr = strip_tags($_POST['Contacter']['addr']); $CModel->createtime = $now; if(!$CModel->save(false)) { $arr['statuCode'] = 302; $arr['msg'] = '请正确提交表单信息!'; }else{ $cid = $CModel->id;//联系人ID //将信息添加到订单表 //$travelModel = Travel::model()->findByPk($tid); $orderModel->mid = $mid; $orderModel->cid = $cid;//联系人表 contracter 自增ID $orderModel->donate = $this->getDonatePrice('donate'.$orderModel->id); $orderModel->additionmesg = strip_tags($_POST['addimsg']); $orderModel->howway = $_POST['callme'] == 1?strip_tags($_POST['otherway']):strip_tags($_POST['callme']); $orderModel->updatetime = $now; if(!$orderModel->save(false)){ $arr['statuCode'] = 302; $arr['msg'] = '提交订单不成功,请重试!---订单保存不成功'; }else{ $oid = $orderModel->id; for($i=0;$i<count($_POST['name']);$i++){ $clientModel = new Client; $clientModel->oid = $oid; $clientModel->name = strip_tags($_POST['name'][$i]); $clientModel->first = strip_tags($_POST['first'][$i]); $clientModel->gender = strip_tags($_POST['gender'][$i]); $clientModel->national = strip_tags($_POST['national'][$i]); $clientModel->dob = strtotime($_POST['dob'][$i]); $clientModel->passpost = strip_tags($_POST['passpost'][$i]); /* $clientModel->expiration = strtotime($_POST['expiration'][$i]); */ $clientModel->createtime = $now; $clientModel->save(); } $additoninfo = $this->additionList($orderModel->tid); $addsToken = 'adds'.$orderModel->id; $addArr = $this->checkAdditionsStep($addsToken); if(empty($addArr)){ $addArr[1] = array(); } foreach($addArr[1] as $key=>$value){ if($value > 0){ $OAModel = new OrderAdditional; $OAModel->oid = $oid; $aid = $addArr[0][$key]; $OAModel->name = $additoninfo[$aid]['name']; $OAModel->num = $value; $OAModel->price = $additoninfo[$aid]['price']; $OAModel->createtime = $now; $OAModel->save(); } } //存储保险信息 $insToken = 'ins'.$orderModel->id; $insurancesid = $this->getInsuranceId($insToken); if($insurancesid!=0){ $insuranceArr = $this->getNowInsurance($insurancesid); $insModel = new OrderInsurance; $insModel->oid = $oid; $insModel->name = $insuranceArr['name']; $insModel->price = $insuranceArr['price']; $insModel->save(false); } //将房间信息存储到订单相应下的房间表中 $token = 'order'.$orderModel->id; $roomArr = $this->checkOrderRoomStep($token); $roPriceArr = $this->getHousePrice(); foreach($roomArr['type'] as $ke=>$val){ $rModel = new OrderRoom; $rModel->oid = $oid; $rModel->aduit = $roomArr['aduit'][$ke]; $rModel->child = $roomArr['child'][$ke]; $rModel->type = $this->getHouseName($val); $arprice = ($roPriceArr[$val][0]) * ($roomArr['aduit'][$ke]); $crprice = ($roPriceArr[$val][1]) * ($roomArr['child'][$ke]); $rModel->price = $arprice + $crprice; $rModel->save(false); } //发送邮件给客户 if(isset(Yii::app()->session['mysueremail'])){ $useremail = Yii::app()->session['mysueremail']; /* $username = Yii::app()->user->name; */ }else{ $useremail = strip_tags($_POST['Contacter']['email']); /* $username = strip_tags($_POST['Contacter']['name']); */ } $message = array('email'=>$useremail,'ordernumber'=>$orderModel->trackcode); $this->sendEmail($useremail,$message); } } }else{ $arr['statuCode'] = 302; $arr['msg'] = '合同条款必须同意!'; } echo json_encode($arr); exit; }
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); }
public function actionPrintAdd($cid) { $cal_id = intval($cid); $arr = $this->orderStatistics($cal_id); $orders = Order::model()->findAll(array('select'=>'id,cid,trackcode','condition'=>"cal_id=$cal_id and status=1")); $tempArr[] = array('ID','订单ID','订单号','联系人','景点','门票数','门票单价','总价'); foreach($orders as $order){ $addModel = OrderAdditional::model()->findAll(array('condition'=>"oid=$order->id")); foreach($addModel as $add){ $tempArr[] = array($add->id,$add->oid,$order->trackcode,$this->getContorById($order->cid),$add->name,$add->num,$add->price,$add->num * $add->price); } } $rand = date('Y-m-d',time()).mt_rand(0,999); Yii::import('application.extensions.phpexcel.JPhpExcel'); $xls = new JPhpExcel('UTF-8', false, 'ordersheet'); $xls->addArray($tempArr); $xls->generateXML($rand."_AdditionalPrint"); exit; }
protected function addsTotalPrice($oid) { $totalPrice = 0; $arr = OrderAdditional::model()->findAll(array( 'select'=>'num,price', 'condition'=>"oid=$oid" )); if(!empty($arr)){ foreach($arr as $model){ $totalPrice += ($model->price)*($model->num); } } 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; }