public function actionRefund()
 {
     $begin_time = Yii::app()->request->getParam('begin_time', date('Y-m-d', time()));
     $end_time = Yii::app()->request->getParam('end_time', date('Y-m-d', time()));
     $orderId = Yii::app()->request->getParam('orderID');
     $model = new OrderPay();
     //新建数据库表!!!
     $model->dpid = $this->companyId;
     $order = Order::model()->find('lid=:lid and dpid=:dpid', array(':lid' => $orderId, ':dpid' => $this->companyId));
     if (!$order) {
         Yii::app()->user->setFlash('error', yii::t('app', '无法查询到该订单!'));
         $this->redirect(array('orderManagement/paymentRecord', 'companyId' => $this->companyId, 'begin_time' => $begin_time, 'end_time' => $end_time));
     }
     if (Yii::app()->request->isPostRequest) {
         $postData = Yii::app()->request->getPost('OrderPay');
         $model->attributes = $postData;
         $transaction = Yii::app()->db->beginTransaction();
         try {
             $pay_amount = -abs($postData['pay_amount']);
             $order->reality_total = $order->reality_total + $pay_amount;
             if ($order->reality_total < 0) {
                 Yii::app()->user->setFlash('success', yii::t('app', '退款失败,退款金额大于订单金额!'));
                 $this->redirect(array('orderManagement/paymentRecord', 'companyId' => $this->companyId, 'begin_time' => $begin_time, 'end_time' => $end_time));
             }
             $order->update();
             $model->pay_amount = $pay_amount;
             $se = new Sequence("order_pay");
             $model->lid = $se->nextval();
             $model->create_at = date('Y-m-d H:i:s', time());
             $model->update_at = date('Y-m-d H:i:s', time());
             if ($model->save()) {
                 Yii::app()->user->setFlash('success', yii::t('app', '退款成功'));
             }
             $transaction->commit();
             //提交事务会真正的执行数据库操作
             $this->redirect(array('orderManagement/paymentRecord', 'companyId' => $this->companyId, 'begin_time' => $begin_time, 'end_time' => $end_time));
         } catch (Exception $e) {
             $transaction->rollback();
             //如果操作失败, 数据回滚
             Yii::app()->user->setFlash('error', yii::t('app', '退款失败'));
         }
     }
     $this->render('refund', array('model' => $model, 'order' => $order, 'orderId' => $orderId, 'begin_time' => $begin_time, 'end_time' => $end_time));
 }
