/** * 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())); }
/** * Remove aquisicoes * * @param \Cacic\CommonBundle\Entity\AquisicaoItem $aquisicoes */ public function removeAquisicoe(\Cacic\CommonBundle\Entity\AquisicaoItem $aquisicoes) { $this->aquisicoes->removeElement($aquisicoes); }