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)); }
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)); }