예제 #1
0
 public function loadModel($id)
 {
     $model = Conyuge::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, Yii::t('app', 'The requested page does not exist.'));
     }
     return $model;
 }
예제 #2
0
 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));
 }