/**
  * {@inheritDoc}
  */
 public function exchangeArray($data = array(), $em = NULL)
 {
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'exchangeArray', array($data, $em));
     return parent::exchangeArray($data, $em);
 }
Example #2
0
 /**
  * Permet la creation ou la modification d'un interlocuteur client en session
  */
 public function formulaireinterlocuteursessionAction()
 {
     if ($this->getRequest()->isXmlHttpRequest()) {
         /* Initialisation de variables */
         $statusForm = null;
         // Récupération de l'EntityManager
         $em = $this->getEntityManager();
         // Récupération du Service Manager
         $sm = $this->getServiceLocator();
         // Récupération du traducteur
         $translator = $sm->get('Translator');
         // Récupération de la requete
         $request = $this->getRequest();
         // Récupération de la session
         $session = new Container('societeSession');
         $interlocuteurs = $session->offsetGet('interlocuteurs', array());
         /* Initialisation de l'interlocuteur */
         $interlocuteur = new InterlocuteurClient();
         $uniqid = $this->params()->fromRoute('id');
         if (!empty($uniqid)) {
             // Récupération de l'interlocuteur depuis la session
             $i = $interlocuteurs[$uniqid];
             if ($i == null) {
                 throw new \Exception($translator->translate('Cet interlocuteur n\'existe pas'));
             }
             $interlocuteur->exchangeArray($i, $em);
         } else {
             $uniqid = null;
         }
         /* Creation du formulaire d'adresse */
         $form = new InterlocuteurClientForm($translator, $sm, $em, $request, $interlocuteur);
         if ($request->isPost()) {
             $form->setData($request->getPost());
             if (!$form->isValid()) {
                 $errors = $form->getMessages();
                 unset($errors['ref_societe_client']);
                 if (sizeof($errors) > 0) {
                     $statusForm = false;
                     return new JsonModel(array('statut' => $statusForm, 'reponse' => $errors));
                 } else {
                     $statusForm = true;
                     $interlocuteur->exchangeArray($form->getData(), $em);
                     if (is_null($uniqid)) {
                         $uniqid = uniqid('', true);
                     }
                     $interlocuteurs[$uniqid] = $interlocuteur->getArrayCopy();
                     $session->offsetSet('interlocuteurs', $interlocuteurs);
                     $spanInterlocuteur = $this->creationSpanInterlocuteur($interlocuteur, $uniqid);
                     return new JsonModel(array('statut' => $statusForm, 'uniqid' => $uniqid, 'reponse' => $spanInterlocuteur));
                 }
             } else {
                 $statusForm = true;
                 $interlocuteur->exchangeArray($form->getData(), $em);
                 if (is_null($uniqid)) {
                     $uniqid = uniqid('', true);
                 }
                 $interlocuteurs[$uniqid] = $interlocuteur->getArrayCopy();
                 $session->offsetSet('interlocuteurs', $interlocuteurs);
                 $spanInterlocuteur = $this->creationSpanInterlocuteur($interlocuteur, $uniqid);
                 return new JsonModel(array('statut' => $statusForm, 'uniqid' => $uniqid, 'reponse' => $spanInterlocuteur));
             }
         }
         /* Affichage du formulaire sans le layout (en modal) */
         $viewModel = new ViewModel();
         $viewModel->setVariables(array('interlocuteur' => $interlocuteur, 'form' => $form, 'id' => $uniqid))->setTerminal(true);
         return $viewModel;
     }
     return $this->redirect()->toRoute('home');
 }