Facebook
From Colossal Butterfly, 3 Years ago, written in JavaScript.
">

A PHP Error was encountered

Severity: Notice

Message: Trying to access array offset on value of type bool

Filename: view/view.php

Line Number: 33

from

A PHP Error was encountered

Severity: Notice

Message: Trying to access array offset on value of type bool

Filename: view/view.php

Line Number: 33

- view diff
Embed
Download Paste or View Raw
Hits: 232
  1. // 1) GERA CÓDIGOS E RESPECTIVOS URLS
  2. // 2) ENVIA A LISTA PARA E-MAILS
  3. // 3) EMBARALHA OS CÓDIGOS
  4.  
  5. function enviarCedulas(){
  6.  
  7. //GERA CÒDIGOS E RESPECTIVOS URLS  
  8.   var formId = "CÓDIGO OCULTADO";
  9.   var entry = "1666239363";
  10.  
  11.   var ssId = SpreadsheetApp.getActive().getId();
  12.   var planilha = SpreadsheetApp.openById(ssId);
  13.  
  14.   var nomeAba = "VOTANTES";
  15.   var aba = planilha.getSheetByName(nomeAba);
  16.   var votantes = aba.getDataRange().getValues();
  17.  
  18.   var totalCodigos = votantes.length;
  19.   gerarTodosOsCodigos(formId, entry, totalCodigos);  
  20.  
  21.   nomeAba = "CODIGOS";
  22.   aba = planilha.getSheetByName(nomeAba);
  23.   var codigosRange = aba.getDataRange();
  24.   var codigos = codigosRange.getValues();
  25.  
  26.   var totalEmails = votantes.length;
  27.  
  28.   for (var i = 1; i < totalEmails; i++) {
  29.  
  30.     var name = votantes[i][0];
  31.     var theirMail = votantes[i][1];
  32.     var url = codigos[i][1];
  33.    
  34.     mandaEmails(name, theirMail, url);
  35.    
  36.     var aaa;
  37.   }
  38.  
  39.   embaralhaCodigos();
  40.  
  41. }
  42.  
  43. function embaralhaCodigos() {
  44.  
  45.   var ssId = SpreadsheetApp.getActive().getId();
  46.   var planilha = SpreadsheetApp.openById(ssId);  
  47.  
  48.   var nomeAba = "CODIGOS";
  49.   var aba = planilha.getSheetByName(nomeAba);
  50.   var range = aba.getDataRange();
  51.  
  52.   var random = aba.getRange(2, 1, range.getLastRow() - 1, range.getLastColumn() - 1);
  53.   random.randomize();
  54.  
  55. }
  56. function gerarCodigo() {
  57.   //http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript
  58.   return random = Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
  59. }
  60.  
  61. function constroiUrl(codigos, formId, entry){
  62.   var template = "https://docs.google.com/forms/d/--form-id--/viewform?entry.##entryNumber##=##COD##";
  63.   template = template.replace("--form-id--", formId);
  64.  
  65.   var urls = ["Url"];
  66.  
  67.   // Skip headers, then build URLs for each row in Sheet1.
  68.   for (var i = 1; i < codigos.length; i++ ) {
  69.     var url = template.replace('##COD##',escape(codigos[i])).replace('##entryNumber##', entry);
  70.     urls.push(url);
  71.   }
  72.   return urls;
  73. }
  74.  
  75.  
  76. function adicionaValoresParaTabela(aba, letraColuna, valores) {
  77.   const intervalo = [letraColuna, "1:", letraColuna, valores.length].join("");
  78.   const fn = function(v) {
  79.     return [ v ];
  80.   };
  81.   aba.getRange(intervalo).setValues(valores.map(fn));
  82. }
  83.  
  84.  
  85. function gerarTodosOsCodigos(formId, entry, totalCodigos){
  86.  
  87.   var ssId = SpreadsheetApp.getActive().getId();
  88.   var nomeAba = "CODIGOS";
  89.  
  90.   var planilha = SpreadsheetApp.openById(ssId);
  91.   var aba = planilha.getSheetByName(nomeAba);
  92.  
  93.   var codigos = ["Códigos"];
  94.  
  95.   for (var i = 1; i < totalCodigos; i++) {
  96.        
  97.        codigos.push(gerarCodigo());
  98.        
  99.        }
  100.    
  101.   adicionaValoresParaTabela(aba,"A",codigos);
  102.  
  103.  
  104.   var links = constroiUrl(codigos, formId, entry);
  105.   adicionaValoresParaTabela(aba,"B",links);
  106.  
  107. }
  108.  
  109.  
  110. function mandaEmails(name, theirMail, url) {
  111.    
  112.   var facebookLogoUrl = "https://sites.google.com/site/condominiomizaelmontenegro/gastos-e-receita/area-do-sindico/Ameciclo_html_m2456de1c.png";
  113.   var twitterLogoUrl = "https://sites.google.com/site/condominiomizaelmontenegro/gastos-e-receita/area-do-sindico/Ameciclo_html_m65ecf6cc.png";
  114.   var instagramLogoUrl = "https://sites.google.com/site/condominiomizaelmontenegro/gastos-e-receita/area-do-sindico/Ameciclo_html_m475d4370.png";
  115.   var facebookUrl = "http://www.facebook.com/AMEciclo";
  116.   var twitterUrl = "http://www.twitter.com/Ameciclo";
  117.   var instagramUrl = "http://www.instagram.com/Ameciclo";
  118.   var amecicloUrl = "http://www.ameciclo.org/";
  119.   var amecicloMailUrl = "mailto:[email protected]";
  120.   var amecicloGroupMailUrl = "http://groups.google.com/group/ameciclo";
  121.   var amecicloGroupFacebookUrl = "http://www.facebook.com/groups/138029079711872/";
  122.   var amecicloLogoUrl = "https://uniaodeciclistas.org.br/wp-content/uploads/2013/04/Logo-Ameciclo-Qdr-Pq-300x300.jpg";
  123.  
  124.   var conteudo = "<CENTER><TABLE WIDTH=600 CELLPADDING=4 CELLSPACING=0 RULES=NONE><COL WIDTH=595>" +
  125.     "<TR><TD WIDTH=595 VALIGN=TOP><P ALIGN=CENTER>" +
  126.     "<a href="+ amecicloUrl +"><img src=" + amecicloLogoUrl + " WIDTH=100 HEIGHT=100><br></p></TD></TR>" +
  127.     "<TR><TD WIDTH=595 VALIGN=TOP >" +
  128.     "<p>Olá " + name + ", <br>Essa é a nossa CÉDULA DE VOTAÇÃO VIRTUAL para as Eleições da Ameciclo 2020.<br><br></p>" +
  129.     "<p><b><a href=" + url + ">CLIQUE AQUI PARA ACESSÁ-LA</a></b><br><br></p>"+
  130.     "<p>Cada célula tem um código único, gerado aleatoriamente, e garante o anonimato do voto.<br></p>" +              
  131.     "<p>Não passe esse código ou link para ninguém, pois é pessoal e intransferível.<br><br>"+
  132.     "Devido à pandemia de COVID-19, a Comissão Eleitoral adotou esse método virtual de votação. Saiba mais na própria cédula.<br></p>"+
  133.     "<p ALIGN=CENTER>Atenciosamente,<br><b>AMECICLO<br>Associação Metropolitana de Ciclistas do Recife</b></p></TD></TR>" +
  134.     "<TR><TD WIDTH=595 VALIGN=TOP><P ALIGN=CENTER>" +
  135.     "<a href="+ facebookUrl +"><img src=" + facebookLogoUrl + " WIDTH=29 HEIGHT=29></a><a href="+ twitterUrl +"><img src=" + twitterLogoUrl +" WIDTH=29 HEIGHT=29></a><a href="+ instagramUrl +"><img src=" + instagramLogoUrl + " WIDTH=29 HEIGHT=29></a><br></p></TD></TR></TABLE></CENTER>"
  136.    
  137.     enviarEmailPeloSendgrid(theirMail, conteudo);
  138.  
  139.  
  140. }
  141.  
  142. function enviarEmailPeloSendgrid(endereco, corpoDoEmail) {
  143.  var SENDGRID_KEY ='CÓDIGO OCULTADO';
  144.  
  145.   var headers = {
  146.     "Authorization" : "Bearer "+SENDGRID_KEY,
  147.     "Content-Type": "application/json"
  148.   }
  149.  
  150.   var tituloEmail = "CÉDULA DE VOTAÇÃO VIRTUAL - Eleições da Ameciclo 2020"
  151.    
  152.   var body =
  153.       {
  154.         "personalizations": [
  155.           {
  156.             "to": [
  157.               {
  158.                 "email": endereco
  159.               }
  160.             ],
  161.             "subject": tituloEmail
  162.           }
  163.         ],
  164.         "from": {
  165.           "email": "[email protected]"
  166.         },
  167.         "content": [
  168.           {
  169.             "type": "text/html",
  170.             "value": corpoDoEmail
  171.           }
  172.         ]
  173.       }
  174.  
  175.   var options = {
  176.  
  177.     'method':'post',
  178.     'headers':headers,
  179.     'payload':JSON.stringify(body)
  180.  
  181.   }
  182.  
  183.  var response = UrlFetchApp.fetch("https://api.sendgrid.com/v3/mail/send",options);
  184.  
  185.  Logger.log(response);
  186. }
  187.  
  188.  
  189.