public function actionConfirmaringreso($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 /*echo "si vino"; yii::app()->end();*/ if ($model->codestado == ESTADO_PREVIO) { MiFactoria::insertadetallesrecepfactura($model); } else { $this->IniciaBuffer($id); //Levanta temporales } $this->render('_form', array('model' => $model)); yii::app()->end(); } } else { if ($this->isRefreshCGridView($id)) { //si esta refresh de grilla $this->render('_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('_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'; if ($model->save()) { $this->ConfirmaBuffer($id); //Levanta temporales $transacc = $model->dbConnection->beginTransaction(); $this->efectuamovimiento($model); //oJO SOLO DESPUES DE COFIRMAR BUFFER 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('update', '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->borrakardexhijos($id); //$this->ClearBuffer($id); $this->terminabloqueo($id); $this->render('_form', array('model' => $model)); yii::app()->end(); } } else { Yii::app()->user->setFlash('error', " No se pudo grabar el documento "); //$transacc->rollback(); $this->render('_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('_form', array('model' => $model)); yii::app()->end(); } } } } }