PageRenderTime 63ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 1ms

/eventosalab/admin/controles/ctrl_presenca.php

https://github.com/viollarr/alab
PHP | 803 lines | 403 code | 63 blank | 337 comment | 51 complexity | b0dd97daa42d869a72b00dc08529fdd8 MD5 | raw file
Possible License(s): LGPL-2.1, GPL-2.0, AGPL-3.0, Apache-2.0, BSD-3-Clause, GPL-3.0
  1. <?php
  2. class ctrl_presenca extends ctrl_generico {
  3. function __construct() {
  4. $this->id_evento = $_SESSION["id_evento_admin"];
  5. //$this->tabela = "ev_evento";
  6. }
  7. /**
  8. * Apenas chama a tela que exibe as demais opcĂľes.
  9. */
  10. function presencas() {
  11. /* Participantes */
  12. $sql = "SELECT id, nome FROM ev_participante WHERE id_evento='" . $this->id_evento . "' ORDER BY nome ASC";
  13. $result = mysql_query($sql);
  14. $participantes = array();
  15. while ($linha = mysql_fetch_array($result, MYSQL_ASSOC)) {
  16. // Adiciona essa linha de registro na variĂĄvel que serĂĄ passada para a TELA
  17. array_push($participantes, $linha);
  18. } //while
  19. $GLOBALS["participantes"] = $participantes;
  20. if ($this->id_evento == 28)
  21. return "presencas_qp4";
  22. return "presencas";
  23. }
  24. function presencas_participante() {
  25. //////////////////////////////////
  26. // ConexĂŁo com o banco de dados //
  27. //////////////////////////////////
  28. //////////////////////////////////////
  29. // Classe de avaliação de trabalhos //
  30. //////////////////////////////////////
  31. require_once("controles/ctrl_avaliacao.php");
  32. $ctrl_avaliacao = new ctrl_avaliacao();
  33. ////////////////////////////////////
  34. // ID do participante selecionado //
  35. ////////////////////////////////////
  36. $id_participante = (int) $_GET['id'];
  37. //////////////////
  38. // PARTICIPANTE //
  39. //////////////////
  40. $sql = "SELECT id, nome, id_tipo_participante FROM ev_participante WHERE id_evento='" . $this->id_evento . "' AND id = " . $id_participante . " LIMIT 1";
  41. $result = mysql_query($sql);
  42. $participante = mysql_fetch_array($result, MYSQL_ASSOC);
  43. ///////////////////////////////////
  44. // COMISSÃO ACADÊMICO-CIENTÍFICA //
  45. ///////////////////////////////////
  46. // id_tipo_participante: 10
  47. ///////////////
  48. // Presenças //
  49. ///////////////
  50. $presencas = array();
  51. $sql = "SELECT * FROM ev_presenca WHERE id_evento='" . $this->id_evento . "' AND id_participante = " . $id_participante . " ";
  52. $result = mysql_query($sql);
  53. while ($linha = mysql_fetch_array($result, MYSQL_ASSOC)) {
  54. $presencas[] = $linha;
  55. }//while
  56. $participante['presencas'] = $presencas;
  57. //////////////////////////
  58. // COORDENAÇÃO SIMPÓSIO //
  59. //////////////////////////
  60. $simposios_coordenados = array();
  61. // Pegar simpĂłsios cooordenados por este participante
  62. $sql = "SELECT s.id, s.titulo_sessao
  63. FROM ev_simposio s INNER JOIN ev_simposio_coordenador sc
  64. ON s.id = sc.id_simposio
  65. WHERE
  66. sc.id_participante = " . $id_participante . "
  67. AND s.id_evento = " . $this->id_evento . "
  68. ";
  69. $result = mysql_query($sql);
  70. while ($linha = mysql_fetch_array($result, MYSQL_ASSOC)) {
  71. $simposios_coordenados[] = $linha;
  72. }//while
  73. $participante['simposios_coordenados'] = $simposios_coordenados;
  74. //////////////////////////
  75. // TRABALHO EM SIMPÓSIO //
  76. //////////////////////////
  77. $trabalhos_em_simposio = array();
  78. // Pegar trabalhos em simpĂłsio deste participante
  79. $sql = "SELECT id, titulo
  80. FROM ev_resumo
  81. WHERE
  82. id_evento='" . $this->id_evento . "'
  83. AND (autor = " . $id_participante . " OR co_autor = " . $id_participante . ")
  84. AND id_tipo_trabalho = 1
  85. AND id_simposio > 0
  86. ORDER BY titulo ASC";
  87. $result = mysql_query($sql);
  88. while ($linha = mysql_fetch_array($result, MYSQL_ASSOC)) {
  89. $trabalhos_em_simposio[] = $linha;
  90. }//while
  91. $participante['trabalhos_em_simposio'] = $trabalhos_em_simposio; // array
  92. /////////////////////////////////////////////////
  93. // COORDENAÇÃO DE SESSÃO [COMUNIC. COORDENADA] //
  94. /////////////////////////////////////////////////
  95. $coordenadas = array();
  96. // Pegar simpĂłsios cooordenados por este participante
  97. $sql = "SELECT id, titulo_sessao
  98. FROM ev_comunicacao_coordenada
  99. WHERE
  100. id_coordenador = " . $id_participante . "
  101. AND id_evento = " . $this->id_evento . "
  102. ";
  103. $result = mysql_query($sql);
  104. while ($linha = mysql_fetch_array($result, MYSQL_ASSOC)) {
  105. $coordenadas[] = $linha;
  106. }//while
  107. $participante['sessoes_coordenadas'] = $coordenadas;
  108. ////////////////////////////////////////////
  109. // APRESENTAÇÃO DE COMUNICAÇÃO INDIVIDUAL //
  110. ////////////////////////////////////////////
  111. $comunicacoes_individuais = array();
  112. // Pegar todas comunicaçþes individuais deste participante
  113. if ($this->id_evento == 28) {
  114. $sql = "SELECT resumo.id, resumo.titulo
  115. FROM ev_resumo resumo, ev_participante_resumo participante_resumo
  116. WHERE participante_resumo.id_participante = $id_participante
  117. AND participante_resumo.id_resumo = resumo.id
  118. AND resumo.id_tipo_trabalho = 3
  119. ORDER BY resumo.titulo ASC";
  120. } else {
  121. $sql = "SELECT id, titulo
  122. FROM ev_resumo
  123. WHERE
  124. id_evento='" . $this->id_evento . "'
  125. AND (autor = " . $id_participante . " OR co_autor = " . $id_participante . ")
  126. AND id_tipo_trabalho = 3
  127. ORDER BY titulo ASC";
  128. }
  129. $result = mysql_query($sql);
  130. while ($linha = mysql_fetch_array($result, MYSQL_ASSOC)) {
  131. // Verificar se foram aceitos, e caso SIM,
  132. // acrescentar no array de pĂ´steres deste participante
  133. if ($ctrl_avaliacao->aceito($linha['id'], 'comunicacao_individual')) {
  134. //echo "Trabalho Aceito";
  135. $comunicacoes_individuais[] = $linha;
  136. }//if
  137. }//while
  138. $participante['comunicacoes_individuais'] = $comunicacoes_individuais; // array
  139. ////////////////////////////////////////////
  140. // APRESENTAÇÃO DE COMUNICAÇÃO COORDENADA //
  141. ////////////////////////////////////////////
  142. $comunicacoes_coordenadas = array();
  143. // Pegar todos os trabalhos em comunicação coordenada deste participante
  144. if ($this->id_evento == 28) {
  145. $sql = "SELECT resumo.id, resumo.titulo
  146. FROM ev_resumo resumo, ev_participante_resumo participante_resumo
  147. WHERE participante_resumo.id_participante = $id_participante
  148. AND participante_resumo.id_resumo = resumo.id
  149. AND resumo.id_tipo_trabalho = 2
  150. AND resumo.id_comunicacao_coordenada > 0
  151. ORDER BY resumo.titulo ASC";
  152. } else {
  153. $sql = "SELECT id, titulo
  154. FROM ev_resumo
  155. WHERE
  156. id_evento='" . $this->id_evento . "'
  157. AND (autor = " . $id_participante . " OR co_autor = " . $id_participante . ")
  158. AND id_tipo_trabalho = 2
  159. AND id_comunicacao_coordenada > 0
  160. ORDER BY titulo ASC";
  161. }
  162. $result = mysql_query($sql);
  163. while ($linha = mysql_fetch_array($result, MYSQL_ASSOC)) {
  164. // Verificar se foram aceitos, e caso SIM,
  165. // acrescentar no array de pĂ´steres deste participante
  166. if ($ctrl_avaliacao->aceito($linha['id'], 'resumo_em_coordenada')) {
  167. //echo "Trabalho Aceito";
  168. $comunicacoes_coordenadas[] = $linha;
  169. }//if
  170. }//while
  171. $participante['comunicacoes_coordenadas'] = $comunicacoes_coordenadas; // array
  172. ////////////////////////////
  173. // APRESENTAÇÃO DE PÔSTER //
  174. ////////////////////////////
  175. $posteres = array();
  176. // Pegar todos os posteres deste participante
  177. $sql = "SELECT id, titulo
  178. FROM ev_resumo
  179. WHERE
  180. id_evento='" . $this->id_evento . "'
  181. AND (autor = " . $id_participante . " OR co_autor = " . $id_participante . ")
  182. AND id_tipo_trabalho = 4
  183. ORDER BY titulo ASC";
  184. $result = mysql_query($sql);
  185. while ($linha = mysql_fetch_array($result, MYSQL_ASSOC)) {
  186. // Verificar se foram aceitos, e caso SIM,
  187. // acrescentar no array de pĂ´steres deste participante
  188. if ($ctrl_avaliacao->aceito($linha['id'], 'poster')) {
  189. //echo "Trabalho Aceito";
  190. $posteres[] = $linha;
  191. }//if
  192. }//while
  193. $participante['posteres'] = $posteres; // array
  194. $GLOBALS["participante"] = $participante;
  195. return "presencas_participante";
  196. }
  197. function presencas_qp4_participante() {
  198. //////////////////////////////////////
  199. // Classe de avaliação de trabalhos //
  200. //////////////////////////////////////
  201. require_once("controles/ctrl_avaliacao.php");
  202. $ctrl_avaliacao = new ctrl_avaliacao();
  203. ////////////////////////////////////
  204. // ID do participante selecionado //
  205. ////////////////////////////////////
  206. $id_participante = (int) $_POST['id_participante'];
  207. //////////////////
  208. // PARTICIPANTE //
  209. //////////////////
  210. //$participante = array();
  211. $sql = "SELECT part.id, part.nome, pre.presente,
  212. CASE part.id_tipo_participante
  213. WHEN 13 THEN 'sim'
  214. ELSE 'nao'
  215. END AS ouvinte
  216. FROM ev_participante AS part
  217. LEFT JOIN ev_presenca AS pre ON pre.id_participante = '{$id_participante}'
  218. AND pre.id_evento = '{$this->id_evento}'
  219. AND pre.tipo = 'ouvinte'
  220. WHERE
  221. part.id_evento='" . $this->id_evento . "'
  222. AND part.id = " . $id_participante . "
  223. LIMIT 1";
  224. //echo "SQL: gerada participante: " . $sql;
  225. $result = mysql_query($sql);
  226. $participante = mysql_fetch_array($result, MYSQL_ASSOC);
  227. /////////////////////////////////////////////////
  228. // COORDENAÇÃO DE SESSÃO [COMUNIC. COORDENADA] //
  229. /////////////////////////////////////////////////
  230. // Pegar comunicaçőes cooordenadas por este participante
  231. $sql = "SELECT c.id, c.titulo_sessao AS titulo, p.presente
  232. FROM ev_comunicacao_coordenada AS c
  233. LEFT JOIN ev_presenca p ON c.id = p.id_trabalho
  234. AND p.id_evento = '{$this->id_evento}'
  235. AND p.tipo = 'coordenacao_sessao'
  236. AND p.id_participante = '{$id_participante}'
  237. WHERE
  238. c.id_coordenador = " . $id_participante . "
  239. AND c.id_evento = " . $this->id_evento;
  240. $result = mysql_query($sql);
  241. $participante['sessoes_coordenadas'] = array();
  242. while ($linha = mysql_fetch_array($result, MYSQL_ASSOC))
  243. $participante['sessoes_coordenadas'][] = $linha;
  244. ////////////////////////////////////////////
  245. // APRESENTAÇÃO DE COMUNICAÇÃO INDIVIDUAL //
  246. ////////////////////////////////////////////
  247. // Pegar todas comunicaçþes individuais deste participante
  248. $sql = "SELECT resumo.id, resumo.titulo, p.presente
  249. FROM ev_resumo resumo, ev_participante_resumo participante_resumo
  250. LEFT JOIN ev_presenca p ON participante_resumo.id_resumo = p.id_trabalho
  251. AND p.id_evento = '{$this->id_evento}'
  252. AND p.tipo = 'comunicacao_individual'
  253. AND p.id_participante = '{$id_participante}'
  254. WHERE participante_resumo.id_participante = $id_participante
  255. AND participante_resumo.id_resumo = resumo.id
  256. AND resumo.id_tipo_trabalho = 3
  257. ORDER BY resumo.titulo ASC";
  258. //echo "<br />SQL (ctrl_presenca): " . $sql . '<br />';
  259. $result = mysql_query($sql);
  260. $participante['comunicacoes_individuais'] = array();
  261. while ($linha = mysql_fetch_array($result, MYSQL_ASSOC)) {
  262. // Verificar se foram aceitos, e caso SIM,
  263. // acrescentar no array de comunicaçőes individuais deste participante
  264. if ($ctrl_avaliacao->aceito($linha['id'], 'comunicacao_individual')) {
  265. //echo "Trabalho Aceito";
  266. $participante['comunicacoes_individuais'][] = $linha;
  267. }//if
  268. }//while
  269. ////////////////////////////////////////////
  270. // APRESENTAÇÃO DE COMUNICAÇÃO COORDENADA //
  271. ////////////////////////////////////////////
  272. // Pegar todos os trabalhos em comunicação coordenada deste participante
  273. $sql = "SELECT resumo.id, resumo.titulo, p.presente
  274. FROM ev_resumo resumo, ev_participante_resumo participante_resumo
  275. LEFT JOIN ev_presenca p ON participante_resumo.id_resumo = p.id_trabalho
  276. AND p.id_evento = '{$this->id_evento}'
  277. AND p.tipo = 'comunicacao_coordenada'
  278. AND p.id_participante = '{$id_participante}'
  279. WHERE participante_resumo.id_participante = $id_participante
  280. AND participante_resumo.id_resumo = resumo.id
  281. AND resumo.id_tipo_trabalho = 2
  282. AND resumo.id_comunicacao_coordenada > 0
  283. ORDER BY resumo.titulo ASC";
  284. $result = mysql_query($sql);
  285. $participante['comunicacoes_coordenadas'] = array();
  286. while ($linha = mysql_fetch_array($result, MYSQL_ASSOC)) {
  287. // Verificar se foram aceitos, e caso SIM,
  288. // acrescentar no array de resumo em coordenada deste participante
  289. if ($ctrl_avaliacao->aceito($linha['id'], 'resumo_em_coordenada')) {
  290. //echo "Trabalho Aceito";
  291. $participante['comunicacoes_coordenadas'][] = $linha;
  292. }//if
  293. }//while
  294. $GLOBALS["participante"] = $participante;
  295. //echo "presencas_qp4_participante()";
  296. require_once("telas/presencas_qp4_participante.php");
  297. exit();
  298. }
  299. function salvar() {
  300. //////////////////////////////////
  301. // ConexĂŁo com o banco de dados //
  302. //////////////////////////////////
  303. ////////////////////////////////////
  304. // ID do participante selecionado //
  305. ////////////////////////////////////
  306. $id_participante = (int) $_POST['id'];
  307. /*
  308. print "POST: <pre>";
  309. print_r($_POST);
  310. print "</pre>";
  311. /* */
  312. // DELETANDO PRESENÇAS ANTERIORES PARA PODER CADASTRAR AS NOVAS.
  313. $sql = "DELETE FROM ev_presenca WHERE id_participante = '$id_participante' AND id_evento='" . $this->id_evento . "' ";
  314. mysql_query($sql); // or die(mysql_error());
  315. // OUVINTE
  316. if (!empty($_POST['ouvinte'])) {
  317. $ouvinte_presente = $_POST['ouvinte'];
  318. $values[] = "('" . $this->id_evento . "', '$id_participante', '0', 'ouvinte', '$ouvinte_presente')";
  319. } //if
  320. // COMISSÃO ACADÊMICO-CIENTÍFICA
  321. if (!empty($_POST['comissao'])) {
  322. $comissao_presente = $_POST['comissao'];
  323. $values[] = "('" . $this->id_evento . "', '$id_participante', '0', 'comissao', '$comissao_presente')";
  324. } //if
  325. // SIMPÓSIOS COORDENADOS POR ESTE PARTICIPANTE
  326. $simposios_coordenados = $_POST['simposios_coordenados'];
  327. if (is_array($simposios_coordenados)) {
  328. foreach ($simposios_coordenados as $id_trabalho) {
  329. $presente = addslashes($_POST["simposio_" . $id_trabalho]);
  330. $values[] = "('" . $this->id_evento . "', '$id_participante', '$id_trabalho', 'coordenacao_simposio', '$presente')";
  331. } //foreach
  332. } //if
  333. // TRABLHOS (RESUMOS) EM SIMPÓSIOS
  334. $trabalhos_em_simposio = $_POST['trabalhos_em_simposio'];
  335. if (is_array($trabalhos_em_simposio)) {
  336. foreach ($trabalhos_em_simposio as $id_trabalho) {
  337. $presente = addslashes($_POST["trabalho_em_simposio_" . $id_trabalho]);
  338. $values[] = "('" . $this->id_evento . "', '$id_participante', '$id_trabalho', 'trabalho_em_simposio', '$presente')";
  339. } //foreach
  340. } //if
  341. // SESSÕES (COMUNICAÇÃO COORDENADA) COORDENADAS POR ESTE PARTICIPANTE
  342. $sessoes_coordenadas = $_POST['sessoes_coordenadas'];
  343. if (is_array($sessoes_coordenadas)) {
  344. foreach ($sessoes_coordenadas as $id_trabalho) {
  345. $presente = addslashes($_POST["sessao_coordenada_" . $id_trabalho]);
  346. $values[] = "('" . $this->id_evento . "', '$id_participante', '$id_trabalho', 'coordenacao_sessao', '$presente')";
  347. } //foreach
  348. } //if
  349. // COMUNICAÇÕES INDIVIDUAIS
  350. $comunicacoes_individuais = $_POST['comunicacoes_individuais'];
  351. if (is_array($comunicacoes_individuais)) {
  352. foreach ($comunicacoes_individuais as $id_trabalho) {
  353. $presente = addslashes($_POST["comunicacao_individual_" . $id_trabalho]);
  354. $values[] = "('" . $this->id_evento . "', '$id_participante', '$id_trabalho', 'comunicacao_individual', '$presente')";
  355. } //foreach
  356. } //if
  357. // TRABLHOS (RESUMOS) EM COMUNICAÇÕES COORDENADAS
  358. $comunicacoes_coordenadas = $_POST['comunicacoes_coordenadas'];
  359. if (is_array($comunicacoes_coordenadas)) {
  360. foreach ($comunicacoes_coordenadas as $id_trabalho) {
  361. $presente = addslashes($_POST["comunicacao_coordenada_" . $id_trabalho]);
  362. $values[] = "('" . $this->id_evento . "', '$id_participante', '$id_trabalho', 'comunicacao_coordenada', '$presente')";
  363. } //foreach
  364. } //if
  365. // PÔSTERES
  366. $posteres = $_POST['posteres'];
  367. if (is_array($posteres)) {
  368. foreach ($posteres as $id_trabalho) {
  369. $presente = addslashes($_POST["poster_" . $id_trabalho]);
  370. $values[] = "('" . $this->id_evento . "', '$id_participante', '$id_trabalho', 'poster', '$presente')";
  371. } //foreach
  372. } //if
  373. // Concatenando os values para inserir no banco de dados
  374. $values = implode(", ", $values);
  375. $sql = "INSERT INTO ev_presenca(id_evento, id_participante, id_trabalho, tipo, presente) VALUES " . $values;
  376. /*
  377. print "SQL: <pre>";
  378. print_r($sql);
  379. print "</pre>";
  380. /* */
  381. mysql_query($sql); // or die(mysql_error());
  382. if (mysql_affected_rows() > 0)
  383. $GLOBALS['msg_ctrl_presenca'] = "Presen&ccedil;a(s) cadastrada(s) com sucesso.";
  384. else
  385. $GLOBALS['msg_ctrl_presenca'] = "N&atilde;o foi poss&iacute;vel cadastrar a(s) presen&ccedil;a(s).";
  386. return $this->presencas();
  387. //exit("<hr />ctrl_presenca");
  388. }
  389. function salvar_presenca_qp4() {
  390. // Variáveis usadas para segurança.
  391. $presencas_possiveis = array('sim', 'nao');
  392. $certificados_possiveis = array('comunicacao_individual', 'coordenacao_sessao', 'comunicacao_coordenada', 'ouvinte');
  393. // Verificando se o valor de presença passado é válido.
  394. if (in_array($_POST['presente'], $presencas_possiveis))
  395. $presente = $_POST['presente'];
  396. else {
  397. echo false;
  398. exit();
  399. }
  400. //echo "Certificado clicado: " . $_POST['certificado'];
  401. // Verificando se o tipo de certificado passado é válido.
  402. if (in_array($_POST['certificado'], $certificados_possiveis))
  403. $certificado = $_POST['certificado'];
  404. else {
  405. echo false;
  406. exit();
  407. }
  408. // Verificando se o id de participante passado é válido.
  409. if (!empty($_POST['id_participante']))
  410. $id_participante = (int) $_POST['id_participante'];
  411. else {
  412. echo false;
  413. exit();
  414. }
  415. // Pegando o id do trabalho caso a presença seja na apresentaçăo de algum trabalho.
  416. $id_trabalho = (int) $_POST['id_trabalho'];
  417. //exit("salvar_presenca_qp4()");
  418. // Verificar se a presença para este participante já foi marcada...
  419. $sql = "SELECT * FROM ev_presenca
  420. WHERE
  421. id_evento = '{$this->id_evento}'
  422. AND id_participante = '{$id_participante}'
  423. AND id_trabalho = '{$id_trabalho}'
  424. AND tipo = '{$certificado}' ";
  425. //echo " | SQL gerada: " . $sql;
  426. // ... se sim, atualizar.
  427. if (mysql_num_rows(mysql_query($sql)) > 0)
  428. $sql = "UPDATE ev_presenca
  429. SET
  430. presente = '{$presente}',
  431. modificado = NOW()
  432. WHERE
  433. id_evento = '{$this->id_evento}'
  434. AND id_participante = '{$id_participante}'
  435. AND id_trabalho = '{$id_trabalho}'
  436. AND tipo = '{$certificado}' ";
  437. else
  438. $sql = "INSERT INTO ev_presenca(id_evento, id_participante, id_trabalho, tipo, presente)
  439. VALUE ('{$this->id_evento}', '{$id_participante}', '{$id_trabalho}', '{$certificado}', '{$presente}')";
  440. //echo "SQL: " . $sql . " | ";
  441. if (mysql_query($sql))
  442. echo true;
  443. else
  444. echo false;
  445. // Precisa fazer isso, pois do contrário irá retornar para o controller principal.
  446. exit();
  447. }
  448. function debatedores_simposio() {
  449. // ConexĂŁo com o banco de dados
  450. // Participantes
  451. $sql = "SELECT id, nome FROM ev_participante WHERE id_evento='" . $this->id_evento . "' ORDER BY nome ASC";
  452. $result = mysql_query($sql);
  453. $debatedores = array();
  454. while ($participante = mysql_fetch_array($result, MYSQL_ASSOC)) {
  455. // Verificar se ĂŠ debatedor de algum simpĂłsio
  456. $sql_simposios = "SELECT id, titulo_sessao
  457. FROM ev_simposio
  458. WHERE
  459. id_evento='" . $this->id_evento . "'
  460. AND (id_participante_debatedor = " . $participante['id'] . " OR id_participante_debatedor_2 = " . $participante['id'] . ")
  461. ORDER BY titulo_sessao ASC";
  462. $result_simposios = mysql_query($sql_simposios);
  463. // Se for debatedor de algum simpĂłsio...
  464. if (mysql_num_rows($result_simposios) > 0) {
  465. // Salvar dados do(s) simpĂłsio(s) do(s) qual(is) este participante ĂŠ debatedor
  466. while ($simposio = mysql_fetch_array($result_simposios, MYSQL_ASSOC)) {
  467. // Presenças
  468. $sql_presencas = "SELECT presente FROM ev_presenca
  469. WHERE
  470. id_evento='" . $this->id_evento . "'
  471. AND id_participante = " . $participante['id'] . "
  472. AND tipo = 'debatedor_simposio'
  473. AND id_trabalho = '" . $simposio['id'] . "' ";
  474. $result_presenca = mysql_query($sql_presencas);
  475. $linha_presenca = mysql_fetch_assoc($result_presenca);
  476. // Salvando a presença deste debatedor (participante) para este simpósio
  477. $simposio['presenca'] = $linha_presenca['presente'];
  478. // Salvando os simpósios do debatedor com as respectivas presenças
  479. $participante['simposios'][] = $simposio;
  480. }//while
  481. // Array de debatedores
  482. $debatedores[] = $participante;
  483. }//if
  484. } //while
  485. /*
  486. print "<br /><br />(ctrl_presenca) Debatedores: <pre>";
  487. print_r($debatedores);
  488. print "</pre>";
  489. /* */
  490. //$debatedores[$i]['nome'];
  491. //$debatedores[$i]['simpĂłsio']['titulo_sessao'];
  492. //$debatedores[$i]['simpĂłsio']['presenca'];
  493. $GLOBALS["debatedores"] = $debatedores;
  494. return "debatedores_simposio";
  495. }
  496. //function
  497. function salvar_presencas_debatedores_simposio() {
  498. // ConexĂŁo com o banco de dados
  499. /*
  500. print "<br /><br />(ctrl_presenca) Presenças: <pre>";
  501. print_r($_POST['presencas']);
  502. print "</pre>";
  503. /* */
  504. foreach ($_POST['presencas'] as $linha_presenca) {
  505. $arr_presenca = explode("|", $linha_presenca);
  506. $linha = (int) $arr_presenca[0];
  507. $id_participante = (int) $arr_presenca[1];
  508. $id_simposio = (int) $arr_presenca[2];
  509. $presenca = '';
  510. if ($_POST["presenca_" . $linha] == 'sim')
  511. $presenca = 'sim';
  512. if ($_POST["presenca_" . $linha] == 'nao')
  513. $presenca = 'nao';
  514. if (!empty($presenca)) {
  515. // Verificar se jå tem presença cadastrada para debatedor de simpósio.
  516. // Caso tenha, faz o update se nĂŁo faz o insert.
  517. $sql_presenca_anterior = "SELECT * FROM ev_presenca
  518. WHERE
  519. id_evento = '" . $this->id_evento . "'
  520. AND id_participante = '" . $id_participante . "'
  521. AND id_trabalho = '" . $id_simposio . "'
  522. AND tipo = 'debatedor_simposio' ";
  523. $result_presenca_anterior = mysql_query($sql_presenca_anterior);
  524. // Update
  525. if (mysql_num_rows($result_presenca_anterior) > 0) {
  526. /* echo "<hr>" . */$sql = "UPDATE ev_presenca
  527. SET
  528. presente = '" . $presenca . "'
  529. WHERE
  530. id_evento = '" . $this->id_evento . "'
  531. AND id_participante = '" . $id_participante . "'
  532. AND id_trabalho = '" . $id_simposio . "'
  533. AND tipo = 'debatedor_simposio' ";
  534. } // if
  535. // Insert
  536. else {
  537. /* echo "<hr>" . */$sql = "INSERT INTO ev_presenca(id_evento, id_participante, id_trabalho, tipo, presente)
  538. VALUES ('" . $this->id_evento . "', '" . $id_participante . "', '" . $id_simposio . "', 'debatedor_simposio', '" . $presenca . "')";
  539. }//else
  540. mysql_query($sql) or die(mysql_error());
  541. }
  542. } // foreach
  543. $GLOBALS['msg_ctrl_presenca'] = "Presen&ccedil;a(s) cadastrada(s) com sucesso.";
  544. return $this->debatedores_simposio();
  545. }
  546. private function pr($label = '', $var) {
  547. ?>
  548. <div>
  549. <?php
  550. $label = utf8_encode($label);
  551. echo "{$label}: <pre>";
  552. print_r($var);
  553. echo "</pre><br/>";
  554. ?>
  555. </div>
  556. <?php
  557. }
  558. //function
  559. ////////////////////////////////////////////////////////////////////////
  560. // Usada para popular a tabela presenca com valores 'sim' para todos. //
  561. // ---> USAR COM MUITA CAUTELA!!! <--- //
  562. ////////////////////////////////////////////////////////////////////////
  563. /*
  564. function popular_presencas(){
  565. // Participantes
  566. $sql = "SELECT id, nome, id_tipo_participante FROM ev_participante WHERE id_evento='".$this->id_evento."' ORDER BY nome ASC";
  567. $result = mysql_query($sql);
  568. $participantes = array();
  569. while($linha = mysql_fetch_array($result, MYSQL_ASSOC)){
  570. // Adiciona essa linha de registro na variĂĄvel que serĂĄ passada para a TELA
  571. array_push($participantes, $linha);
  572. } //while
  573. //////////////////////////////////////
  574. // Classe de avaliação de trabalhos //
  575. //////////////////////////////////////
  576. require_once("controles/ctrl_avaliacao.php");
  577. $ctrl_avaliacao = new ctrl_avaliacao();
  578. foreach($participantes as $participante){
  579. $values = array();
  580. /////////////
  581. // OUVINTE //
  582. /////////////
  583. $values[] = "('".$this->id_evento."', '".$participante['id']."', '0', 'ouvinte', 'sim')";
  584. ///////////////////////////////////
  585. // COMISSÃO ACADÊMICO-CIENTÍFICA //
  586. ///////////////////////////////////
  587. // id_tipo_participante: 10
  588. if($participante['id_tipo_participante'] == 10){
  589. $values[] = "('".$this->id_evento."', '".$participante['id']."', '0', 'comissao', 'sim')";
  590. }
  591. //////////////////////////
  592. // COORDENAÇÃO SIMPÓSIO //
  593. //////////////////////////
  594. $simposios_coordenados = array();
  595. // Pegar simpĂłsios cooordenados por este participante
  596. $sql = "SELECT s.id, s.titulo_sessao
  597. FROM ev_simposio s INNER JOIN ev_simposio_coordenador sc
  598. ON s.id = sc.id_simposio
  599. WHERE
  600. sc.id_participante = ".$participante['id']."
  601. AND s.id_evento = ".$this->id_evento."
  602. ";
  603. $result = mysql_query($sql);
  604. while($linha = mysql_fetch_array($result, MYSQL_ASSOC)){
  605. $values[] = "('".$this->id_evento."', '".$participante['id']."', '".$linha['id']."', 'coordenacao_simposio', 'sim')";
  606. }//while
  607. //////////////////////////
  608. // TRABALHO EM SIMPÓSIO //
  609. //////////////////////////
  610. $trabalhos_em_simposio = array();
  611. // Pegar trabalhos em simpĂłsio deste participante
  612. $sql = "SELECT id, titulo
  613. FROM ev_resumo
  614. WHERE
  615. id_evento='".$this->id_evento."'
  616. AND (autor = ".$participante['id']." OR co_autor = ".$participante['id'].")
  617. AND id_tipo_trabalho = 1
  618. AND id_simposio > 0
  619. ORDER BY titulo ASC";
  620. $result = mysql_query($sql);
  621. while($linha = mysql_fetch_array($result, MYSQL_ASSOC)){
  622. $values[] = "('".$this->id_evento."', '".$participante['id']."', '".$linha['id']."', 'trabalho_em_simposio', 'sim')";
  623. }//while
  624. /////////////////////////////////////////////////
  625. // COORDENAÇÃO DE SESSÃO [COMUNIC. COORDENADA] //
  626. /////////////////////////////////////////////////
  627. $coordenadas = array();
  628. // Pegar simpĂłsios cooordenados por este participante
  629. $sql = "SELECT id, titulo_sessao
  630. FROM ev_comunicacao_coordenada
  631. WHERE
  632. id_coordenador = ".$participante['id']."
  633. AND id_evento = ".$this->id_evento."
  634. ";
  635. $result = mysql_query($sql);
  636. while($linha = mysql_fetch_array($result, MYSQL_ASSOC)){
  637. $values[] = "('".$this->id_evento."', '".$participante['id']."', '".$linha['id']."', 'coordenacao_sessao', 'sim')";
  638. }//while
  639. ////////////////////////////////////////////
  640. // APRESENTAÇÃO DE COMUNICAÇÃO INDIVIDUAL //
  641. ////////////////////////////////////////////
  642. $comunicacoes_individuais = array();
  643. // Pegar todas comunicaçþes individuais deste participante
  644. $sql = "SELECT id, titulo
  645. FROM ev_resumo
  646. WHERE
  647. id_evento='".$this->id_evento."'
  648. AND (autor = ".$participante['id']." OR co_autor = ".$participante['id'].")
  649. AND id_tipo_trabalho = 3
  650. ORDER BY titulo ASC";
  651. $result = mysql_query($sql);
  652. while($linha = mysql_fetch_array($result, MYSQL_ASSOC)){
  653. // Verificar se foram aceitos, e caso SIM,
  654. // acrescentar no array de pĂ´steres deste participante
  655. if($ctrl_avaliacao->aceito($linha['id'], 'comunicacao_individual')){
  656. //echo "Trabalho Aceito";
  657. $values[] = "('".$this->id_evento."', '".$participante['id']."', '".$linha['id']."', 'comunicacao_individual', 'sim')";
  658. }//if
  659. }//while
  660. $participante['comunicacoes_individuais'] = $comunicacoes_individuais; // array
  661. ////////////////////////////////////////////
  662. // APRESENTAÇÃO DE COMUNICAÇÃO COORDENADA //
  663. ////////////////////////////////////////////
  664. $comunicacoes_coordenadas = array();
  665. // Pegar todos os trabalhos em comunicação coordenada deste participante
  666. $sql = "SELECT id, titulo
  667. FROM ev_resumo
  668. WHERE
  669. id_evento='".$this->id_evento."'
  670. AND (autor = ".$participante['id']." OR co_autor = ".$participante['id'].")
  671. AND id_tipo_trabalho = 2
  672. AND id_comunicacao_coordenada > 0
  673. ORDER BY titulo ASC";
  674. $result = mysql_query($sql);
  675. while($linha = mysql_fetch_array($result, MYSQL_ASSOC)){
  676. // Verificar se foram aceitos, e caso SIM,
  677. // acrescentar no array de pĂ´steres deste participante
  678. if($ctrl_avaliacao->aceito($linha['id'], 'resumo_em_coordenada')){
  679. //echo "Trabalho Aceito";
  680. $values[] = "('".$this->id_evento."', '".$participante['id']."', '".$linha['id']."', 'comunicacao_coordenada', 'sim')";
  681. }//if
  682. }//while
  683. ////////////////////////////
  684. // APRESENTAÇÃO DE PÔSTER //
  685. ////////////////////////////
  686. $posteres = array();
  687. // Pegar todos os posteres deste participante
  688. $sql = "SELECT id, titulo
  689. FROM ev_resumo
  690. WHERE
  691. id_evento='".$this->id_evento."'
  692. AND (autor = ".$participante['id']." OR co_autor = ".$participante['id'].")
  693. AND id_tipo_trabalho = 4
  694. ORDER BY titulo ASC";
  695. $result = mysql_query($sql);
  696. while($linha = mysql_fetch_array($result, MYSQL_ASSOC)){
  697. // Verificar se foram aceitos, e caso SIM,
  698. // acrescentar no array de pĂ´steres deste participante
  699. if($ctrl_avaliacao->aceito($linha['id'], 'poster')){
  700. //echo "Trabalho Aceito";
  701. $values[] = "('".$this->id_evento."', '".$participante['id']."', '".$linha['id']."', 'poster', 'sim')";
  702. }//if
  703. }//while
  704. $participante['posteres'] = $posteres; // array
  705. // Concatenando os values para inserir no banco de dados
  706. $values = implode(", ", $values);
  707. $sql = "INSERT INTO ev_presenca(id_evento, id_participante, id_trabalho, tipo, presente) VALUES " . $values;
  708. //print "SQL: <pre>";
  709. // print_r($sql);
  710. //print "</pre>";
  711. mysql_query($sql);// or die(mysql_error());
  712. } //foreach participantes
  713. return $this->presencas();
  714. }//function
  715. */
  716. }
  717. ?>