[Yii 1]Abrir Y Cerrar Session

Hola,

estoy creando una applicacion por correos postales. Quiero que cuando el usuario hace click en el boton

"Nuevo Cliente" se va abrir una "session". Luego el usuario puede hacer click en el boton del producto que quiere utilizar y empieze a crear sus correos postales. Cada vez que acabe su correo le se meustra caja en la cual se suman los precios de sus operaziones. En el caso tenga que crear 2 o mas correos cada vez que acabe un correo y no cierre la session (cerrando caja), yii siga manteniendo abierta la session de manera que caja siga sumando sus operaciones. Como puedo realizar esto? He leido guias pero no entiendo como puedo realizarlo.

Exemplo:

Click en el boton "Nuevo Cliente" y abrimos la session de caja.

Luego a la selecion del producto (en este caso "Rs" le muestro el form para crear su correo postal.:




public function actionCreate()

	{

		$model=new Rs;

		$consegna=new Consegna();

		$clienti=new Cliente();

		if (isset($_POST['cancel'])) 

		{

  $this->redirect(array('index'));

} elseif (isset($_POST['step2'])) 

{

  $this->setPageState('step1',$_POST['Rs']); // save step1 into form state

  $model=new Rs('step1');

  $consegna=new Consegna();

  $clienti=new Cliente();  

  $model->attributes =$_POST['Rs'];

  if ($model->validate())

  $this->render('form2',array('model'=>$model));


  else {

    $this->render('form1',array('model'=>$model));

 

   }

}

elseif(isset($_POST['finish'])) 

{

  $model=new Rs('finish');

  $consegna=new Consegna();

  $clienti=new Cliente();

  $model->attributes = $this->getPageState('step1',array()); //get the info from step 1

  $model->attributes = $_POST['Rs']; // then the info from step2

  //Inserisco data e ora

			$model->time=new CDbExpression('NOW()');

			$model->date=new CDbExpression('NOW()');

			//Genero tracking univoco

			$id = $model->id; // supponi che $id 

            $codiceABarre = sprintf('%010d', 2009790000 + $id); 

			//fine generatore tracking univoco

			$model->totale = $model->prezzo + $model->diritti;

  if ($model->save())

  {

                                $consegna->attributes=$_POST['Rs'];


                                $consegna->tracking=$model->id;

								$consegna->nome_mitt=$model->nome_mitt;

								$consegna->cognome_mitt=$model->cognome_mitt;

								         $consegna->ubicazione_mitt=$model->ubicazione_mitt;

								$consegna->via_mitt=$model->via_mitt;

								$consegna->civico_mitt=$model->civico_mitt;

								$consegna->cap_mitt=$model->cap_mitt;

								$consegna->comune_mitt=$model->comune_mitt;

								$consegna->provincia_mitt=$model->provincia_mitt;

								$consegna->stato_mitt=$model->stato_mitt;

								

								$consegna->nome_dest=$model->nome_dest;

								$consegna->cognome_dest=$model->cognome_dest;

								$consegna->ubicazione_dest=$model->ubicazione_dest;

								$consegna->via_dest=$model->via_dest;

								$consegna->civico_dest=$model->civico_dest;

								$consegna->cap_dest=$model->cap_dest;

								$consegna->comune_dest=$model->comune_dest;

								$consegna->provincia_dest=$model->provincia_dest;

								$consegna->stato_dest=$model->stato_dest;

								

								$consegna->informazioni=$model->informazioni;

								$consegna->peso=$model->peso;

								//$consegna->prezzo=$model->prezzo;

								//$consegna->diritti=$model->diritti;

								//$consegna->esito=$model->esito;

								//$consegna->tipoconsegna=$model->tipoconsegna;

								//$consegna->vettore=$model->vettore;

								$consegna->totale=$model->totale;

								$consegna->date=$model->date;

								$consegna->time=$model->time;

								

								//$consegna->data_consegna=$model->data_consegna;

								//$consegna->ora_consegna=$model->ora_consegna;


                                if($consegna->save())

     					

									

									

									 

                                $clienti->attributes=$_POST['Rs'];


                                //$clienti->tracking=$model->id;

								$clienti->nome_mitt=$model->nome_mitt;

								$clienti->cognome_mitt=$model->cognome_mitt;

								$clienti->ubicazione_mitt=$model->ubicazione_mitt;

								$clienti->via_mitt=$model->via_mitt;

								$clienti->civico_mitt=$model->civico_mitt;

								$clienti->cap_mitt=$model->cap_mitt;

								$clienti->comune_mitt=$model->comune_mitt;

								$clienti->provincia_mitt=$model->provincia_mitt;

								$clienti->stato_mitt=$model->stato_mitt;

								

								$clienti->nome_dest=$model->nome_dest;

								$clienti->cognome_dest=$model->cognome_dest;

								$clienti->ubicazione_dest=$model->ubicazione_dest;

								$clienti->via_dest=$model->via_dest;

								$clienti->civico_dest=$model->civico_dest;

								$clienti->cap_dest=$model->cap_dest;

								$clienti->comune_dest=$model->comune_dest;

								$clienti->provincia_dest=$model->provincia_dest;

								$clienti->stato_dest=$model->stato_dest;

								

								//$clienti->informazioni=$model->informazioni;

								//$clienti->peso=$model->peso;

								//$clienti->prezzo=$model->prezzo;

								//$clienti->diritti=$model->diritti;

								//$clienti->esito=$model->esito;

								//$clienti->tipoconsegna=$model->tipoconsegna;

								//$clienti->vettore=$model->vettore;

								//$clienti->totale=$model->totale;

								//$clienti->date=$model->date;

								//$clienti->time=$model->time;								

								//$clienti->data_consegna=$model->data_consegna;

								//$clienti->ora_consegna=$model->ora_consegna;


                                if($clienti->save())

                                {

									

									

									

									

    //$this->redirect(array('caja')); autonoma

	$this->redirect($this->createUrl('view', array('id'=>$model->id))); 

								}

  }

	else 

	{

    $this->render('form2',array('model'=>$model));

} }else { // this is the default, first time (step1)

  $model=new Rs('new');

  $this->render('form1',array('model'=>$model));

		}

	}



Alguien puede ayudarme porfavor? Muchas gracias y desculpen mi espanol :)

