예제 #1
0
 public function validaUfValida($attribute, $params)
 {
     if (!empty($this->id_uf)) {
         $u = Uf::findOne($this->id_uf);
         if ($u->estado == 0) {
             $uf_generica = \Yii::$app->params['uf.generica'];
             if ($uf_generica !== $u->id) {
                 $this->addError('id_uf', 'La UF está dada de baja');
                 return;
             }
         }
     }
 }
예제 #2
0
 /**
  * Finds the Uf model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return Uf the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = Uf::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
예제 #3
0
 /**
  * Creates a new UfTitularidad model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionCreate($uf)
 {
     $model = new UfTitularidad();
     $model->id_uf = $uf;
     $titPers = new UfTitularidadPersonas();
     if ($model->load(Yii::$app->request->post())) {
         if ($model->validate()) {
             $titPers->load(Yii::$app->request->post());
             $sessPersonas = \Yii::$app->session->get('titpersonas');
             if (!$sessPersonas) {
                 \Yii::$app->session->addFlash('danger', 'Debe especificar al menos una persona');
             } else {
                 // Comienza Transaccion
                 $transaction = Yii::$app->db->beginTransaction();
                 try {
                     // busca la UF
                     $UfModel = Uf::findOne($model->id_uf);
                     // guarda el id del ultimo movimiento de titularidad
                     if (!empty($UfModel->ultUfTitularidad->id)) {
                         $idUltTitularidad = $UfModel->ultUfTitularidad->id;
                         // busca el ultimo movimiento de titularidad
                         $ultMovimTit = UfTitularidad::findOne($idUltTitularidad);
                         // actualizar el campo ultima en false para que no sea mas la ultima titularidad
                         $ultMovimTit->ultima = false;
                         $ultMovimTit->save(false);
                     }
                     // ultima en true indica que es el ultimo movimiento de titularidad (el que se esta grabando en este momento)
                     $model->ultima = true;
                     $model->save(false);
                     // elimina todos los autorizantes actuales de la unidad para reemplazarlos con los nuevos
                     Autorizantes::deleteAll(['id_uf' => $model->id_uf]);
                     $aut = new Autorizantes();
                     $aut->id_uf = $model->id_uf;
                     // grabación de personas
                     $titPers->uf_titularidad_id = $model->id;
                     if ($model->tipoMovim->cesion) {
                         $titPers->tipo = UfTitularidadPersonas::TIPO_CES;
                     } else {
                         $titPers->tipo = UfTitularidadPersonas::TIPO_TIT;
                     }
                     foreach ($sessPersonas as $titPers->id_persona) {
                         // graba en UfTitularidadPersonas
                         $titPers->id = null;
                         $titPers->isNewRecord = true;
                         $titPers->save(false);
                         // graba en Autorizantes
                         $aut->id = null;
                         $aut->isNewRecord = true;
                         $aut->id_persona = $titPers->id_persona;
                         $aut->save(false);
                     }
                     // foreach sessPersonas
                     if ($model->tipoMovim->cesion) {
                         // si es una cesion, las personas de $sessPersonas se grabaron como cesionarios,
                         // entonces se debe grabar a los titulares originales como cedentes
                         $ultTitulares = UfTitularidadPersonas::find()->where(['uf_titularidad_id' => $idUltTitularidad])->all();
                         foreach ($ultTitulares as $ut) {
                             $titPers->id = null;
                             $titPers->isNewRecord = true;
                             $titPers->id_persona = $ut->id_persona;
                             $titPers->tipo = UfTitularidadPersonas::TIPO_CED;
                             $titPers->observaciones = $ut->observaciones;
                             $titPers->save(false);
                         }
                     }
                     // Todo bien
                     $transaction->commit();
                     \Yii::$app->session->addFlash('success', 'Movimiento grabado correctamente');
                     // limpia todo
                     \Yii::$app->session->remove('titpersonas');
                     return $this->redirect(['view', 'id' => $model->id]);
                 } catch (\Exception $e) {
                     $transaction->rollBack();
                     Yii::$app->session->addFlash('danger', 'Hubo un error en la grabación');
                     throw $e;
                 }
                 // try..catch
             }
             // else !sessPersonas
         }
         // $model->validate
     }
     // $model->load
     $listas = $this->refreshListas();
     return $this->render('create', ['model' => $model, 'titPers' => $titPers, 'tmpListas' => $listas]);
 }
예제 #4
0
파일: _form.php 프로젝트: ibergonzi/country
  border-top-right-radius: 2px;
}
.table-condensed > thead > tr > th,
.table-condensed > tbody > tr > th,
.table-condensed > tfoot > tr > th,
.table-condensed > thead > tr > td,
.table-condensed > tbody > tr > td,
.table-condensed > tfoot > tr > td {
  padding: 1px;
}
');
?>

<div class="uf-titularidad-form">
    <?php 
$UfModel = Uf::findOne($model->id_uf);
if (!empty($UfModel->ultUfTitularidad->id)) {
    $puedeCambiarTipoMovim = true;
    $query = UfTitularidadPersonas::find()->joinWith('persona')->where(['uf_titularidad_id' => $UfModel->ultUfTitularidad->id]);
    $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['defaultOrder' => ['tipo' => SORT_DESC], 'enableMultiSort' => true]]);
    $xDefecto = UfTitularidad::findOne($UfModel->ultUfTitularidad->id);
    $model->exp_telefono = $xDefecto->exp_telefono;
    $model->exp_direccion = $xDefecto->exp_direccion;
    $model->exp_localidad = $xDefecto->exp_localidad;
    $model->exp_email = $xDefecto->exp_email;
    echo GridView::widget(['dataProvider' => $dataProvider, 'condensed' => true, 'layout' => '{items}', 'panel' => ['type' => GridView::TYPE_INFO, 'heading' => 'Titularidad actual sobre U.F.' . $model->id_uf, 'footer' => false, 'before' => false, 'after' => false], 'panelHeadingTemplate' => '{heading}', 'resizableColumns' => false, 'columns' => [['attribute' => 'tipo', 'value' => function ($model) {
        return UfTitularidadPersonas::getTipos($model->tipo);
    }], 'id_persona', 'persona.apellido', 'persona.nombre', 'persona.nombre2', 'persona.tipoDoc.desc_tipo_doc_abr', 'persona.nro_doc', 'observaciones']]);
} else {
    $puedeCambiarTipoMovim = false;
}