/**
  *  Página de editar dados do Aquisicao
  *  @param int $idAquisicao
  */
 public function editarAction($idAquisicao, $idTipoLicenca, Request $request)
 {
     $em = $this->getDoctrine()->getManager();
     $Aquisicao = $em->getRepository('CacicCommonBundle:AquisicaoItem')->find(array('idAquisicao' => $idAquisicao, 'idTipoLicenca' => $idTipoLicenca));
     if (!$Aquisicao) {
         throw $this->createNotFoundException('Aquisicao não encontrado');
     }
     $form = $this->createForm(new AquisicaoItemType(), $Aquisicao);
     if ($request->isMethod('POST')) {
         $form->bind($request);
         if ($form->isValid()) {
             // Primeiro remove os softwares que estavam cadastrados
             // Manually delete all entries
             $idAquisicao = $Aquisicao->getIdAquisicao()->getIdAquisicao();
             $idTipoLicenca = $Aquisicao->getIdTipoLicenca()->getIdTipoLicenca();
             $this->get('logger')->debug("Removendo softwares para id_aquisicao = {$idAquisicao} e id_tipo_licenca = {$idTipoLicenca}");
             $sql = "DELETE FROM aquisicoes_software\n                    WHERE id_aquisicao = {$idAquisicao}\n                    AND id_tipo_licenca = {$idTipoLicenca}";
             $stmt = $em->getConnection()->prepare($sql);
             $stmt->execute();
             $em->remove($Aquisicao);
             $em->flush();
             /*foreach ($Aquisicao->getIdSoftware() as $software) {
                   $idSoftware = $software->getIdSoftware();
                   $this->get('logger')->debug("Removendo software ".$idSoftware);
               }*/
             // Limpa objeto
             $AquisicaoNew = new AquisicaoItem();
             $AquisicaoNew->setDtVencimentoLicenca($Aquisicao->getDtVencimentoLicenca());
             $AquisicaoNew->setIdAquisicao($Aquisicao->getIdAquisicao());
             $AquisicaoNew->setIdTipoLicenca($Aquisicao->getIdTipoLicenca());
             $AquisicaoNew->setQtLicenca($Aquisicao->getQtLicenca());
             $AquisicaoNew->setTeObs($Aquisicao->getTeObs());
             $software_list = $request->get('idSoftware');
             // Garante qus os elementos do array são únicos
             $software_list = array_unique($software_list);
             foreach ($software_list as $software) {
                 $this->get('logger')->debug("Adicionando software " . $software);
                 $software_obj = $this->getDoctrine()->getManager()->getRepository('CacicCommonBundle:Software')->find($software);
                 $AquisicaoNew->addIdSoftware($software_obj);
                 $em->persist($software_obj);
             }
             $em->persist($AquisicaoNew);
             $em->flush();
             // Efetuar a edição do Aquisicao
             $Aquisicao = $AquisicaoNew;
             $this->get('session')->getFlashBag()->add('success', 'Dados salvos com sucesso!');
         }
     }
     return $this->render('CacicCommonBundle:AquisicaoItem:cadastrar.html.twig', array('form' => $form->createView(), 'software_list' => $Aquisicao->getIdSoftware()));
 }
Example #2
0
 /**
  * Remove aquisicoes
  *
  * @param \Cacic\CommonBundle\Entity\AquisicaoItem $aquisicoes
  */
 public function removeAquisicoe(\Cacic\CommonBundle\Entity\AquisicaoItem $aquisicoes)
 {
     $this->aquisicoes->removeElement($aquisicoes);
 }