Source: directives/briefing/consulta/consulta.js

  1. /**
  2. * @ngdoc directives
  3. * @name briefingOperacional
  4. * @module s4c.directives.briefing.consulta.consulta
  5. *
  6. * @description `ConsultaBriefingCtrl` Controller da funcão de consulta de Briefing
  7. *
  8. *
  9. *
  10. * @example <botao-leitura-arquivo></botao-leitura-arquivo>
  11. *
  12. */
  13. (function () {
  14. 'use strict';
  15. angular.module('s4c.components.briefingOperacional', [])
  16. .directive('consultaBriefing', ConsultaBriefing)
  17. .filter('capitalize', function () {
  18. return function (input, all) {
  19. return (!!input) ? input.replace(/([^\W_]+[^\s-]*) */g, function (txt) {
  20. return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
  21. }) : '';
  22. };
  23. });
  24. ConsultaBriefingCtrl.$inject = [
  25. '$scope',
  26. '$timeout',
  27. '$mdDialog',
  28. '$rootScope',
  29. 'Base'
  30. ];
  31. function ConsultaBriefingCtrl($scope, $timeout, $mdDialog, $rootScope, Base) {
  32. $scope.res = $rootScope.res;
  33. /**
  34. * Filtra o Briefing por departamento
  35. *
  36. * @method filtrarDepartamento
  37. *
  38. * @param briefing {Object} Briefing
  39. *
  40. */
  41. function filtrarDepartamento(briefing) {
  42. return _.map($scope.agencias, function (departamento) {
  43. var respostasDoDepartamento,
  44. comentariosDoDepartamento,
  45. respostasUsuarios,
  46. ultimasRespostasUsuarios = [];
  47. respostasDoDepartamento = _.filter(briefing.Respostas, function (resposta) {
  48. return resposta.Usuario.Departamento.id === departamento.id
  49. });
  50. comentariosDoDepartamento = _.filter(briefing.BriefingConsolidadoComentarios, function (comentario) {
  51. return departamento.id === comentario.DepartamentoId;
  52. });
  53. respostasUsuarios = _.chain(respostasDoDepartamento)
  54. .map('Usuario')
  55. .uniqBy('id')
  56. .value();
  57. _.each(respostasUsuarios, function (usuario) {
  58. var respostasDoUsuario = _.filter(respostasDoDepartamento, { 'UsuarioId': usuario.id }),
  59. ultimaResposta = _.chain(respostasDoUsuario).maxBy('id').value();
  60. ultimasRespostasUsuarios.push(ultimaResposta);
  61. });
  62. var respostaDepartamento = _.maxBy(respostasDoDepartamento, 'id');
  63. if (typeof respostaDepartamento === 'undefined') {
  64. respostaDepartamento = undefined;
  65. }
  66. return {
  67. id: departamento.id,
  68. nome: departamento.nome,
  69. ultimaResposta: respostaDepartamento,
  70. ultimasRespostas: ultimasRespostasUsuarios,
  71. comentarios: comentariosDoDepartamento,
  72. usuarios: _.chain(respostasDoDepartamento)
  73. .map(function (respostaDoDepartamento) {
  74. return {
  75. nome: respostaDoDepartamento.Usuario.nome,
  76. data: moment(respostaDoDepartamento.data).format('HH') + 'h' +
  77. moment(respostaDoDepartamento.data).format('mm'),
  78. perfil: _.maxBy(respostaDoDepartamento.Usuario.Perfils, 'PermissaoAcessos.length')
  79. };
  80. })
  81. .uniqBy('nome')
  82. .value()
  83. };
  84. });
  85. }
  86. /**
  87. * Faz a seleção do briefing que será manipulado
  88. *
  89. * @method selecionarBriefing
  90. *
  91. * @param pdf {Object} Briefing convertido pra pdf
  92. *
  93. */
  94. function selecionarBriefing(pdf) {
  95. $scope.briefingSelecionado = pdf;
  96. }
  97. /**
  98. * Faz a geração do pdf baseado no briefing selecionado
  99. *
  100. * @method gerarPDF
  101. *
  102. * @param briefing {Object} Briefing
  103. *
  104. */
  105. function gerarPDF(briefing) {
  106. Base.obter('departamentos/all').then(function (agencias) {
  107. $scope.agencias = agencias;
  108. var pdf = {
  109. texto: briefing.texto,
  110. Usuario: briefing.Usuario,
  111. conclusao: briefing.conclusao,
  112. fechadopor: briefing.fechadopor,
  113. imagem: briefing.imagem === null ? '' : briefing.imagem,
  114. data: moment(briefing.data).format('DD/MM/YYYY'),
  115. hora: moment(briefing.data).format('HH') + ':' + moment(briefing.data).format('mm'),
  116. departamentos: filtrarDepartamento(briefing),
  117. comentarios: briefing.BriefingConsolidadoComentarios
  118. };
  119. selecionarBriefing(pdf);
  120. renderizarPDF(pdf);
  121. });
  122. }
  123. /**
  124. * Faz a geração do pdf baseado no briefing selecionado
  125. *
  126. * @method converterUrlParaBase64
  127. *
  128. * @param url {String} url
  129. * @param callback {Function} Função que será chamada
  130. * @param outputFormat {String} Formato de saída
  131. *
  132. */
  133. function converterUrlParaBase64(url, callback, outputFormat) {
  134. var img = new Image();
  135. img.crossOrigin = 'Anonymous';
  136. img.onload = function () {
  137. var canvas = document.createElement('CANVAS');
  138. var ctx = canvas.getContext('2d');
  139. var dataURL;
  140. canvas.height = this.height;
  141. canvas.width = this.width;
  142. ctx.drawImage(this, 0, 0);
  143. dataURL = canvas.toDataURL(outputFormat);
  144. callback(img, dataURL);
  145. canvas = null;
  146. };
  147. img.src = url;
  148. }
  149. /**
  150. * Faz a renderezação do pdf baseado no briefing selecionado
  151. *
  152. * @method renderizarPDF
  153. *
  154. * @param briefingSelecionado {Object} Briefing
  155. *
  156. */
  157. function renderizarPDF(briefingSelecionado) {
  158. var doc = new jsPDF('p', 'pt'),
  159. contador = 30,
  160. margem = 30,
  161. pageHeight = 842 - (margem * 2),
  162. pageWidth = 595 - (margem * 2),
  163. linhas = '';
  164. //dataImg = 'data:image/png;base64,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';
  165. doc.setFontSize(12);
  166. doc.text(contador, 40, $scope.res('BRIEFING_OPERACIONAL'));
  167. doc.setFontSize(11);
  168. doc.text(contador, 60, briefingSelecionado.data + ' - ' + $scope.res('BOLETIM') + ' ' + briefingSelecionado.hora);
  169. converterUrlParaBase64($rootScope.ParametrosS4C.logoBriefieng, function (img, base64Img) {
  170. doc.addImage(base64Img, 'PNG', 472.43, 30, 40, 40);
  171. });
  172. contador += 50; // 80
  173. doc.line(30, contador, 560, contador);
  174. if (briefingSelecionado.departamentos.length > 0) {
  175. _.forEach(briefingSelecionado.departamentos, function (departamento) {
  176. if (contador >= pageHeight) {
  177. doc.addPage();
  178. pageHeight += 782;
  179. contador = 30;
  180. }
  181. if (departamento.nome != null && departamento.ultimasRespostas != null && departamento.ultimasRespostas.length > 0) {
  182. doc.setFont('helvetica');
  183. doc.setFontSize(12);
  184. doc.setFontType('bold');
  185. contador += 30; // 120
  186. doc.text(30, contador, departamento.nome);
  187. _.forEach(departamento.ultimasRespostas, function (resposta) {
  188. doc.setFont('helvetica');
  189. doc.setFontSize(12);
  190. doc.setFontType('normal');
  191. contador += 30;
  192. if (contador >= pageHeight) {
  193. doc.addPage();
  194. pageHeight += 782;
  195. contador = 30;
  196. }
  197. if (resposta.Usuario != null) {
  198. doc.text(35, contador, resposta.Usuario.nome + ' (' + $scope.res('COMUM_COORDENADOR') + ') - ' + moment(resposta.data).format('HH:mm'));
  199. }
  200. doc.setFont('helvetica');
  201. doc.setFontSize(10);
  202. doc.setFontType('normal');
  203. contador += 25;
  204. if (contador >= pageHeight) {
  205. doc.addPage();
  206. pageHeight += 782;
  207. contador = 30;
  208. }
  209. if (resposta.texto != null) {
  210. doc.text(35, contador, resposta.texto);
  211. var lines = resposta.texto.split("\n");
  212. if (lines.length > 1) {
  213. contador += 10 * lines.length;
  214. }
  215. }
  216. _.forEach(briefingSelecionado.comentarios, function (comentario) {
  217. if (comentario.text != null && comentario.departamentoId == departamento.id && comentario.usuarioId == resposta.Usuario.id) {
  218. contador += 25;
  219. doc.setFont('helvetica');
  220. doc.setFontSize(11);
  221. doc.setFontType('italic');
  222. doc.text(30, contador, $scope.res('COMUM_COMENTARIOS'));
  223. contador += 25;
  224. if (contador >= pageHeight) {
  225. doc.addPage();
  226. pageHeight += 782;
  227. contador = 30;
  228. }
  229. doc.setFont('helvetica');
  230. doc.setFontSize(10);
  231. doc.setFontType('normal');
  232. doc.text(35, contador, comentario.text);
  233. }
  234. });
  235. });
  236. }
  237. });
  238. }
  239. if (!briefingSelecionado.fechadopor) {
  240. doc.setFont('helvetica');
  241. doc.setFontSize(12);
  242. doc.setFontType('bold');
  243. contador += 40; // 120
  244. if (contador >= pageHeight) {
  245. doc.addPage();
  246. pageHeight += 782;
  247. contador = 30;
  248. }
  249. doc.text(30, contador, $scope.res('BRIEFING_FECHADO_ELETRONICAMENTE'));
  250. }
  251. if (briefingSelecionado.texto) {
  252. doc.setFont('helvetica');
  253. doc.setFontSize(12);
  254. doc.setFontType('italic');
  255. contador += 30; // 225
  256. if (contador >= pageHeight) {
  257. doc.addPage();
  258. pageHeight += 782;
  259. contador = 30;
  260. }
  261. doc.text(30, contador, $scope.res('COMUM_PARTICIPANTES'));
  262. doc.setFont('helvetica');
  263. doc.setFontSize(10);
  264. doc.setFontType('normal');
  265. contador += 20; // 245
  266. if (contador >= pageHeight) {
  267. doc.addPage();
  268. pageHeight += 782;
  269. contador = 30;
  270. }
  271. doc.text(35, contador, briefingSelecionado.texto);
  272. }
  273. if (briefingSelecionado.conclusao) {
  274. doc.setFont('helvetica');
  275. doc.setFontSize(12);
  276. doc.setFontType('italic');
  277. contador += 30;
  278. if (contador >= pageHeight) {
  279. doc.addPage();
  280. pageHeight += 782;
  281. contador = 30;
  282. }
  283. doc.text(30, contador, $scope.res('COMUM_CONCLUSAO'));
  284. contador += 20;
  285. linhas = doc.setFont('helvetica')
  286. .setFontSize(10)
  287. .setFontType('normal')
  288. .splitTextToSize(briefingSelecionado.conclusao, 535)
  289. if (contador >= pageHeight) {
  290. doc.addPage();
  291. pageHeight += 782;
  292. contador = 30;
  293. }
  294. doc.text(35, contador + 10 / 72, linhas);
  295. contador += linhas.length * 10;
  296. if (contador >= pageHeight) {
  297. doc.addPage();
  298. pageHeight += 782;
  299. contador = 30;
  300. }
  301. }
  302. if (briefingSelecionado.imagem) {
  303. doc.setFont('helvetica');
  304. doc.setFontSize(12);
  305. doc.setFontType('bold');
  306. contador += 40;
  307. if (contador >= pageHeight) {
  308. doc.addPage();
  309. pageHeight += 782;
  310. contador = 30;
  311. }
  312. doc.text(30, contador, $scope.res('COMUM_IMAGEM'));
  313. converterUrlParaBase64(briefingSelecionado.imagem, function (img, base64Img) {
  314. contador += 30;
  315. if (contador >= pageHeight) {
  316. doc.addPage();
  317. pageHeight += 782;
  318. contador = 30;
  319. }
  320. doc.addImage(base64Img, 'PNG', margem, contador, img.width, img.height);
  321. contador += img.height;
  322. });
  323. }
  324. setTimeout(function () {
  325. if (briefingSelecionado.fechadopor) {
  326. doc.setFont('helvetica');
  327. doc.setFontSize(12);
  328. doc.setFontType('normal');
  329. contador += 40;
  330. if (contador >= pageHeight) {
  331. doc.addPage();
  332. pageHeight += 782;
  333. contador = 30;
  334. }
  335. doc.text(30, contador, replaceStrings(briefingSelecionado.fechadopor));
  336. }
  337. }, 2900);
  338. setTimeout(function () {
  339. doc.save('Briefing ' + moment().format('DD/MM/YYYY HH:mm:ss'));
  340. }, 3000);
  341. }
  342. /**
  343. * Substitui textos no briefing
  344. *
  345. * @method replaceStrings
  346. *
  347. * @param fechadoPor {String} Nome da pessoa que fechou o briefing
  348. *
  349. */
  350. function replaceStrings(fechadoPor) {
  351. fechadoPor = fechadoPor.replace("Relator:", $scope.res('COMUM_RELATOR') + ':');
  352. fechadoPor = fechadoPor.replace("às", $scope.res('COMUM_AS'));
  353. return fechadoPor;
  354. }
  355. /**
  356. * Verifica se o menu camada já foi carregado
  357. *
  358. * @method verificaImagemCarregada
  359. *
  360. *
  361. */
  362. function verificaImagemCarregada() {
  363. if (!CamadasService.isLoaded) {
  364. setTimeout(function () {
  365. verificaImagemCarregada();
  366. }, 1000);
  367. } else {
  368. return;
  369. }
  370. }
  371. angular.extend($scope, {
  372. gerarPDF: gerarPDF,
  373. toggleTemplate: false
  374. });
  375. }
  376. ConsultaBriefing.$inject = [
  377. 'Briefing',
  378. 'Departamento',
  379. '$rootScope',
  380. 'Base'
  381. ];
  382. function ConsultaBriefing(Briefing, Departamento, $rootScope, Base) {
  383. return {
  384. restrict: 'EA',
  385. templateUrl: 'app/directives/briefing/consulta/consulta.html',
  386. replace: true,
  387. scope: {},
  388. controller: ConsultaBriefingCtrl,
  389. link: function ($scope, $elem) {
  390. $scope.res = $scope.$root.res;
  391. angular.extend($scope, {
  392. consulta: {
  393. data: moment().format('DD/MM/YYYY')
  394. }
  395. });
  396. obterBriefings(moment());
  397. /**
  398. * Obtem uma lista de briefings baseado em um período
  399. *
  400. * @method obterBriefings
  401. *
  402. * @param data {Object} Perído para ser filtrado
  403. *
  404. */
  405. function obterBriefings(data) {
  406. Briefing.getBriefingsByFiltro({
  407. where: {
  408. status: 'FECHADO',
  409. data: {
  410. $between: [
  411. moment(data).startOf('day'),
  412. moment(data).endOf('day')
  413. ]
  414. }
  415. },
  416. include: [{
  417. model: 'RespostaBriefing',
  418. 'as': 'Respostas',
  419. include: [{
  420. model: 'Usuario',
  421. include: [{
  422. model: 'Departamento'
  423. }, {
  424. model: 'Perfil',
  425. include: [{
  426. model: 'PermissaoAcesso'
  427. }]
  428. }]
  429. }]
  430. }, 'BriefingConsolidadoComentario']
  431. }).then(function (briefings) {
  432. _.each(briefings, function (briefing) {
  433. briefing._departamentos = _.chain(briefing.Respostas)
  434. .map('Usuario.Departamento')
  435. .uniqBy('id')
  436. .value();
  437. });
  438. briefings = _.sortBy(briefings, function (briefing) {
  439. return moment().diff(moment(briefing.data));
  440. });
  441. $scope.briefings = briefings
  442. })
  443. }
  444. var language;
  445. if ($scope.res("COMUM_LOCALE") == "pt-BR") {
  446. language = 'pt-BR';
  447. } else {
  448. language = 'en';
  449. }
  450. var dateTimepicker = $elem.find('#briefingDatetimepicker');
  451. dateTimepicker.datetimepicker({
  452. theme: 'dark',
  453. timepicker: false,
  454. format: 'd/m/Y',
  455. lang: language,
  456. closeOnDateSelect: true,
  457. onChangeDateTime: function (data) {
  458. obterBriefings(data);
  459. }
  460. });
  461. }
  462. };
  463. }
  464. }());