예제 #1
0
 public function actionUpdate($id)
 {
     $model = MiFactoria::CargaModelo($this->modelopadre, $id);
     if ($this->itsFirsTime($id)) {
         if ($this->getUsersWorkingNow($id)) {
             //si esta ocupado
             Yii::app()->user->setFlash('error', "El documento esta siendo modificado por otro usuario ");
             $this->redirect(array('view', 'id' => $model->id));
         } else {
             // Si no lo esta renderizar sin mas
             $this->setBloqueo($id);
             ///bloquea
             $this->render('update', array('model' => $model));
             yii::app()->end();
         }
     } else {
         if ($this->isRefreshCGridView($id)) {
             //si esta refresh de grilla
             $this->render('update', array('model' => $model));
             yii::app()->end();
         } else {
             // Si no lo es  tenemos que analizar los dos casos que quedan
             if ($this->IsRefreshUrlWithoutSubmit($id)) {
                 ///Solo refreso la pagina
                 Yii::app()->user->setFlash('notice', "No has confirmado los datos, solo haz refrescaod la pagina ");
                 //echo "<br><br><br><br><br><br><br><br>salio eso";
                 $this->render('update', array('model' => $model));
                 yii::app()->end();
             } else {
                 ///Ahora si recein se animo a hacer $_POST	, y confirmar los datos
                 if (isset($_POST[$this->modelopadre])) {
                     $model->attributes = $_POST[$this->modelopadre];
                     //if($model->hacambiado()) {
                     if ($model->save()) {
                         $this->terminabloqueo($id);
                         Yii::app()->user->setFlash('success', "Se grabo el documento  " . $this->SQL);
                         $this->redirect(array('view', 'id' => $model->id));
                     } else {
                         Yii::app()->user->setFlash('error', "  NO s epudo granar e domcjuento " . $this->displaymensajes('error'));
                         $this->render('update', array('model' => $model));
                         yii::app()->end();
                     }
                     //} else   {
                     //Yii::app()->user->setFlash('notice', "  no has modificado nada  de la cabecera ");
                     //$this->render('update',array('model'=>$model));
                     //yii::app()->end();
                     //}
                 } else {
                     //En este caso quiere decir que la sesion/bloqueo anterior no se ha cerrado correactmente
                     $this->terminabloqueo($id);
                     $this->SetBloqueo($id);
                     Yii::app()->user->setFlash('notice', "NO cerraste correctamente, Ya tenías una sesion abierta en este domcuento,");
                     $this->render('update', array('model' => $model));
                     yii::app()->end();
                 }
             }
         }
     }
 }
예제 #2
0
 public function actionEditaDocumento($id)
 {
     $model = MiFactoria::CargaModelo($this->modelopadre, $id);
     if (count($model->ocompra_tenorsup) == 0 or count($model->ocompra_tenorinf) == 0) {
         yii::app()->user->setFlash('notice', 'Favor de definir los tenores para lo valores de la posicion y la sociedad');
     }
     if ($model->{$this->campoestado} == ESTADO_PREVIO) {
         $model->{$this->campoestado} = ESTADO_CREADO;
     }
     if ($this->itsFirsTime($id)) {
         $uintruso = $this->getUsersWorkingNow($id);
         if ($uintruso) {
             //si esta ocupado
             Yii::app()->user->setFlash('error', "Solo puede visualizar, este documento, esta siendo modificado por el usuario    :     <b>" . Yii::app()->user->um->loadUserById($uintruso)->username . " </b>");
             $this->redirect(array('VerDocumento', 'id' => $model->idguia));
         } else {
             // Si no lo esta renderizar sin mas
             $this->setBloqueo($id);
             ///bloquea
             $this->ClearBuffer($id);
             //Limpia temporal antes de levantar
             $this->IniciaBuffer($id);
             //Levanta temporales
             $this->render('update', array('model' => $model));
             yii::app()->end();
         }
     } else {
         if ($this->isRefreshCGridView($id)) {
             //si esta refresh de grilla
             $this->render('update', array('model' => $model));
             yii::app()->end();
         } else {
             // Si no lo es  tenemos que analizar los dos casos que quedan
             if ($this->IsRefreshUrlWithoutSubmit($id)) {
                 ///Solo refreso la pagina
                 Yii::app()->user->setFlash('notice', "No has confirmado los datos, solo haz refrescaod la pagina ");
                 $this->render('update', array('model' => $model));
                 yii::app()->end();
             } else {
                 $this->performAjaxValidation($model);
                 if (isset($_POST[$this->modelopadre])) {
                     $model->attributes = $_POST[$this->modelopadre];
                     //$model->validate();
                     //	if($this->hubocambiodetalle($id) OR  $model->hacambiado()) {
                     if (true) {
                         if ($model->save()) {
                             $this->ConfirmaBuffer($id);
                             //Levanta temporales
                             $this->terminabloqueo($id);
                             //$this->terminabloqueo($id); // Desbloquea
                             //$this->grabaitems($this->tempdpeticion_a_dpeticion($id)); //Graba temporales a la tabla Dpeticion
                             $this->ClearBuffer($id);
                             //$this->limpiatemporaldetalle(); //Limpia temporal
                             Yii::app()->user->setFlash('success', "Se grabo el documento  " . $this->SQL);
                             //$this->render('update',array('model'=>$model));
                             $this->redirect(array('VerDocumento', 'id' => $model->idguia));
                         } else {
                             //echo CActiveForm::validate($model);
                             $this->render('update', array('model' => $model));
                             yii::app()->end();
                             /*Yii::app()->end();
                               throw new CHttpException(500,'Hubo un error al momento de grabar la cabecera');*/
                         }
                     } else {
                         Yii::app()->user->setFlash('notice', "  Enviaste los datos pero no has modificado nada.... ");
                         $this->render('update', array('model' => $model));
                         yii::app()->end();
                     }
                 } else {
                     //En este caso quiere decir que la sesion/bloqueo anterior no se ha cerrado correactmente
                     // Y es posble que haya entrado despues de 2 dias, una semana asi
                     $this->terminabloqueo($id);
                     $this->SetBloqueo($id);
                     Yii::app()->user->setFlash('notice', "NO cerraste correctamente, Ya tenías una sesion abierta en este domcuento,");
                     $this->render('update', array('model' => $model));
                     yii::app()->end();
                 }
             }
         }
     }
 }
