/src/Cacic/CommonBundle/DoctrineMigrations/Version20150413102515.php

https://gitlab.com/adrianovieira/cacic · PHP · 585 lines · 416 code · 128 blank · 41 comment · 56 complexity · 0a8faac6d4406eaf5b1633e78c945019 MD5 · raw file

  1. <?php
  2. namespace Cacic\CommonBundle\Migrations;
  3. use Doctrine\DBAL\Migrations\AbstractMigration;
  4. use Doctrine\DBAL\Schema\Schema;
  5. use Cacic\CommonBundle\Entity\So;
  6. use Cacic\CommonBundle\Entity\TeSo;
  7. use Symfony\Component\DependencyInjection\ContainerInterface;
  8. use Symfony\Component\DependencyInjection\ContainerAwareInterface;
  9. use Doctrine\ORM\Query\ResultSetMapping;
  10. /**
  11. * Auto-generated Migration: Please modify to your needs!
  12. */
  13. class Version20150413102515 extends AbstractMigration implements ContainerAwareInterface
  14. {
  15. private $container;
  16. public function setContainer(ContainerInterface $container = null)
  17. {
  18. $this->container = $container;
  19. }
  20. public function up(Schema $schema)
  21. {
  22. // this up() migration is auto-generated, please modify it to your needs
  23. $this->abortIf($this->connection->getDatabasePlatform()->getName() != "postgresql", "Migration can only be executed safely on 'postgresql'.");
  24. $em = $this->container->get('doctrine.orm.entity_manager');
  25. $logger = $this->container->get('logger');
  26. $rootDir = $this->container->get('kernel')->getRootDir();
  27. $upgrade1 = $rootDir."/../src/Cacic/CommonBundle/Resources/data/upgrade-3.1.12-3.sql";
  28. $upgradeSQL1 = file_get_contents($upgrade1);
  29. $logger->debug("Arquivo de atualização: $upgrade1");
  30. // Chama o container para executar o arquivo de atualização
  31. // FIXME: Só funciona no PostgreSQL
  32. $this->addSql($upgradeSQL1);
  33. // Primeiro remove tudo o que está na tabela atual
  34. $te_so_list = $em->getRepository('CacicCommonBundle:TeSo')->findAll();
  35. foreach ($te_so_list as $elm) {
  36. $em->remove($elm);
  37. }
  38. $em->flush();
  39. $so_list = $em->getRepository('CacicCommonBundle:So')->findAll();
  40. foreach ($so_list as $so) {
  41. $te_so = $so->getTeSo();
  42. $id_so = $so->getIdSo();
  43. if ($te_so == '2.6.0.1.256') {
  44. // Primeiro pega o ID do 3.1 já cadastrado
  45. $so_new = $em->getRepository('CacicCommonBundle:SO')->findOneBy(array(
  46. 'teSo' => 'Microsoft Windows Vista Professional'
  47. ));
  48. if (empty($so_new)) {
  49. $so_new = new So();
  50. $so_new->setTeDescSo('Microsoft Windows Vista Professional');
  51. $so_new->setSgSo('Win7');
  52. $so_new->setTeSo('Microsoft Windows Vista Professional');
  53. $so_new->setInMswindows('S');
  54. $em->persist($so_new);
  55. $em->flush();
  56. }
  57. // Busca todos os computadores que têm o mesmo MAC Address e esse SO
  58. $so_novo = $so_new->getIdSo();
  59. $this->atualizaSo($em, $id_so, $so_novo);
  60. $so = new TeSo();
  61. $so->setIdSo($so_new->getIdSo());
  62. $so->setTeSo28('2.6.0.1.256');
  63. $so->setTeSo31('Microsoft Windows Vista Professional');
  64. $em->persist($so);
  65. }
  66. if ($te_so == '2.5.0.1.0') {
  67. // Primeiro pega o ID do 3.1 já cadastrado
  68. $so_new = $em->getRepository('CacicCommonBundle:SO')->findOneBy(array(
  69. 'teSo' => 'Microsoft Windows 2000 Professional'
  70. ));
  71. if (empty($so_new)) {
  72. $so_new = new So();
  73. $so_new->setTeDescSo('Microsoft Windows 2000 Professional');
  74. $so_new->setSgSo('W2K_PRO');
  75. $so_new->setTeSo('Microsoft Windows 2000 Professional');
  76. $so_new->setInMswindows('S');
  77. $em->persist($so_new);
  78. $em->flush();
  79. }
  80. // Busca todos os computadores que têm o mesmo MAC Address e esse SO
  81. $so_novo = $so_new->getIdSo();
  82. $this->atualizaSo($em, $id_so, $so_novo);
  83. $so = new TeSo();
  84. $so->setIdSo($so_new->getIdSo());
  85. $so->setTeSo28('2.5.0.1.0');
  86. $so->setTeSo31('Microsoft Windows 2000 Professional');
  87. $em->persist($so);
  88. }
  89. if ($te_so == '2.5.0.Service Pack 4') {
  90. // Primeiro pega o ID do 3.1 já cadastrado
  91. $so_new = $em->getRepository('CacicCommonBundle:SO')->findOneBy(array(
  92. 'teSo' => 'Microsoft Windows 2000 Professional'
  93. ));
  94. if (empty($so_new)) {
  95. $so_new = new So();
  96. $so_new->setTeDescSo('Microsoft Windows 2000 Professional (SP4)');
  97. $so_new->setSgSo('W2K-SP4');
  98. $so_new->setTeSo('Microsoft Windows 2000 Professional');
  99. $so_new->setInMswindows('S');
  100. $em->persist($so_new);
  101. $em->flush();
  102. }
  103. // Busca todos os computadores que têm o mesmo MAC Address e esse SO
  104. $so_novo = $so_new->getIdSo();
  105. $this->atualizaSo($em, $id_so, $so_novo);
  106. $so = new TeSo();
  107. $so->setIdSo($so_new->getIdSo());
  108. $so->setTeSo28('2.5.0.Service Pack 4');
  109. $so->setTeSo31('Microsoft Windows 2000 Professional');
  110. $em->persist($so);
  111. }
  112. if ($te_so == '2.5.2.2.274') {
  113. // Primeiro pega o ID do 3.1 já cadastrado
  114. $so_new = $em->getRepository('CacicCommonBundle:SO')->findOneBy(array(
  115. 'teSo' => 'Microsoft Windows 2003 Server'
  116. ));
  117. if (empty($so_new)) {
  118. $so_new = new So();
  119. $so_new->setTeDescSo('Microsoft Windows 2003 Server');
  120. $so_new->setSgSo('W2K-SP4');
  121. $so_new->setTeSo('Microsoft Windows 2003 Server');
  122. $so_new->setInMswindows('S');
  123. $em->persist($so_new);
  124. $em->flush();
  125. }
  126. // Busca todos os computadores que têm o mesmo MAC Address e esse SO
  127. $so_novo = $so_new->getIdSo();
  128. $this->atualizaSo($em, $id_so, $so_novo);
  129. $so = new TeSo();
  130. $so->setIdSo($so_new->getIdSo());
  131. $so->setTeSo28('2.5.2.2.274');
  132. $so->setTeSo31('Microsoft Windows 2003 Server');
  133. $em->persist($so);
  134. }
  135. if ($te_so == '2.6.1.1.256.32') {
  136. // Primeiro pega o ID do 3.1 já cadastrado
  137. $so_new = $em->getRepository('CacicCommonBundle:SO')->findOneBy(array(
  138. 'teSo' => 'Microsoft Windows 7 Professional'
  139. ));
  140. if (empty($so_new)) {
  141. $so_new = new So();
  142. $so_new->setTeDescSo('Microsoft Windows 7 Professional');
  143. $so_new->setSgSo('Win7');
  144. $so_new->setTeSo('Microsoft Windows 7 Professional');
  145. $so_new->setInMswindows('S');
  146. $em->persist($so_new);
  147. $em->flush();
  148. }
  149. // Busca todos os computadores que têm o mesmo MAC Address e esse SO
  150. $so_novo = $so_new->getIdSo();
  151. $this->atualizaSo($em, $id_so, $so_novo);
  152. $so = new TeSo();
  153. $so->setIdSo($so_new->getIdSo());
  154. $so->setTeSo28('2.6.1.1.256.32');
  155. $so->setTeSo31('Microsoft Windows 7 Professional');
  156. $em->persist($so);
  157. }
  158. if ($te_so == '2.6.1.1.256.64') {
  159. // Primeiro pega o ID do 3.1 já cadastrado
  160. $so_new = $em->getRepository('CacicCommonBundle:SO')->findOneBy(array(
  161. 'teSo' => 'Microsoft Windows 7 Professional'
  162. ));
  163. if (empty($so_new)) {
  164. $so_new = new So();
  165. $so_new->setTeDescSo('Microsoft Windows 7 Professional');
  166. $so_new->setSgSo('Win7');
  167. $so_new->setTeSo('Microsoft Windows 7 Professional');
  168. $so_new->setInMswindows('S');
  169. $em->persist($so_new);
  170. $em->flush();
  171. }
  172. // Busca todos os computadores que têm o mesmo MAC Address e esse SO
  173. $so_novo = $so_new->getIdSo();
  174. $this->atualizaSo($em, $id_so, $so_novo);
  175. $so = new TeSo();
  176. $so->setIdSo($so_new->getIdSo());
  177. $so->setTeSo28('2.6.1.1.256.64');
  178. $so->setTeSo31('Microsoft Windows 7 Professional');
  179. $em->persist($so);
  180. }
  181. if ($te_so == '2.6.1.1.256') {
  182. // Primeiro pega o ID do 3.1 já cadastrado
  183. $so_new = $em->getRepository('CacicCommonBundle:SO')->findOneBy(array(
  184. 'teSo' => 'Microsoft Windows 7 Professional'
  185. ));
  186. if (empty($so_new)) {
  187. $so_new = new So();
  188. $so_new->setTeDescSo('Microsoft Windows 7 Professional');
  189. $so_new->setSgSo('Win7');
  190. $so_new->setTeSo('Microsoft Windows 7 Professional');
  191. $so_new->setInMswindows('S');
  192. $em->persist($so_new);
  193. $em->flush();
  194. }
  195. // Busca todos os computadores que têm o mesmo MAC Address e esse SO
  196. $so_novo = $so_new->getIdSo();
  197. $this->atualizaSo($em, $id_so, $so_novo);
  198. $so = new TeSo();
  199. $so->setIdSo($so_new->getIdSo());
  200. $so->setTeSo28('2.6.1.1.256');
  201. $so->setTeSo31('Microsoft Windows 7 Professional');
  202. $em->persist($so);
  203. }
  204. if ($te_so == '2.6.1.1.768.64') {
  205. // Primeiro pega o ID do 3.1 já cadastrado
  206. $so_new = $em->getRepository('CacicCommonBundle:SO')->findOneBy(array(
  207. 'teSo' => 'Microsoft Windows 7 Professional'
  208. ));
  209. if (empty($so_new)) {
  210. $so_new = new So();
  211. $so_new->setTeDescSo('Microsoft Windows 7 Professional');
  212. $so_new->setSgSo('Win7');
  213. $so_new->setTeSo('Microsoft Windows 7 Professional');
  214. $so_new->setInMswindows('S');
  215. $em->persist($so_new);
  216. $em->flush();
  217. }
  218. // Busca todos os computadores que têm o mesmo MAC Address e esse SO
  219. $so_novo = $so_new->getIdSo();
  220. $this->atualizaSo($em, $id_so, $so_novo);
  221. $so = new TeSo();
  222. $so->setIdSo($so_new->getIdSo());
  223. $so->setTeSo28('2.6.1.1.768.64');
  224. $so->setTeSo31('Microsoft Windows 7 Professional');
  225. $em->persist($so);
  226. }
  227. if ($te_so == '2.6.1.1.768') {
  228. // Primeiro pega o ID do 3.1 já cadastrado
  229. $so_new = $em->getRepository('CacicCommonBundle:SO')->findOneBy(array(
  230. 'teSo' => 'Microsoft Windows 7 Professional'
  231. ));
  232. if (empty($so_new)) {
  233. $so_new = new So();
  234. $so_new->setTeDescSo('Microsoft Windows 7 Professional');
  235. $so_new->setSgSo('Win7');
  236. $so_new->setTeSo('Microsoft Windows 7 Professional');
  237. $so_new->setInMswindows('S');
  238. $em->persist($so_new);
  239. $em->flush();
  240. }
  241. // Busca todos os computadores que têm o mesmo MAC Address e esse SO
  242. $so_novo = $so_new->getIdSo();
  243. $this->atualizaSo($em, $id_so, $so_novo);
  244. $so = new TeSo();
  245. $so->setIdSo($so_new->getIdSo());
  246. $so->setTeSo28('2.6.1.1.768');
  247. $so->setTeSo31('Microsoft Windows 7 Professional');
  248. $em->persist($so);
  249. }
  250. if ($te_so == '2.5.1.1.256.64') {
  251. $so_new = $em->getRepository('CacicCommonBundle:SO')->findOneBy(array(
  252. 'teSo' => 'Microsoft Windows 7 Professional'
  253. ));
  254. if (empty($so_new)) {
  255. $so_new = new So();
  256. $so_new->setTeDescSo('Microsoft Windows 7 Professional');
  257. $so_new->setSgSo('Win7');
  258. $so_new->setTeSo('Microsoft Windows 7 Professional');
  259. $so_new->setInMswindows('S');
  260. $em->persist($so_new);
  261. $em->flush();
  262. }
  263. // Busca todos os computadores que têm o mesmo MAC Address e esse SO
  264. $so_novo = $so_new->getIdSo();
  265. $this->atualizaSo($em, $id_so, $so_novo);
  266. $so = new TeSo();
  267. $so->setIdSo($so_new->getIdSo());
  268. $so->setTeSo28('2.5.1.1.256.64');
  269. $so->setTeSo31('Microsoft Windows 7 Professional');
  270. $em->persist($so);
  271. }
  272. if ($te_so == '2.5.1.1.256.64') {
  273. // Primeiro pega o ID do 3.1 já cadastrado
  274. $so_new = $em->getRepository('CacicCommonBundle:SO')->findOneBy(array(
  275. 'teSo' => 'Microsoft Windows 7 Professional'
  276. ));
  277. if (empty($so_new)) {
  278. $so_new = new So();
  279. $so_new->setTeDescSo('Microsoft Windows 7 Professional');
  280. $so_new->setSgSo('Win7');
  281. $so_new->setTeSo('Microsoft Windows 7 Professional');
  282. $so_new->setInMswindows('S');
  283. $em->persist($so_new);
  284. $em->flush();
  285. }
  286. // Busca todos os computadores que têm o mesmo MAC Address e esse SO
  287. $so_novo = $so_new->getIdSo();
  288. $this->atualizaSo($em, $id_so, $so_novo);
  289. $so = new TeSo();
  290. $so->setIdSo($so_new->getIdSo());
  291. $so->setTeSo28('2.5.1.1.256.64');
  292. $so->setTeSo31('Microsoft Windows 7 Professional');
  293. $em->persist($so);
  294. }
  295. if ($te_so == '2.6.1') {
  296. // Primeiro pega o ID do 3.1 já cadastrado
  297. $so_new = $em->getRepository('CacicCommonBundle:SO')->findOneBy(array(
  298. 'teSo' => 'Microsoft Windows 7 Professional'
  299. ));
  300. if (empty($so_new)) {
  301. $so_new = new So();
  302. $so_new->setTeDescSo('Microsoft Windows 7 Professional');
  303. $so_new->setSgSo('Win7');
  304. $so_new->setTeSo('Microsoft Windows 7 Professional');
  305. $so_new->setInMswindows('S');
  306. $em->persist($so_new);
  307. $em->flush();
  308. }
  309. // Busca todos os computadores que têm o mesmo MAC Address e esse SO
  310. $so_novo = $so_new->getIdSo();
  311. $this->atualizaSo($em, $id_so, $so_novo);
  312. $so = new TeSo();
  313. $so->setIdSo($so_new->getIdSo());
  314. $so->setTeSo28('2.6.1');
  315. $so->setTeSo31('Microsoft Windows 7 Professional');
  316. $em->persist($so);
  317. }
  318. if ($te_so == 'Microsoft Windows 7 Professional') {
  319. $so = new TeSo();
  320. $so->setIdSo($id_so);
  321. $so->setTeSo28('2.5.1.1.256.64');
  322. $so->setTeSo31('Microsoft Windows 7 Professional');
  323. $em->persist($so);
  324. }
  325. if ($te_so == '2.6.1') {
  326. // Primeiro pega o ID do 3.1 já cadastrado
  327. $so_new = $em->getRepository('CacicCommonBundle:SO')->findOneBy(array(
  328. 'teSo' => 'Microsoft Windows 7 Professional'
  329. ));
  330. if (empty($so_new)) {
  331. $so_new = new So();
  332. $so_new->setTeDescSo('Microsoft Windows 7 Professional');
  333. $so_new->setSgSo('Win7');
  334. $so_new->setTeSo('Microsoft Windows 7 Professional');
  335. $so_new->setInMswindows('S');
  336. $em->persist($so_new);
  337. $em->flush();
  338. }
  339. // Busca todos os computadores que têm o mesmo MAC Address e esse SO
  340. $so_novo = $so_new->getIdSo();
  341. $this->atualizaSo($em, $id_so, $so_novo);
  342. $so = new TeSo();
  343. $so->setIdSo($so_new->getIdSo());
  344. $so->setTeSo28('2.6.1');
  345. $so->setTeSo31('Microsoft Windows 7 Professional');
  346. $em->persist($so);
  347. }
  348. if ($te_so == '2.5.1.1.256.32') {
  349. // Primeiro pega o ID do 3.1 já cadastrado
  350. $so_new = $em->getRepository('CacicCommonBundle:SO')->findOneBy(array(
  351. 'teSo' => 'Microsoft Windows XP Professional'
  352. ));
  353. if (empty($so_new)) {
  354. $so_new = new So();
  355. $so_new->setTeDescSo('Microsoft Windows XP Professional');
  356. $so_new->setSgSo('Windows XP');
  357. $so_new->setTeSo('Microsoft Windows XP Professional');
  358. $so_new->setInMswindows('S');
  359. $em->persist($so_new);
  360. $em->flush();
  361. }
  362. // Busca todos os computadores que têm o mesmo MAC Address e esse SO
  363. $so_novo = $so_new->getIdSo();
  364. $this->atualizaSo($em, $id_so, $so_novo);
  365. $so = new TeSo();
  366. $so->setIdSo($so_new->getIdSo());
  367. $so->setTeSo28('2.5.1.1.256.32');
  368. $so->setTeSo31('Microsoft Windows XP Professional');
  369. $em->persist($so);
  370. }
  371. if ($te_so == '2.5.1.1.256') {
  372. // Primeiro pega o ID do 3.1 já cadastrado
  373. $so_new = $em->getRepository('CacicCommonBundle:SO')->findOneBy(array(
  374. 'teSo' => 'Microsoft Windows XP Professional'
  375. ));
  376. if (empty($so_new)) {
  377. $so_new = new So();
  378. $so_new->setTeDescSo('Microsoft Windows XP Professional');
  379. $so_new->setSgSo('Windows XP');
  380. $so_new->setTeSo('Microsoft Windows XP Professional');
  381. $so_new->setInMswindows('S');
  382. $em->persist($so_new);
  383. $em->flush();
  384. }
  385. // Busca todos os computadores que têm o mesmo MAC Address e esse SO
  386. $so_novo = $so_new->getIdSo();
  387. $this->atualizaSo($em, $id_so, $so_novo);
  388. $so = new TeSo();
  389. $so->setIdSo($so_new->getIdSo());
  390. $so->setTeSo28('2.5.1.1.256');
  391. $so->setTeSo31('Microsoft Windows XP Professional');
  392. $em->persist($so);
  393. }
  394. if ($te_so == '2.5.1.1.0') {
  395. // Primeiro pega o ID do 3.1 já cadastrado
  396. $so_new = $em->getRepository('CacicCommonBundle:SO')->findOneBy(array(
  397. 'teSo' => 'Microsoft Windows XP Professional'
  398. ));
  399. if (empty($so_new)) {
  400. $so_new = new So();
  401. $so_new->setTeDescSo('Microsoft Windows XP Professional');
  402. $so_new->setSgSo('Windows XP');
  403. $so_new->setTeSo('Microsoft Windows XP Professional');
  404. $so_new->setInMswindows('S');
  405. $em->persist($so_new);
  406. $em->flush();
  407. }
  408. // Busca todos os computadores que têm o mesmo MAC Address e esse SO
  409. $so_novo = $so_new->getIdSo();
  410. $this->atualizaSo($em, $id_so, $so_novo);
  411. $so = new TeSo();
  412. $so->setIdSo($so_new->getIdSo());
  413. $so->setTeSo28('2.5.1.1.256');
  414. $so->setTeSo31('Microsoft Windows XP Professional');
  415. $em->persist($so);
  416. }
  417. if ($te_so == '2.5.1.Service Pack 3') {
  418. // Primeiro pega o ID do 3.1 já cadastrado
  419. $so_new = $em->getRepository('CacicCommonBundle:SO')->findOneBy(array(
  420. 'teSo' => 'Microsoft Windows XP Professional'
  421. ));
  422. if (empty($so_new)) {
  423. $so_new = new So();
  424. $so_new->setTeDescSo('Microsoft Windows XP Professional');
  425. $so_new->setSgSo('Windows XP');
  426. $so_new->setTeSo('Microsoft Windows XP Professional');
  427. $so_new->setInMswindows('S');
  428. $em->persist($so_new);
  429. $em->flush();
  430. }
  431. // Busca todos os computadores que têm o mesmo MAC Address e esse SO
  432. $so_novo = $so_new->getIdSo();
  433. $this->atualizaSo($em, $id_so, $so_novo);
  434. $so = new TeSo();
  435. $so->setIdSo($so_new->getIdSo());
  436. $so->setTeSo28('2.5.1.Service Pack 3');
  437. $so->setTeSo31('Microsoft Windows XP Professional');
  438. $em->persist($so);
  439. }
  440. if ($te_so == 'Microsoft Windows XP Professional') {
  441. $so = new TeSo();
  442. $so->setIdSo($id_so);
  443. $so->setTeSo28('2.5.1.Service Pack 3');
  444. $so->setTeSo31('Microsoft Windows XP Professional');
  445. $em->persist($so);
  446. }
  447. $em->flush();
  448. }
  449. }
  450. public function down(Schema $schema)
  451. {
  452. // this down() migration is auto-generated, please modify it to your needs
  453. }
  454. public function atualizaSo( $em, $id_so, $so_novo ) {
  455. $this->addSql("SELECT remove_repetidos($id_so, $so_novo)");
  456. }
  457. }