public function actionCreate() { $model = new Conyuge(); if (isset($_POST['Conyuge'])) { $model->setAttributes($_POST['Conyuge']); if (isset($_POST['Conyuge']['iddocumentotipo0'])) { $model->iddocumentotipo0 = $_POST['Conyuge']['iddocumentotipo0']; } 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['Conyuge'])) { $model->attributes = $_GET['Conyuge']; } $this->render('create', array('model' => $model)); }
public function actionUpdateProfesional($id, $opendialog = false) { $model = $this->loadModel($id); $model_domicilio = Domicilio::model()->SearchDomPart($id); $modellocalidad = $model->idlocalidad == null ? new Localidad() : Localidad::model()->findByPk($model->idlocalidad); // validar con isset por si viene desde create con boton de guardar y agregar domicilio profesionales if (isset($model->iddatoimpositivo)) { $model_datoimpositivo = $model->iddatoimpositivo0; } else { $model_datoimpositivo = new Datoimpositivo(); } if (isset($model->idconyuge)) { $model_conyuge = $model->idconyuge0; } else { $model_conyuge = new Conyuge(); } $model_domicilioprofesional = new Domicilioprofesional(); $model_domicilioprofesional->identidad = $model->identidad; $model_contacto = new Contacto(); // $model_contacto->unsetAttributes(); // $model_contacto->iddomicilio=null; if (isset($_POST[get_class($model)], $_POST['Domicilio'])) { $model->setAttributes($_POST[get_class($model)]); $model->idlocalidad = isset($_POST['Localidad']['idlocalidad']) ? $_POST['Localidad']['idlocalidad'] : null; $model_domicilio->setAttributes($_POST['Domicilio']); $model_domicilio->iddomiciliotipo = Domiciliotipo::PARTICULAR; $transac = Yii::app()->db->beginTransaction(); try { // si se selecciona el checkbox de borrar datos conyuge if (isset($_POST['borrarconyuge'])) { $model_conyuge->deleteByPk($model->idconyuge); $model->idconyuge = null; } else { // si hay datos de conyuge para grabar if (strlen($_POST['Conyuge']['apellido']) != 0) { $model_conyuge->setAttributes($_POST['Conyuge']); if ($model_conyuge->save()) { $model->idconyuge = $model_conyuge->idconyuge; } else { throw new Exception("Hubo un error al grabar datos del Cónyuge"); } } } // validacion de modelos obligatorios if ($model->validate() && $model_domicilio->validate()) { // modelo datoimpositivo opcional if (strlen($_POST['Datoimpositivo']['cuit']) != 0) { $model_datoimpositivo->setAttributes($_POST['Datoimpositivo']); // echo $_POST['Datoimpositivo']['idiibbcodigo'];exit; if ($model_datoimpositivo->save()) { $model->iddatoimpositivo = $model_datoimpositivo->iddatoimpositivo; } else { throw new Exception("Hubo un error al grabar datos impositivos del Profesional"); } } if ($model->save(false)) { $model_domicilio->identidad = $model->identidad; } else { throw new Exception("Hubo un error al grabar datos del Profesional"); } if (!$model_domicilio->save(false)) { throw new Exception("Hubo un error al grabar datos del Domicilio"); } $transac->commit(); if (isset($_POST['savebutton'])) { // si se uso el boton grabar, esto es true, si se uso el boton contacto, es falso $this->redirect(array('manage' . get_class($model))); } else { // se usó boton contacto, se redirige a la vista update para cargar contactos $this->redirect(array('update', 'id' => $model->identidad, "opendialog" => true)); // redirecciona a update para permitir cargar contactos } } } catch (Exception $e) { $transac->rollback(); $model->addError('', $e->getMessage()); } } $this->render('update_profesional', array('model' => $model, 'model_conyuge' => $model_conyuge, 'model_domicilio' => $model_domicilio, 'model_domicilioprofesional' => $model_domicilioprofesional, 'model_datoimpositivo' => $model_datoimpositivo, 'model_contacto' => $model_contacto, 'modellocalidad' => $modellocalidad, 'opendialog' => $opendialog)); }