예제 #3
0
 public function actionConfirmar($id)
 {
     $model = MiFactoria::CargaModelo($this->modelopadre, $id);
     $this->performAjaxValidation($model);
     if ($this->itsFirsTime($id)) {
         if ($this->getUsersWorkingNow($id)) {
             //si esta ocupado
             $this->redirect(array('view', 'id' => $model->id));
         } else {
             // Si no lo esta renderizar sin mas
             $this->setBloqueo($id);
             ///bloquea
             $this->ClearBuffer($id);
             //Limpia temporal antes de levantar
             MiFactoria::insertadetalles($model->id, $model->codmovimiento, $model->numdocref);
             /*echo "<br><br><br><br>";
             		print_r(yii::app()->user->getFlashes());*/
             $this->render('n_form', array('model' => $model));
             yii::app()->end();
         }
     } else {
         if ($this->isRefreshCGridView($id)) {
             //si esta refresh de grilla
             $this->render('n_form', array('model' => $model));
             yii::app()->end();
         } else {
             // Si no lo es  tenemos que analizar los dos casos que quedan
             if ($this->IsRefreshUrlWithoutSubmit($id)) {
                 ///Solo refreso la pagina
                 Yii::app()->user->setFlash('notice', "No has confirmado los datos, solo haz refrescaod la pagina ");
                 $this->render('n_form', array('model' => $model));
                 yii::app()->end();
             } else {
                 ///Ahora si recein se animo a hacer $_POST	, y confirmar los datos
                 if (isset($_POST[$this->modelopadre])) {
                     $model->attributes = $_POST[$this->modelopadre];
                     $model->cestadovale = '20';
                     $transacc = $model->dbConnection->beginTransaction();
                     if ($model->save()) {
                         $this->efectuamovimiento($model);
                         //oJO SOLO DESPUES DE COFIRMAR BUFFER
                         $this->ConfirmaBuffer($id);
                         //Levanta temporales
                         if (!$this->detectaerrores()) {
                             $transacc->commit();
                             Yii::app()->user->setFlash('success', "Se grabo el documento  " . $this->SQL);
                             $this->ClearBuffer($id);
                             $this->terminabloqueo($id);
                             $this->redirect(array('editar', 'id' => $model->id));
                         } else {
                             //print_r(yii::app()->user->getFlashes());
                             Yii::app()->user->setFlash('error', "Se ha presentado algunos inconvenientes " . $this->displaymensajes('error'));
                             $transacc->rollback();
                             $this->terminabloqueo($id);
                             $this->render('n_form', array('model' => $model));
                             yii::app()->end();
                         }
                     } else {
                         Yii::app()->user->setFlash('error', " No se pudo grabar el documento  " . $this->SQL);
                         //$transacc->rollback();
                         $this->render('n_form', array('model' => $model));
                         yii::app()->end();
                         /*Yii::app()->end();
                         		throw new CHttpException(500,'Hubo un error al momento de grabar la cabecera');*/
                     }
                 } else {
                     //En este caso quiere decir que la sesion/bloqueo anterior no se ha cerrado correactmente
                     // Y es posble que haya entrado despues de 2 dias, una semana asi
                     $this->terminabloqueo($id);
                     $this->SetBloqueo($id);
                     Yii::app()->user->setFlash('notice', "NO cerraste correctamente, Ya tenías una sesion abierta en este domcuento,");
                     $this->render('n_form', array('model' => $model));
                     yii::app()->end();
                 }
             }
         }
     }
 }
