public function actionAddPaid($id = 0, $withDate = 0) { $model = new AddToAdForm(); $paidServices = PaidServices::model()->findAll('id != ' . PaidServices::ID_ADD_FUNDS); $paidServicesArray = CHtml::listData($paidServices, 'id', 'name'); $request = Yii::app()->request; $data = $request->getPost('AddToAdForm'); if ($data) { $apartmentId = $request->getPost('ad_id'); $withDate = $request->getPost('withDate'); $model->attributes = $data; if ($model->validate()) { $apartment = Apartment::model()->findByPk($apartmentId); $paidService = PaidServices::model()->findByPk($model->paid_id); if (!$paidService || !$apartment) { throw new CException('Not valid data'); } if (PaidServices::applyToApartment($apartmentId, $paidService->id, $model->date_end)) { echo CJSON::encode(array('status' => 'ok', 'apartmentId' => $apartmentId, 'html' => $apartment->getPaidHtml($withDate, true))); Yii::app()->end(); } } else { echo CJSON::encode(array('status' => 'err', 'html' => $this->renderPartial('_add_to_form', array('id' => $apartmentId, 'model' => $model, 'withDate' => $withDate, 'paidServicesArray' => $paidServicesArray), true))); Yii::app()->end(); } } $renderData = array('id' => $id, 'model' => $model, 'withDate' => $withDate, 'paidServicesArray' => $paidServicesArray); if (Yii::app()->request->isAjaxRequest) { $this->renderPartial('_add_to_ad', $renderData); } else { $this->render('_add_to_ad', $renderData); } }
public function complete() { if ($this->tariff_id) { # оплата за тарифный план $tariffInfo = TariffPlans::getFullTariffInfoById($this->tariff_id); if ($tariffInfo['duration']) { $interval = 'INTERVAL ' . $tariffInfo["duration"] . ' DAY'; } else { $interval = 'INTERVAL 1460 DAY'; } $dateEnd = new CDbExpression('NOW() + ' . $interval); TariffPlans::applyToUser($this->user_id, $this->tariff_id, $dateEnd, $interval); } else { if ($this->paid_id != PaidServices::ID_ADD_FUNDS) { $paidOption = $this->paidOption; $interval = 'INTERVAL ' . $paidOption->duration_days . ' DAY'; $dateEnd = new CDbExpression('NOW() + ' . $interval); PaidServices::applyToApartment($this->apartment_id, $this->paid_id, $dateEnd, $interval); } else { $user = User::model()->findByPk($this->user_id); if (!$user) { throw new CHttpException('Not user with ID ' . $this->user_id); } $user->addToBalance($this->amount); } } $this->status = Payments::STATUS_PAYMENTCOMPLETE; $this->update('status'); return true; }