示例#1
0
 public function actionUpdate($id)
 {
     $model = $this->loadModel($id);
     $cantunidad = $model->cantunidads;
     //relacion para obtener los registros de cantunidad
     $modelcantunidad = new Cantunidad('update');
     if (isset($_POST['Practica']) && isset($_POST['Cantunidad'])) {
         $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 _form
                 $cant = 0;
                 // variable para controlar que al menos una
                 // cantidad sea >0
                 foreach ($_POST['Cantunidad'] as $i => $item) {
                     $id = $_POST['Cantunidad'][$i]['idcantunidad'];
                     $modelcantunidad = Cantunidad::model()->findByPk($id);
                     $modelcantunidad->attributes = $_POST['Cantunidad'][$i];
                     $cant .= $modelcantunidad->cantidad;
                     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 actualizó correctamente.'));
                 $this->redirect(array('manage'));
             }
         } catch (Exception $e) {
             $transac->rollback();
             $model->addError('', $e->getMessage());
         }
     }
     $this->render('update', array('model' => $model, 'modelcantunidad' => $modelcantunidad, 'cantunidad' => $cantunidad));
 }
 public function loadModel($id)
 {
     $model = Cantunidad::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, Yii::t('app', 'The requested page does not exist.'));
     }
     return $model;
 }