public function actionAddQueueSet()
{
$queueset = new models\QueueSet('formCreate');
$queue = new models\Queue();
$queue->is_initial = true;
$errors = array();
if (!empty($_POST)) {
$queueset->attributes = $_POST[\CHtml::modelName($queueset)];
$queue->attributes = $_POST[\CHtml::modelName($queue)];
if (!$queueset->validate()) {
$errors['Queue Set'] = array();
foreach ($queueset->getErrors() as $errs) {
foreach ($errs as $e) {
$errors['Queue Set'][] = $e;
}
}
}
if (!$queue->validate()) {
$errors['Initial Queue'] = array_values($queue->getErrors());
}
if (!count($errors)) {
$transaction = Yii::app()->db->beginTransaction();
try {
$queue->save();
$queueset->initial_queue_id = $queue->id;
$queueset->setScenario('insert');
$queueset->save();
\Audit::add('admin', 'create', $queueset->id, null, array('module' => 'PatientTicketing', 'model' => $queueset->getShortModelName()));
$transaction->commit();
$resp = array('success' => true, 'queuesetId' => $queueset->id, 'initialQueueId' => $queueset->initial_queue_id);
echo \CJSON::encode($resp);
} catch (Exception $e) {
$transaction->rollback();
throw new \CHttpException(500, 'Could not save queue set and/or initial queue');
}
} else {
$resp = array('success' => false, 'form' => $this->renderPartial('form_queueset', array('queueset' => $queueset, 'queue' => $queue, 'errors' => $errors), true));
echo \CJSON::encode($resp);
}
} else {
$this->renderPartial('form_queueset', array('queueset' => $queueset, 'queue' => $queue, 'errors' => null));
}
}