/** * Creates a new model. * If creation is successful, the browser will be redirected to the 'view' page. */ public function actionCreate() { $model = new Order(); // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); // print_r($_POST); // exit; if (!$_POST['delivery_address']) { echo '<script>alert("您还没有添加收货地址!")</script>'; echo '<script type="text/javascript">history.go(-1)</script>'; die; } else { if (isset($_POST)) { $model->attributes = $_POST; $model->order_id = F::get_order_id(); $model->user_id = Yii::app()->user->id ? Yii::app()->user->id : '0'; $model->create_time = time(); $cri = new CDbCriteria(array('condition' => 'contact_id =' . $_POST['delivery_address'] . ' AND user_id = ' . Yii::app()->user->id)); $address = AddressResult::model()->find($cri); $model->receiver_name = $address->contact_name; $model->receiver_country = $address->country; $model->receiver_state = $address->state; $model->receiver_city = $address->city; $model->receiver_district = $address->district; $model->receiver_address = $address->address; $model->receiver_zip = $address->zipcode; $model->receiver_mobile = $address->mobile_phone; $model->receiver_phone = $address->phone; if ($model->save()) { $cart = Yii::app()->cart; $mycart = $cart->contents(); foreach ($mycart as $mc) { $OrderItem = new OrderItem(); $OrderItem->order_id = $model->order_id; $OrderItem->item_id = $mc['id']; $OrderItem->title = $mc['title']; $OrderItem->pic_url = serialize($mc['pic_url']); $OrderItem->sn = $mc['sn']; $OrderItem->num = $mc['qty']; $OrderItem->price = $mc['price']; $OrderItem->amount = $mc['subtotal']; $OrderItem->save(); } $cart->destroy(); $this->redirect(array('success')); } } } // $this->render('create', array( // 'model' => $model, // )); }
/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer the ID of the model to be loaded */ public function loadModel($id) { $model = AddressResult::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }
/** * Creates a new model. * If creation is successful, the browser will be redirected to the 'view' page. */ public function actionCreate() { $model = new Order(); // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); if (!$_POST['delivery_address'] && !Yii::app()->user->isGuest) { echo '<script>alert("您还没有添加收货地址!")</script>'; echo '<script type="text/javascript">history.go(-1)</script>'; } else { if (isset($_POST)) { $transaction = $model->dbConnection->beginTransaction(); try { $cart = Yii::app()->cart; if (!Yii::app()->user->isGuest) { $model->attributes = $_POST; $model->user_id = Yii::app()->user->id ? Yii::app()->user->id : '0'; $cri = new CDbCriteria(array('condition' => 'contact_id =' . $_POST['delivery_address'] . ' AND user_id = ' . Yii::app()->user->id)); $address = AddressResult::model()->find($cri); $model->receiver_country = $address->country; $model->receiver_name = $address->contact_name; $model->receiver_state = $address->state; $model->receiver_city = $address->city; $model->receiver_district = $address->district; $model->receiver_address = $address->address; $model->receiver_zip = $address->zipcode; $model->receiver_mobile = $address->mobile_phone; $model->receiver_phone = $address->phone; } else { $address = $_POST['AddressResult']; $model->user_id = '0'; $model->receiver_name = $address['contact_name']; $model->receiver_state = $address['state']; $model->receiver_city = $address['city']; $model->receiver_district = $address['district']; $model->receiver_address = $address['address']; $model->receiver_zip = $address['zipcode']; $model->receiver_mobile = $address['mobile_phone']; $model->receiver_phone = $address['phone']; $model->payment_method_id = $_POST['payment_method_id']; $model->memo = $_POST['memo']; } $model->create_time = time(); $model->order_id = F::get_order_id(); $model->total_fee = 0; if (isset($_POST['keys'])) { foreach ($_POST['keys'] as $key) { $item = $cart->itemAt($key); $model->total_fee += $item['quantity'] * $item['price']; } } else { $item = Item::model()->findBypk($_POST['item_id']); $model->total_fee = $item->price * $_POST['quantity']; } if ($model->save()) { if (empty($_POST['keys'])) { $item = Item::model()->findBypk($_POST['item_id']); $sku = Sku::model()->findByPk($_POST['sku_id']); if ($sku->stock < $_POST['quantity']) { throw new Exception('stock is not enough!'); } $OrderItem = new OrderItem(); // $OrderItem->order_id = $model->order_id; // $OrderItem->item_id = $item->item_id; // $OrderItem->title = $item->title; // $OrderItem->desc = $item->desc; // $OrderItem->pic = $item->getMainPic(); // $OrderItem->props_name = $sku->props_name; // $OrderItem->price = $item->price; // $OrderItem->quantity = $_POST['quantity']; // $OrderItem->total_price = $OrderItem->quantity * $OrderItem->price; if (!$OrderItem::model()->saveOrderItem($OrderItem, $model->order_id, $item, $sku->props_name, $_POST['quantity'])) { throw new Exception('save order item fail'); } } else { foreach ($_POST['keys'] as $key) { $item = $cart->itemAt($key); $sku = Sku::model()->findByPk($item['sku']['sku_id']); if ($sku->stock < $item['quantity']) { throw new Exception('stock is not enough!'); } $sku->stock -= $item['quantity']; if (!$sku->save()) { throw new Exception('cut down stock fail'); } $OrderItem = new OrderItem(); $OrderItem->order_id = $model->order_id; $OrderItem->item_id = $item['item_id']; $OrderItem->title = $item['title']; $OrderItem->desc = $item['desc']; $OrderItem->pic = $item->getMainPic(); $OrderItem->props_name = $sku['props_name']; $OrderItem->price = $item['price']; $OrderItem->quantity = $item['quantity']; $OrderItem->total_price = $OrderItem->quantity * $OrderItem->price; if (!$OrderItem->save()) { throw new Exception('save order item fail'); } $cart->remove($key); } } } else { throw new Exception('save order fail'); } $transaction->commit(); $this->redirect(array('success')); } catch (Exception $e) { $transaction->rollBack(); $this->redirect(array('fail')); } } } }
<div style="margin-top:10px"></div> <?php if (Yii::app()->user->id) { ?> <div class="box address-panel"> <div class="box-title container_24"><span style="float:right"><?php echo CHtml::link('管理收货地址', array('/member/delivery_address/admin'), array('target' => '_blank')); ?> </span>收货地址 </div> <div class="box-content"> <?php $cri = new CDbCriteria(array('condition' => 'user_id = ' . Yii::app()->user->id)); $AddressResult = AddressResult::model()->findAll($cri); if ($AddressResult) { echo '<ul id="address_list">'; foreach ($AddressResult as $address) { $default_address = $address->is_default == 1 ? 'default_address' : ''; echo '<li class=' . $default_address . '>' . CHtml::radioButton('delivery_address', $address->is_default == 1 ? TRUE : FALSE, array('value' => $address->contact_id, 'class' => 'delivery-address', 'id' => 'delivery_address' . $address->contact_id)); echo CHtml::tag('span', array('class' => 'buyer-address shop_selection'), $address->s->name . ' ' . $address->c->name . ' ' . $address->d->name . ' ' . $address->address . ' (' . $address->contact_name . ' 收) ' . $address->mobile_phone); echo '</li>'; } echo '</ul>'; } ?> <div style="margin-top: 10px"> <a class="btn btn-primary" data-toggle="modal" data-target ='#addressModal' data-backdrop = "true"> 使用新地址</a> </div> </div>