Example #1
0
 /**
  * 
  * 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;
 }