/** * Creates a new model. * If creation is successful, the browser will be redirected to the 'view' page. */ public function actionCreate() { $model = new Profesional(); // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); if (isset($_POST['Profesional'])) { $model->attributes = $_POST['Profesional']; if ($model->save()) { $this->redirect(array('view', 'id' => $model->profesional_id)); } } $this->render('create', array('model' => $model)); }
/** * Store a newly created resource in storage. * * @return Response */ public function store() { $profesional = new Profesional(); $profesional->nombre = Input::get('nombre'); $profesional->apellido1 = Input::get('apellido1'); $profesional->apellido2 = Input::get('apellido2'); $profesional->especialidades_id = Input::get('especialidades_id'); $profesional->activo = 1; $profesional->user_id = Input::get('user_id'); $profesional->save(); if (Input::has('sede-' . Sedes::TODAS)) { $profesional->sedes()->attach(Sedes::TODAS); } else { foreach (Sedes::lists('id') as $i) { if (Input::has('sede-' . $i)) { $profesional->sedes()->attach($i); } } } return Redirect::action('ProfesionalController@index'); }
public function actionCreateProfesional() { // Instancio modelos que se van a usar en el formulario $model = new Profesional(); $model_conyuge = new Conyuge(); $model_domicilioprofesional = new Domicilioprofesional(); $model_contacto = new Contacto(); $model_domicilio = new Domicilio(); $modellocalidad = new Localidad(); $model_datoimpositivo = new Datoimpositivo(); if (isset($_POST['Profesional'], $_POST['Domicilio'])) { $model->setAttributes($_POST['Profesional']); $model->idlocalidad = isset($_POST['Localidad']['idlocalidad']) ? $_POST['Localidad']['idlocalidad'] : null; $model_domicilio->setAttributes($_POST['Domicilio']); $model_domicilio->iddomiciliotipo = Domiciliotipo::PARTICULAR; try { $transac = Yii::app()->db->beginTransaction(); // si se carga conyuge, este modelo es opcional en el formulario 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"); } } if ($model->validate() && $model_domicilio->validate()) { // estos dos modelos del formulario son obligatorios // si se cargan datos impositivos if (strlen($_POST['Datoimpositivo']['cuit']) != 0) { $model_datoimpositivo->setAttributes($_POST['Datoimpositivo']); 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(); // segun boton de grabar o agregar domicilios if (isset($_POST['savebutton'])) { $this->redirect(array('manageProfesional')); } else { // se usó boton domicilio, se redirige a la vista update para cargar domicilios $this->redirect(array('updateProfesional', 'id' => $model->identidad, "opendialog" => true)); // redirecciona a update para permitir cargar contactos } } } catch (Exception $e) { $transac->rollback(); $model->addError('', $e->getMessage()); } } $this->render('create_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' => false)); }