public function actionCreate() { $model = new Cantunidad(); if (isset($_POST['Cantunidad'])) { $model->setAttributes($_POST['Cantunidad']); try { if ($model->save()) { $this->setFlash('notice', array('title' => 'Mensaje', 'content' => 'Se grabó correctamente.')); $this->redirect(array('manage')); } } catch (Exception $e) { $model->addError('', $e->getMessage()); } } elseif (isset($_GET['Cantunidad'])) { $model->attributes = $_GET['Cantunidad']; } $this->render('create', array('model' => $model)); }
public function actionCreate() { $model = new Practica(); $modelcantunidad = new Cantunidad(); if (isset($_POST['Practica'])) { $model->setAttributes($_POST['Practica']); $transac = Yii::app()->db->beginTransaction(); try { if ($model->save()) { // $_POST['Cantunidad'] es un arreglo , // con una fila por cada item de tipo de unidad y cantidades // como se ve en el //practica/_form_alta if (isset($_POST['Cantunidad'])) { $cant = 0; foreach ($_POST['Cantunidad'] as $i => $item) { $modelcantunidad = new Cantunidad(); $modelcantunidad->setAttributes($_POST['Cantunidad'][$i]); $cant .= $modelcantunidad->cantidad; $modelcantunidad->idpractica = $model->idpractica; if (!$modelcantunidad->save()) { throw new Exception("Hubo un error al grabar las unidades"); } } // validar que al menos una unidad tenga valor >0 if ($cant == 0) { $modelcantunidad->addError('', 'Ingrese al menos un valor en unidades'); throw new Exception("Hubo un error al grabar las Unidades"); } } $transac->commit(); $this->setFlash('notice', array('title' => 'Mensaje', 'content' => 'Se grabó correctamente.')); $this->redirect(array('manage')); } } catch (Exception $e) { $transac->rollback(); $model->addError('', $e->getMessage()); } } $this->render('create', array('model' => $model, 'modelcantunidad' => $modelcantunidad)); }