Пример #1
0
 public function actionCreate()
 {
     $model = new Osagrupacion();
     $modelContrato = new Contrato();
     $modelContacto = new Contacto();
     if (isset($_POST['Osagrupacion'], $_POST['Contrato'])) {
         $model->setAttributes($_POST['Osagrupacion']);
         $model->nombre = strtoupper($model->nombre);
         $modelContrato->setAttributes($_POST['Contrato']);
         // procesar carga de archivo de imagen de contrato:
         if (!empty($_FILES['Contrato']['tmp_name']['contratoimg'])) {
             $file = CUploadedFile::getInstance($modelContrato, 'contratoimg');
             $modelContrato->nombreimg = $file->name;
             $modelContrato->imgtipo = $file->type;
             $fp = fopen($file->tempName, 'r');
             $content = fread($fp, filesize($file->tempName));
             fclose($fp);
             $modelContrato->contratoimg = $content;
         }
         $transac = Yii::app()->db->beginTransaction();
         try {
             $model->validate();
             if ($modelContrato->save()) {
                 $model->idcontrato = $modelContrato->idcontrato;
                 if ($model->save()) {
                     $transac->commit();
                     if (!isset($_POST['contactbutton'])) {
                         // si se uso el boton grabar, esto es true, si se uso el boton contacto, es falso
                         $this->redirect(array('manage'));
                     } else {
                         // se usó boton contacto, se redirige  a la vista update para cargar contactos
                         $modelContacto->idosagrupacion = $model->idosagrupacion;
                         $this->redirect(array('update', 'id' => $model->idosagrupacion, "opendialog" => true));
                         // redirecciona a update para permitir cargar contactos
                     }
                 } else {
                     throw new Exception("Hubo un error al grabar la OOSS");
                 }
             } else {
                 throw new Exception("Hubo un error al grabar el contrato ");
             }
         } catch (Exception $e) {
             $model->addError('', $e->getMessage());
             $transac->rollback();
         }
     }
     $this->render('create', array('model' => $model, 'modelContrato' => $modelContrato, 'modelContacto' => $modelContacto, 'opendialog' => false));
 }
Пример #2
0
 public function actionManage()
 {
     $model = new Contrato('search');
     $model->unsetAttributes();
     if (isset($_GET['Contrato'])) {
         $model->setAttributes($_GET['Contrato']);
     }
     $this->render('manage', array('model' => $model));
 }