Uff…me voy a volver loco con este problema. Nadie tiene solucion por favor??? :(

Creo que no te he entendido bien, pero podrías utilizar CFormModel y actualizaciones AJAX para eso.

Al final te vas a la action de CActiveRecord y listo.

Un saludo.

Entento esplicarme mejor. Ponemos que tengo un boton llamado "Nuevo Cliente".

Al click en este boton yii tendria que crear una "session_id". Luego tendria que hacer click en otro boton Productos. Despues se abre una pagina con un menu donde estan todos los productos que puedo utilizar.

Seleciono el producto y empiezo a compilar el form.

Acabada la compilacion de el form, la actionCreate me muestra la pagina de "caja" (no se como se dice). En la vista de "caja" tengo todos los productos que he utilizado y el Boton "Acaba Operaciones" que me tendria que cerrar la "session_id".

Ahora si quiero seguir sin cerrar la "session_id", seleciono nuevamente otro producto y sigo compilando mis forms y es claro que dejando abierta la session_id yii tiene que sumar mis operaciones hasta que yo no cerre la session_id pulsando sobre el boton "Acaba Operaciones".

Esto me sirve por que quiero crear un aplicacion por el envio de correos postales. En tonces cuando un cliente tiene que hacer muchos envios la session_id me tiene que sumar todas la operaciones que aga hasta que la session_id no ce cierre, de manera que pueda veer el total que el cliente tiene que pagar. Bueno asi espero me entiendas mejor. Si puedes ayudarme lo agradeceria, sino no pasa nada, gracias lo mismo, y desculpa si tampoco me esplicado bien otra vez. Saludos

Nadie tiene solucion? ????? :P