コード例 #1
0
 public function actionOrderPartial()
 {
     $sid = Yii::app()->request->getParam('sid', 0);
     $istemp = Yii::app()->request->getParam('istemp', 0);
     $companyId = Yii::app()->request->getParam('companyId', 0);
     $typeId = Yii::app()->request->getParam('typeId', 0);
     $orderId = Yii::app()->request->getParam('orderId', 0);
     $syscallId = Yii::app()->request->getParam('syscallId', 0);
     $autoaccount = Yii::app()->request->getParam('autoaccount', 0);
     $order = new Order();
     $siteNo = new SiteNo();
     $site = new Site();
     ///***********insert to order feedback
     ///*************print
     if ($orderId != '0') {
         $order = Order::model()->find('lid=:lid and dpid=:dpid and order_status in("1","2","3")', array(':lid' => $orderId, ':dpid' => $companyId));
         if (empty($order)) {
             $title = yii::t('app', "该订单不存在,请输入合法订单!");
             $backurl = $this->createUrl('default/index', array('companyId' => $this->companyId));
             $this->render('error', array('backurl' => $backurl, 'title' => $title));
             exit;
         }
         $criteria = new CDbCriteria();
         $criteria->condition = 't.dpid=' . $companyId . ' and t.site_id=' . $order->site_id . ' and t.is_temp=' . $order->is_temp;
         $criteria->order = ' t.lid desc ';
         $siteNo = SiteNo::model()->find($criteria);
     } else {
         $criteria = new CDbCriteria();
         $criteria->condition = ' t.order_status in ("1","2","3") and  t.dpid=' . $companyId . ' and t.site_id=' . $sid . ' and t.is_temp=' . $istemp;
         $criteria->order = ' t.lid desc ';
         $order = Order::model()->find($criteria);
         //var_dump($order);exit;
         $criteria->condition = ' t.status in ("1","2","3") and  t.dpid=' . $companyId . ' and t.site_id=' . $sid . ' and t.is_temp=' . $istemp;
         $criteria->order = ' t.lid desc ';
         $siteNo = SiteNo::model()->find($criteria);
         //var_dump($siteNo);exit;
     }
     //var_dump($order);exit;
     if (empty($order)) {
         Until::validOperate($companyId, $this);
         $order = new Order();
         $se = new Sequence("order");
         $order->lid = $se->nextval();
         $order->dpid = $companyId;
         $order->username = Yii::app()->user->name;
         $order->create_at = date('Y-m-d H:i:s', time());
         $order->lock_status = '0';
         $order->order_status = '1';
         $order->site_id = $siteNo->site_id;
         $order->number = $siteNo->number;
         $order->is_temp = $siteNo->is_temp;
         //var_dump($order);exit;
         $order->save();
     }
     $allOrderTastes = TasteClass::getOrderTasteKV($order->lid, '1', $companyId);
     //$orderProducts = OrderProduct::model()->findAll('dpid=:dpid and order_id=:orderid',array(':dpid'=>$companyId,':orderid'=>$order->order_id));
     $orderProducts = OrderProduct::getOrderProducts($order->lid, $order->dpid);
     $allOrderProductTastes = TasteClass::getOrderTasteKV($order->lid, '2', $companyId);
     //var_dump($orderProducts); exit;
     $tasteidsOrderProducts = array();
     foreach ($allOrderProductTastes as $orderProductTaste) {
         //var_dump($orderProductTaste);
         if (empty($tasteidsOrderProducts[$orderProductTaste['id']])) {
             $tasteidsOrderProducts[$orderProductTaste['id']] = $orderProductTaste['tasteid'] . "|";
         } else {
             $tasteidsOrderProducts[$orderProductTaste['id']] = $tasteidsOrderProducts[$orderProductTaste['id']] . $orderProductTaste['tasteid'] . "|";
         }
     }
     //var_dump($tasteidsOrderProducts);exit;
     $productTotal = OrderProduct::getTotal($order->lid, $order->dpid);
     $productDisTotal = OrderProduct::getDisTotal($order->lid, $order->dpid);
     //var_dump($productTotal);exit;
     if ($siteNo->is_temp == '1') {
         $total = array('total' => $productTotal, 'remark' => yii::t('app', '临时座:') . $siteNo->site_id % 1000);
     } else {
         $total = Helper::calOrderConsume($order, $siteNo, $productTotal);
     }
     $order->should_total = $total['total'];
     //var_dump($order);exit;
     //var_dump($total);exit;
     //$paymentMethods = $this->getPaymentMethodList();
     $tastegroups = TasteClass::getAllOrderTasteGroup($companyId, '1');
     $orderTastes = TasteClass::getOrderTaste($order->lid, '1', $companyId);
     $tasteMemo = TasteClass::getOrderTasteMemo($order->lid, '1', $companyId);
     //var_dump(array_column($allOrderProductTastes, "lid"));exit;
     //var_dump($tasteMemo);exit;
     $this->renderPartial('orderPartial', array('model' => $order, 'orderProducts' => $orderProducts, 'allOrderTastes' => $allOrderTastes, 'allOrderProductTastes' => $allOrderProductTastes, 'productTotal' => $productTotal, 'productDisTotal' => $productDisTotal, 'total' => $total, 'typeId' => $typeId, 'syscallId' => $syscallId, 'autoaccount' => $autoaccount, 'tastegroups' => $tastegroups, 'orderTastes' => $orderTastes, 'tasteMemo' => $tasteMemo, 'tasteidsOrderProducts' => $tasteidsOrderProducts));
 }