/** * Creates a new model. * If creation is successful, the browser will be redirected to the 'view' page. */ public function actionCreate() { $model = new Expenses(); // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); if (isset($_POST['Expenses'])) { $model->attributes = $_POST['Expenses']; if ($model->save()) { $this->redirect(array('view', 'id' => $model->id)); } } $this->render('create', array('model' => $model)); }
/** * Creates a new model. * @return create view */ public function actionCreate() { // check if user has permissions to createExpenses if (Yii::app()->user->checkAccess('createExpenses')) { // create Expenses object model $model = new Expenses(); // if Expenses form exist if (isset($_POST['Expenses'])) { // set form elements to Expenses model attributes $model->attributes = $_POST['Expenses']; $model->project_id = Yii::app()->user->getState('project_selected'); $model->status_id = Status::STATUS_PENDING; // validate and save if ($model->save()) { // save log $attributes = array('log_date' => date("Y-m-d G:i:s"), 'log_activity' => 'ExpenseCreated', 'log_resourceid' => $model->primaryKey, 'log_type' => Logs::LOG_CREATED, 'user_id' => Yii::app()->user->id, 'module_id' => Yii::app()->controller->id, 'project_id' => $model->project_id); Logs::model()->saveLog($attributes); $project = Projects::model()->findByPk(Yii::app()->user->getState('project_selected')); // send an email to projects managers only $recipientsList = array(); $ProjectManagers = Projects::model()->findManagersByProject($project->project_id); $managersArray = array(); foreach ($ProjectManagers as $manager) { $managersArray['email'] = $manager->user_email; $managersArray['name'] = $manager->CompleteName; array_push($recipientsList, $managersArray); } // prepare template to send via email $str = $this->renderPartial('//templates/expenses/activity', array('model' => $model, 'projectName' => $project->project_name, 'userposted' => Yii::app()->user->CompleteName, 'applicationName' => Yii::app()->name, 'applicationUrl' => Yii::app()->createAbsoluteUrl('expenses/view', array('id' => $model->primaryKey))), true); Yii::import('application.extensions.phpMailer.yiiPhpMailer'); $mailer = new yiiPhpMailer(); $subject = Yii::t('email', 'ExpenseCreated') . " - " . $project->project_name; $mailer->pushMail($subject, $str, $recipientsList, Emails::PRIORITY_NORMAL); // to prevent F5 keypress, redirect to create page $this->redirect(array('view', 'id' => $model->expense_id)); } } $this->render('create', array('expense' => $model)); } else { throw new CHttpException(403, Yii::t('site', '403_Error')); } }