/** * * Atualiza os SOs (do local informado) associadas a determinada Ação * @param int|Cacic\CommonBundle\Entity\Acao $acao * @param int|Cacic\CommonBundle\Entity\Local $local * @param array $novasRedes * @param array $novosSO */ public function atualizarPorLocal($acao, $local, $novasRedes, $novosSO) { $em = $this->getEntityManager(); $apagaObj = $em->getRepository('CacicCommonBundle:AcaoSo')->findAll(); foreach ($apagaObj as $acaoObj) { if (!empty($acaoObj)) { $em->remove($acaoObj); } } $em->flush(); // Agora insere uma de cada vez $novaAcao = $em->getRepository('CacicCommonBundle:Acao')->findAcaoAtiva($acao, true); if (!empty($novaAcao)) { foreach ($novasRedes as $rede) { $redeObj = $em->getRepository('CacicCommonBundle:Rede')->find($rede); foreach ($novosSO as $idSo) { $so = $em->getRepository('CacicCommonBundle:So')->find($idSo); $new = new AcaoSo(); $new->setAcao($novaAcao); $new->setRede($redeObj); $new->setSo($so); $em->persist($new); } } } $em->flush(); }
public function getComputadorPreCole(Request $request, $te_so, $te_node_adress, $rede, $so, $ip_computador) { //recebe dados via POST, deCripata dados, e attribui a variaveis $computer_system = OldCacicHelper::deCrypt($request, $request->request->get('ComputerSystem'), true); $network_adapter = OldCacicHelper::deCrypt($request, $request->request->get('NetworkAdapterConfiguration'), true); $operating_system = OldCacicHelper::deCrypt($request, $request->request->get('OperatingSystem'), true); $te_versao_cacic = $request->request->get('te_versao_cacic'); $te_versao_gercols = $request->request->get('te_versao_gercols'); $data = new \DateTime('NOW'); //armazena data Atual //vefifica se existe SO coletado se não, insere novo SO $computador = $this->findOneBy(array('teNodeAddress' => $te_node_adress, 'idSo' => $so->getIdSo())); //inserção de dado se for um novo computador if (empty($computador)) { $computador = new Computador(); $computador->setTeNodeAddress($te_node_adress); $computador->setIdSo($so); $computador->setIdRede($rede); $computador->setDtHrInclusao($data); $computador->setTePalavraChave($request->get('PHP_AUTH_PW')); $computador->setAtivo(true); $this->getEntityManager()->persist($computador); } // Atualiza subrede se houve mudança de subrede para o computador #if ($computador->getIdRede() != $rede) { #error_log("Atualizando subrede paara o computador ".$computador->getTeIpComputador()." Antiga: ".$computador->getIdRede()->getNmRede()." | Nova: ".$rede->getNmRede()); # $computador->setIdRede($rede); #} $computador->setDtHrUltAcesso($data); $computador->setTeVersaoCacic($te_versao_cacic); $computador->setTeVersaoGercols($te_versao_gercols); $computador->setTeUltimoLogin(TagValueHelper::getValueFromTags('UserName', $computer_system)); $computador->setTeIpComputador($ip_computador); $computador->setNmComputador(TagValueHelper::getValueFromTags('Caption', $computer_system)); $computador->setAtivo(true); $this->getEntityManager()->persist($computador); $acoes = $this->getEntityManager()->getRepository('CacicCommonBundle:Acao')->findAll(); //inserção ações de coleta a nova maquina foreach ($acoes as $acao) { $acao_so = $this->getEntityManager()->getRepository('CacicCommonBundle:AcaoSo')->findBy(array('rede' => $rede, 'so' => $so, 'acao' => $acao)); if (empty($acao_so)) { $acao_so = new AcaoSo(); $acao_so->setRede($rede); $acao_so->setSo($so); $acao_so->setAcao($acao); $this->getEntityManager()->persist($acao_so); } } //persistir dados $this->getEntityManager()->flush(); return $computador; }