예제 #2
0
 public function actionAccountManul()
 {
     $orderId = Yii::app()->request->getParam('orderId', '0');
     $companyId = Yii::app()->request->getParam('companyId', '0');
     $typeId = Yii::app()->request->getParam('typeId', '0');
     $callId = Yii::app()->request->getParam('callId', '0');
     $padId = Yii::app()->request->getParam('padId', '0000000000');
     $totaldata = Yii::app()->request->getParam('total', '0');
     ///*************print
     $criteria = new CDbCriteria();
     $criteria->condition = 't.dpid=' . $companyId . ' and t.lid=' . $orderId;
     $criteria->order = ' t.lid desc ';
     $order = Order::model()->find($criteria);
     $order->should_total = $totaldata;
     $orderpay = new OrderPay();
     $orderpay->dpid = $order->dpid;
     $orderpay->order_id = $order->lid;
     $orderpay->paytype = "0";
     $orderpay->remark = "现金支付";
     $orderpay->create_at = date('Y-m-d H:i:s', time());
     $paymentMethods = PaymentClass::getPaymentMethodList($companyId);
     //var_dump($paymentMethods);exit;
     if (Yii::app()->request->isPostRequest) {
         Until::validOperate($companyId, $this);
         //var_dump(Yii::app()->request->getPost('Order'));exit;
         $order->attributes = Yii::app()->request->getPost('Order');
         $order->pay_time = date('Y-m-d H:i:s', time());
         $orderpay->attributes = Yii::app()->request->getPost('OrderPay');
         $order->paytype = $orderpay->paytype;
         //$order->payment_method_id=$orderpay->payment_method_id;
         $order->reality_total += $orderpay->pay_amount;
         $order->remark .= $orderpay->remark;
         $se = new Sequence("order_pay");
         $orderpay->lid = $se->nextval();
         //var_dump($order);exit;
         $memo = "";
         if ($order->order_status == "3") {
             $memo = yii::t('app', '收款') . ":" . $orderpay->pay_amount;
         } else {
             if ($order->order_status == "4") {
                 $memo = yii::t('app', '结单') . ":" . $orderpay->pay_amount;
             }
         }
         $transaction = Yii::app()->db->beginTransaction();
         try {
             $criteria2 = new CDbCriteria();
             $criteria2->condition = 't.status in ("1","2","3") and t.dpid=' . $order->dpid . ' and t.site_id=' . $order->site_id . ' and t.is_temp=' . $order->is_temp;
             $criteria2->order = ' t.lid desc ';
             $siteNo = SiteNo::model()->find($criteria2);
             if ($siteNo->is_temp == '0') {
                 $site = Site::model()->with('siteType')->find('t.lid=:lid and t.dpid=:dpid', array(':lid' => $order->site_id, ':dpid' => $order->dpid));
                 $site->status = $order->order_status;
                 $site->save();
             } else {
                 $site = array();
             }
             //$order->order_status=$tempstatus;
             $order->save();
             $orderpay->save();
             $siteNo->status = $order->order_status;
             $siteNo->save();
             if ($order->order_status == '4') {
                 SiteClass::deleteCode($this->companyId, $siteNo->code);
                 //FeedBackClass::cancelAllOrderMsg("0000000000","0",$order->lid,$companyId);
                 $sqlfeedback = "update nb_order_feedback set is_deal='1' where dpid=:companyId and site_id=:siteId and is_temp=:istemp";
                 $commandfeedback = Yii::app()->db->createCommand($sqlfeedback);
                 $commandfeedback->bindValue(":companyId", $companyId);
                 $commandfeedback->bindValue(":siteId", $order->site_id);
                 $commandfeedback->bindValue(":istemp", $order->is_temp);
                 //var_dump($sqlsite);exit;
                 $commandfeedback->execute();
                 $sqlall = "update nb_order_feedback set is_deal='1'where dpid=:dpid and order_id=:orderId and is_order='1'";
                 $connorder = Yii::app()->db->createCommand($sqlall);
                 $connorder->bindValue(':dpid', $companyId);
                 $connorder->bindValue(':orderId', $orderId);
                 $connorder->execute();
                 $sql = 'update nb_order_feedback set is_deal=1 where dpid=:dpid and order_id in (select lid from nb_order_product where dpid=:sdpid and order_id=:sorderId) and is_order=0';
                 $connorderproduct = Yii::app()->db->createCommand($sql);
                 $connorderproduct->bindValue(':dpid', $companyId);
                 $connorderproduct->bindValue(':sdpid', $companyId);
                 $connorderproduct->bindValue(':sorderId', $orderId);
                 $connorderproduct->execute();
             }
             $transaction->commit();
             $pad = Pad::model()->find(' dpid=:dpid and lid=:lid', array(':dpid' => $order->dpid, 'lid' => $padId));
             if (!empty($pad)) {
                 $precode = "1B70001EFF00";
                 //开钱箱
                 $printserver = "1";
                 //$orderProducts= //传递要打印的菜品,这里是已经下单的
                 $orderProducts = OrderProduct::getHasOrderProducts($order->lid, $order->dpid);
                 $ret = Helper::printList($order, $orderProducts, $pad, $precode, $printserver, $memo);
             }
             //$ret=array('status'=>false,'dpid'=>"0000000011",'jobid'=>"0",'type'=>'none','msg'=>yii::t('app','没有要打印的菜品!'));
             $this->redirect(array('default/index', 'companyId' => $this->companyId, 'typeId' => $typeId));
         } catch (Exception $e) {
             $transaction->rollback();
         }
         //                        $this->renderPartial('printlist' , array(
         //                                'orderId'=>$orderId,
         //                                //'companyId'=>$companyId,
         //                                'ret'=>$ret,
         //
         //                                'typeId'=>$typeId
         //                        ));
         //                        exit;
     }
     //var_dump($order);exit;
     $this->renderPartial('accountmanul', array('order' => $order, 'orderpay' => $orderpay, 'typeId' => $typeId, 'callid' => $callId, 'padId' => $padId, 'paymentMethods' => $paymentMethods));
 }