public function actionPrintList()
 {
     $orderId = Yii::app()->request->getParam('orderId', 0);
     //$companyId = Yii::app()->request->getParam('companyId');
     $padId = Yii::app()->request->getParam('padId');
     $typeId = Yii::app()->request->getParam('typeId');
     Until::validOperate($companyId, $this);
     $order = Order::model()->with('company')->find('t.lid=:id and t.dpid=:dpid', array(':id' => $orderId, ':dpid' => $this->companyId));
     $pad = Pad::model()->find(' dpid=:dpid and lid=:lid', array(':dpid' => $order->dpid, 'lid' => $padId));
     //前面加 barcode
     if (!empty($pad)) {
         $precode = "";
         //$precode="1D6B450B".strtoupper(implode('',unpack('H*', 'A'.$order->lid)))."0A".strtoupper(implode('',unpack('H*', 'A'.$order->lid)))."0A";
         //Yii::app()->end(json_encode(Helper::printList($order , $padid)));
         $printserver = "1";
         $memo = "";
         $ret = Helper::printList($order, $pad, $precode, $printserver, $memo);
     } else {
         $ret = array('status' => false, 'dpid' => $order->dpid, 'jobid' => "0", 'type' => 'none', 'msg' => yii::t('app', 'PAD不存在!'));
     }
     //exit;
     $this->renderPartial('printlist', array('orderId' => $orderId, 'ret' => $ret, 'typeId' => $typeId));
 }
 public function actionCharge()
 {
     $model = new MemberRecharge();
     $model->dpid = $this->companyId;
     //Until::validOperate($model->dpid, $this);
     if (Yii::app()->request->isPostRequest) {
         $model->attributes = Yii::app()->request->getPost('MemberRecharge');
         $rfid = Yii::app()->request->getPost('rfid');
         $transaction = Yii::app()->db->beginTransaction();
         try {
             $member = MemberCard::model()->find('rfid=:rfid and selfcode=:selfcode and dpid=:dpid', array(':rfid' => $rfid, ':selfcode' => $model->member_card_id, ':dpid' => $this->companyId));
             Until::validOperate($member->lid, $this);
             //var_dump($member);exit;
             $member->all_money = $member->all_money + $model->reality_money + $model->give_money;
             $se = new Sequence("member_recharge");
             $model->lid = $se->nextval();
             $model->update_at = date('Y-m-d H:i:s', time());
             $model->create_at = date('Y-m-d H:i:s', time());
             $model->delete_flag = '0';
             if ($model->save() && $member->update()) {
                 $transaction->commit();
                 Yii::app()->user->setFlash('success', yii::t('app', '充值成功'));
             } else {
                 $transaction->rollback();
                 Yii::app()->user->setFlash('error', yii::t('app', '充值失败'));
             }
         } catch (Exception $e) {
             Yii::app()->user->setFlash('error', yii::t('app', '充值失败'));
             $transaction->rollback();
         }
         $this->redirect(array('member/index', 'companyId' => $this->companyId));
     }
     $this->renderPartial('charge', array('model' => $model));
 }
 public function actionUnionsite()
 {
     if (Yii::app()->request->isPostRequest) {
         $sid = Yii::app()->request->getPost('sid');
         $companyId = Yii::app()->request->getPost('companyId');
         $istemp = Yii::app()->request->getPost('istemp', '0');
         $ssid = Yii::app()->request->getPost('ssid', 0);
         $sistemp = Yii::app()->request->getPost('sistemp', '0');
         Until::validOperate($companyId, $this);
         //echo json_encode(array('status'=>0,'message'=>$sid.'dd'.$companyId.'dd'.$istemp.'dd'.$ssid.'dd'.$sistemp));exit;
         $db = Yii::app()->db;
         $transaction = $db->beginTransaction();
         try {
             $number = 0;
             $status = '1';
             $smodelsn = SiteNo::model()->find('dpid=:companyId and delete_flag=0 and site_id=:lid and is_temp=:istemp and status in ("1","2")', array(':companyId' => $companyId, ':lid' => $ssid, ':istemp' => $sistemp));
             if ($sistemp == '0') {
                 $smodel = Site::model()->find('dpid=:companyId and delete_flag=0 and lid=:lid', array(':companyId' => $companyId, ':lid' => $ssid));
                 $number = $smodel->number;
                 $status = $smodel->status;
             } else {
                 $number = $smodelsn->number;
                 $status = $smodelsn->status;
             }
             //echo json_encode(array('status'=>0,'message'=>$number.'dd'.$status));exit;
             if ($istemp == "0") {
                 $sqlsite = "update nb_site set status=IF(:sstatus>status,:sstatus,status),number=number+:snumber where lid=:sid and dpid=:companyId";
                 $commandsite = $db->createCommand($sqlsite);
                 $commandsite->bindValue(":snumber", $number);
                 $commandsite->bindValue(":sstatus", $status);
                 $commandsite->bindValue(":sid", $sid);
                 $commandsite->bindValue(":companyId", $companyId);
                 $commandsite->execute();
             }
             if ($sistemp == "0") {
                 $sqlsite = "update nb_site set status='5' where lid=:sid and dpid=:companyId";
                 $commandsite = $db->createCommand($sqlsite);
                 $commandsite->bindValue(":sid", $ssid);
                 $commandsite->bindValue(":companyId", $companyId);
                 $commandsite->execute();
             }
             //echo json_encode(array('status'=>0,'message'=>$number.'dd'.$status));exit;
             //更新目标site_no人数和状态
             $modelsn = SiteNo::model()->find('dpid=:companyId and delete_flag=0 and site_id=:lid and is_temp=:istemp and status in ("1","2")', array(':companyId' => $companyId, ':lid' => $sid, ':istemp' => $istemp));
             if ($status > $modelsn->status) {
                 $modelsn->status = $status;
             }
             $modelsn->number = $modelsn->number + $number;
             $modelsn->save();
             //echo json_encode(array('status'=>0,'message'=>$number.'dd'.$status));exit;
             //更新源site_no,让上网密码code 指向目标订单
             $smodelsn->status = '5';
             $smodelsn->site_id = $modelsn->site_id;
             $smodelsn->is_temp = $modelsn->is_temp;
             $smodelsn->save();
             //echo json_encode(array('status'=>0,'message'=>$number.'dd'.$status));exit;
             //更新目标订单状态和人数
             $tocriteria = new CDbCriteria();
             $tocriteria->condition = ' t.order_status in ("1","2") and  t.dpid=' . $companyId . ' and t.site_id=' . $sid . ' and t.is_temp=' . $istemp;
             $tocriteria->order = ' t.lid desc ';
             $torder = Order::model()->find($tocriteria);
             if (empty($torder)) {
                 //新生成订单
                 $torder = new Order();
                 $se = new Sequence("order");
                 $torder->lid = $se->nextval();
                 $torder->dpid = $companyId;
                 $torder->username = Yii::app()->user->name;
                 $torder->create_at = date('Y-m-d H:i:s', time());
                 $torder->lock_status = '0';
                 $torder->site_id = $sid;
                 $torder->is_temp = $istemp;
                 $torder->order_status = $status;
                 $torder->number = $modelsn->number + $number;
                 $torder->save();
             } else {
                 if ($status > $torder->order_status) {
                     $torder->order_status = $status;
                 }
                 $torder->number = $torder->number + $number;
                 $torder->save();
             }
             //echo json_encode(array('status'=>0,'message'=>$number.'dd'.$status));exit;
             //...
             //更新源订单状态
             $socriteria = new CDbCriteria();
             $socriteria->condition = ' t.order_status in ("1","2") and  t.dpid=' . $companyId . ' and t.site_id=' . $ssid . ' and t.is_temp=' . $sistemp;
             $socriteria->order = ' t.lid desc ';
             $sorder = Order::model()->find($socriteria);
             if (!empty($sorder)) {
                 $sorder->order_status = "5";
                 $sorder->save();
             }
             //echo json_encode(array('status'=>0,'message'=>$number.'dd'.$status));exit;
             //...
             //更新源订单明细,指向目标订单。
             if (!empty($sorder)) {
                 $sqlorder = "update nb_order_product set order_id=:torderid where dpid=:companyId and order_id=:sorderid";
                 $commandorder = $db->createCommand($sqlorder);
                 $commandorder->bindValue(":torderid", $torder->lid);
                 $commandorder->bindValue(":sorderid", $sorder->lid);
                 $commandorder->bindValue(":companyId", $companyId);
                 $commandorder->execute();
             }
             //echo json_encode(array('status'=>0,'message'=>$number.'dd'.$status));exit;
             //                            $sqlorder="update nb_order set is_temp=:istemp,site_id=:sid where site_id=:ssid and is_temp=:sistemp and dpid=:companyId and order_status in ('1','2','3')";
             //                            $commandorder=$db->createCommand($sqlorder);
             //                            $commandorder->bindValue(":sid" , $sid);
             //                            $commandorder->bindValue(":istemp" , $istemp);
             //                            $commandorder->bindValue(":ssid" , $ssid);
             //                            $commandorder->bindValue(":sistemp" , $sistemp);
             //                            $commandorder->bindValue(":companyId" , $companyId);
             //                            $commandorder->execute();
             $transaction->commit();
             //提交事务会真正的执行数据库操作
             echo json_encode(array('status' => 1, 'message' => yii::t('app', '并台成功')));
             return true;
         } catch (Exception $e) {
             $transaction->rollback();
             //如果操作失败, 数据回滚
             echo json_encode(array('status' => 0, 'message' => yii::t('app', '并台失败')));
             //echo json_encode(array('status'=>0,'message'=>  var_dump($e)));
             return false;
         }
     }
 }