예제 #4
0
 public function actionEditaDocumento($id)
 {
     $model = MiFactoria::CargaModelo($this->modelopadre, $id);
     if ($model->{$this->campoestado} == ESTADO_PREVIO) {
         $model->{$this->campoestado} = ESTADO_CREADO;
     }
     //$this->performAjaxValidation($model);
     /*ECHO isset($_POST[$this->modelopadre])?"<br><br><br><br><br><br><br><br>SI ES UN  POST['".$this->modelopadre."']":"<br><br><br><br><br><br><br><br>NO es un  POST";
     			ECHO isset($_GET[$this->modelopadre])?"<BR> ES UN  GET(MODELOPADRE) ":"<BR> NO  ES UN  GET(MODELOPADRE)";
     		ECHO isset($_GET['ajax'])?"<BR> ES UN  GET(ajax) ":"<BR> NO  ES UN  GET(ajax)";
     		//ECHO isset($_GET['ajax'])?"<BR> ES UN  GET(ajax) ":"<BR> NO  ES UN  GET(ajax)";
     		echo ($this->estasEnSesion($id))?"<BR> ESTAS EN SESION  ":"<BR> NO NO ESTAS EN SESION ";
     	//	echo " this->es_refreshdegrilla  ".var_dump($this->es_refreshdegrilla($id))."  <br>";
     		echo " this->IsRefreshUrlWithoutSubmit  ".var_dump($this->IsRefreshUrlWithoutSubmit($id))."  <br>";*/
     if ($this->itsFirsTime($id)) {
         if ($this->getUsersWorkingNow($id)) {
             //si esta ocupado
             /* echo " es romer a vez y esta ocupado esta ocpado x otro   ";
             			yii::app()->end();*/
             Yii::app()->user->setFlash('error', "El documento esta siendo modificado por otro usuario ");
             $this->redirect(array('view', 'id' => $model->id));
         } else {
             // Si no lo esta renderizar sin mas
             /*echo " es primer avez y renderizar sin mas    ";
               yii::app()->end();*/
             $this->setBloqueo($id);
             ///bloquea
             $this->ClearBuffer($id);
             //Limpia temporal antes de levantar
             $this->IniciaBuffer($id);
             //Levanta temporales
             $this->render('update', array('model' => $model));
             yii::app()->end();
         }
     } else {
         if ($this->isRefreshCGridView($id)) {
             //si esta refresh de grilla
             /*echo " NO es primera vez y  Es un refresh carajo";
             		yii::app()->end();*/
             $this->render('update', array('model' => $model));
             yii::app()->end();
         } else {
             // Si no lo es  tenemos que analizar los dos casos que quedan
             if ($this->IsRefreshUrlWithoutSubmit($id)) {
                 ///Solo refreso la pagina
                 /* echo "NO es primera vez  y reresco si submit ";
                 		 yii::app()->end();*/
                 Yii::app()->user->setFlash('notice', "No has confirmado los datos, solo haz refrescaod la pagina ");
                 $this->render('update', array('model' => $model));
                 yii::app()->end();
             } else {
                 ///Ahora si recein se animo a hacer $_POST	, y confirmar los datos
                 /*echo "se animo a ha hacer POST ";
                 		yii::app()->end();*/
                 $this->performAjaxValidation($model);
                 if (isset($_POST[$this->modelopadre])) {
                     $model->attributes = $_POST[$this->modelopadre];
                     //$model->validate();
                     //	if($this->hubocambiodetalle($id) OR  $model->hacambiado()) {
                     if (true) {
                         if ($model->save()) {
                             $this->ConfirmaBuffer($id);
                             //Levanta temporales
                             //$this->grabaitems($this->tempdpeticion_a_dpeticion($id)); //Graba temporales a la tabla Dpeticion
                             $this->ClearBuffer($id);
                             //$this->limpiatemporaldetalle(); //Limpia temporal
                             $this->terminabloqueo($id);
                             //$this->terminabloqueo($id); // Desbloquea
                             Yii::app()->user->setFlash('success', "Se grabo el documento  " . $this->SQL);
                             //$this->render('update',array('model'=>$model));
                             $this->redirect(array('visualiza', 'id' => $model->id));
                         } else {
                             //echo CActiveForm::validate($model);
                             $this->render('update', array('model' => $model));
                             yii::app()->end();
                             /*Yii::app()->end();
                               throw new CHttpException(500,'Hubo un error al momento de grabar la cabecera');*/
                         }
                     } else {
                         Yii::app()->user->setFlash('notice', "  Enviaste los datos pero no has modificado nada.... ");
                         $this->render('update', array('model' => $model));
                         yii::app()->end();
                     }
                 } else {
                     //En este caso quiere decir que la sesion/bloqueo anterior no se ha cerrado correactmente
                     // Y es posble que haya entrado despues de 2 dias, una semana asi
                     $this->terminabloqueo($id);
                     $this->SetBloqueo($id);
                     Yii::app()->user->setFlash('notice', "NO cerraste correctamente, Ya tenías una sesion abierta en este domcuento,");
                     $this->render('update', array('model' => $model));
                     yii::app()->end();
                 }
             }
         }
     }
 }