Commit 2c37cd9a2181eb1075c7f8ba89f0a0572d340675
1 parent
e51667b5
Exists in
master
Evita coleta de classe repetida e conserta versão do software
Showing
4 changed files
with
80 additions
and
11 deletions
Show diff stats
src/Cacic/CommonBundle/DoctrineMigrations/Version20141030153634.php
0 → 100644
... | ... | @@ -0,0 +1,68 @@ |
1 | +<?php | |
2 | + | |
3 | +namespace Cacic\CommonBundle\Migrations; | |
4 | + | |
5 | +use Symfony\Component\DependencyInjection\ContainerAwareInterface; | |
6 | +use Symfony\Component\DependencyInjection\ContainerInterface; | |
7 | +use Doctrine\DBAL\Migrations\AbstractMigration; | |
8 | +use Doctrine\DBAL\Schema\Schema; | |
9 | + | |
10 | +/** | |
11 | + * Auto-generated Migration: Please modify to your needs! | |
12 | + */ | |
13 | +class Version20141030153634 extends AbstractMigration implements ContainerAwareInterface | |
14 | +{ | |
15 | + private $container; | |
16 | + | |
17 | + public function setContainer(ContainerInterface $container = null) | |
18 | + { | |
19 | + $this->container = $container; | |
20 | + } | |
21 | + | |
22 | + public function up(Schema $schema) | |
23 | + { | |
24 | + // this up() migration is auto-generated, please modify it to your needs | |
25 | + $this->abortIf($this->connection->getDatabasePlatform()->getName() != "postgresql", "Migration can only be executed safely on 'postgresql'."); | |
26 | + $logger = $this->container->get('logger'); | |
27 | + | |
28 | + $this->addSql(" | |
29 | + CREATE OR REPLACE FUNCTION conserta_propriedade() RETURNS VOID AS $$ | |
30 | + DECLARE | |
31 | + impr record; | |
32 | + v_id integer; | |
33 | + BEGIN | |
34 | + FOR impr IN select id_class_property | |
35 | + from class_property | |
36 | + where id_class IS NULL LOOP | |
37 | + | |
38 | + RAISE NOTICE 'Removing property_id = %',impr.id_class_property; | |
39 | + | |
40 | + DELETE FROM computador_coleta_historico | |
41 | + WHERE id_class_property = impr.id_class_property; | |
42 | + | |
43 | + DELETE FROM computador_coleta | |
44 | + WHERE id_class_property = impr.id_class_property; | |
45 | + | |
46 | + DELETE FROM class_property | |
47 | + WHERE id_class_property = impr.id_class_property; | |
48 | + | |
49 | + END LOOP; | |
50 | + RETURN; | |
51 | + END; | |
52 | + $$ LANGUAGE 'plpgsql'; | |
53 | + "); | |
54 | + $logger->info("Função de atualização das impressoras criada"); | |
55 | + $this->addSql("SELECT conserta_propriedade();"); | |
56 | + $logger->info("Propriedades nulas removaidas"); | |
57 | + $this->addSql("ALTER TABLE class_property ALTER id_class SET NOT NULL;"); | |
58 | + $logger->info("Índice único criado"); | |
59 | + | |
60 | + | |
61 | + } | |
62 | + | |
63 | + public function down(Schema $schema) | |
64 | + { | |
65 | + // this down() migration is auto-generated, please modify it to your needs | |
66 | + | |
67 | + } | |
68 | +} | ... | ... |
src/Cacic/CommonBundle/Entity/ClassProperty.php
src/Cacic/CommonBundle/Resources/config/doctrine/ClassProperty.orm.yml
src/Cacic/WSBundle/Controller/NeoController.php
... | ... | @@ -267,7 +267,7 @@ class NeoController extends Controller { |
267 | 267 | |
268 | 268 | // 2 - Adiciona módulos da subrede |
269 | 269 | $modulos = $em->getRepository('CacicCommonBundle:RedeVersaoModulo')->findBy(array('idRede' => $computador->getIdRede())); |
270 | - $logger->debug("Módulos encontrados \n". print_r($modulos, true)); | |
270 | + //$logger->debug("Módulos encontrados \n". print_r($modulos, true)); | |
271 | 271 | $mods = array(); |
272 | 272 | foreach($modulos as $elm) { |
273 | 273 | $tipo = $elm->getTipo(); |
... | ... | @@ -667,19 +667,19 @@ class NeoController extends Controller { |
667 | 667 | $logger = $this->get('logger'); |
668 | 668 | $em = $this->getDoctrine()->getManager(); |
669 | 669 | |
670 | - try { | |
671 | - $classObject = $em->getRepository('CacicCommonBundle:Classe')->findOneBy( array( | |
672 | - 'nmClassName'=> $classe | |
673 | - )); | |
674 | - } | |
675 | - catch(\Doctrine\ORM\NoResultException $e) { | |
676 | - $logger->error("COLETA: Classe não cadastrada: $classe \n$e"); | |
670 | + $classObject = $em->getRepository('CacicCommonBundle:Classe')->findOneBy( array( | |
671 | + 'nmClassName'=> $classe | |
672 | + )); | |
673 | + | |
674 | + if (empty($classObject)) { | |
675 | + $logger->error("COLETA: Classe não cadastrada: $classe"); | |
677 | 676 | return; |
678 | 677 | } |
679 | 678 | |
680 | 679 | foreach (array_keys($valor) as $propriedade) { |
681 | 680 | if (is_array($valor[$propriedade])) { |
682 | 681 | $logger->error("COLETA: Atributo $propriedade multivalorado não implementado na coleta"); |
682 | + $valor[$propriedade] = $valor[$propriedade][0]; | |
683 | 683 | continue; |
684 | 684 | } |
685 | 685 | $logger->debug("COLETA: Gravando dados da propriedade $propriedade com o valor ".$valor[$propriedade]); |
... | ... | @@ -835,7 +835,7 @@ class NeoController extends Controller { |
835 | 835 | $propSoftware->setUrlInfoAbout($valor['url']); |
836 | 836 | } |
837 | 837 | if (array_key_exists('version', $valor)) { |
838 | - $propSoftware->setDisplayVersion($valor['url']); | |
838 | + $propSoftware->setDisplayVersion($valor['version']); | |
839 | 839 | } |
840 | 840 | |
841 | 841 | $em->persist($classProperty); |
... | ... | @@ -871,4 +871,4 @@ class NeoController extends Controller { |
871 | 871 | |
872 | 872 | } |
873 | 873 | |
874 | -} | |
875 | 874 | \ No newline at end of file |
875 | +} | ... | ... |