Severity: Notice
Message: Trying to access array offset on value of type bool
Filename: view/view.php
Line Number: 33
Severity: Notice
Message: Trying to access array offset on value of type bool
Filename: view/view.php
Line Number: 33
Severity: Notice
Message: Trying to access array offset on value of type bool
Filename: view/view.php
Line Number: 33
// 1) GERA CÓDIGOS E RESPECTIVOS URLS // 2) ENVIA A LISTA PARA E-MAILS // 3) EMBARALHA OS CÓDIGOS function enviarCedulas(){ //GERA CÒDIGOS E RESPECTIVOS URLS var formId = "CÓDIGO OCULTADO"; var entry = "1666239363"; var ssId = SpreadsheetApp.getActive().getId(); var planilha = SpreadsheetApp.openById(ssId); var nomeAba = "VOTANTES"; var aba = planilha.getSheetByName(nomeAba); var votantes = aba.getDataRange().getValues(); var totalCodigos = votantes.length; gerarTodosOsCodigos(formId, entry, totalCodigos); nomeAba = "CODIGOS"; aba = planilha.getSheetByName(nomeAba); var codigosRange = aba.getDataRange(); var codigos = codigosRange.getValues(); var totalEmails = votantes.length; for (var i = 1; i < totalEmails; i++) { var name = votantes[i][0]; var theirMail = votantes[i][1]; var url = codigos[i][1]; mandaEmails(name, theirMail, url); var aaa; } embaralhaCodigos(); } function embaralhaCodigos() { var ssId = SpreadsheetApp.getActive().getId(); var planilha = SpreadsheetApp.openById(ssId); var nomeAba = "CODIGOS"; var aba = planilha.getSheetByName(nomeAba); var range = aba.getDataRange(); var random = aba.getRange(2, 1, range.getLastRow() - 1, range.getLastColumn() - 1); random.randomize(); } function gerarCodigo() { //http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript return random = Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15); } function constroiUrl(codigos, formId, entry){ var template = "https://docs.google.com/forms/d/--form-id--/viewform?entry.##entryNumber##=##COD##"; template = template.replace("--form-id--", formId); var urls = ["Url"]; // Skip headers, then build URLs for each row in Sheet1. for (var i = 1; i < codigos.length; i++ ) { var url = template.replace('##COD##',escape(codigos[i])).replace('##entryNumber##', entry); urls.push(url); } return urls; } function adicionaValoresParaTabela(aba, letraColuna, valores) { const intervalo = [letraColuna, "1:", letraColuna, valores.length].join(""); const fn = function(v) { return [ v ]; }; aba.getRange(intervalo).setValues(valores.map(fn)); } function gerarTodosOsCodigos(formId, entry, totalCodigos){ var ssId = SpreadsheetApp.getActive().getId(); var nomeAba = "CODIGOS"; var planilha = SpreadsheetApp.openById(ssId); var aba = planilha.getSheetByName(nomeAba); var codigos = ["Códigos"]; for (var i = 1; i < totalCodigos; i++) { codigos.push(gerarCodigo()); } adicionaValoresParaTabela(aba,"A",codigos); var links = constroiUrl(codigos, formId, entry); adicionaValoresParaTabela(aba,"B",links); } function mandaEmails(name, theirMail, url) { var facebookLogoUrl = "https://sites.google.com/site/condominiomizaelmontenegro/gastos-e-receita/area-do-sindico/Ameciclo_html_m2456de1c.png"; var twitterLogoUrl = "https://sites.google.com/site/condominiomizaelmontenegro/gastos-e-receita/area-do-sindico/Ameciclo_html_m65ecf6cc.png"; var instagramLogoUrl = "https://sites.google.com/site/condominiomizaelmontenegro/gastos-e-receita/area-do-sindico/Ameciclo_html_m475d4370.png"; var facebookUrl = "http://www.facebook.com/AMEciclo"; var twitterUrl = "http://www.twitter.com/Ameciclo"; var instagramUrl = "http://www.instagram.com/Ameciclo"; var amecicloUrl = "http://www.ameciclo.org/"; var amecicloGroupMailUrl = "http://groups.google.com/group/ameciclo"; var amecicloGroupFacebookUrl = "http://www.facebook.com/groups/138029079711872/"; var amecicloLogoUrl = "https://uniaodeciclistas.org.br/wp-content/uploads/2013/04/Logo-Ameciclo-Qdr-Pq-300x300.jpg"; var conteudo = "<CENTER><TABLE WIDTH=600 CELLPADDING=4 CELLSPACING=0 RULES=NONE><COL WIDTH=595>" + "<TR><TD WIDTH=595 VALIGN=TOP><P ALIGN=CENTER>" + "<a href="+ amecicloUrl +"><img src=" + amecicloLogoUrl + " WIDTH=100 HEIGHT=100><br></p></TD></TR>" + "<TR><TD WIDTH=595 VALIGN=TOP >" + "<p>Olá " + name + ", <br>Essa é a nossa CÉDULA DE VOTAÇÃO VIRTUAL para as Eleições da Ameciclo 2020.<br><br></p>" + "<p><b><a href=" + url + ">CLIQUE AQUI PARA ACESSÁ-LA</a></b><br><br></p>"+ "<p>Cada célula tem um código único, gerado aleatoriamente, e garante o anonimato do voto.<br></p>" + "<p>Não passe esse código ou link para ninguém, pois é pessoal e intransferível.<br><br>"+ "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>"+ "<p ALIGN=CENTER>Atenciosamente,<br><b>AMECICLO<br>Associação Metropolitana de Ciclistas do Recife</b></p></TD></TR>" + "<TR><TD WIDTH=595 VALIGN=TOP><P ALIGN=CENTER>" + "<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>" enviarEmailPeloSendgrid(theirMail, conteudo); } function enviarEmailPeloSendgrid(endereco, corpoDoEmail) { var SENDGRID_KEY ='CÓDIGO OCULTADO'; var headers = { "Authorization" : "Bearer "+SENDGRID_KEY, "Content-Type": "application/json" } var tituloEmail = "CÉDULA DE VOTAÇÃO VIRTUAL - Eleições da Ameciclo 2020" var body = { "personalizations": [ { "to": [ { "email": endereco } ], "subject": tituloEmail } ], "from": { }, "content": [ { "type": "text/html", "value": corpoDoEmail } ] } var options = { 'method':'post', 'headers':headers, 'payload':JSON.stringify(body) } var response = UrlFetchApp.fetch("https://api.sendgrid.com/v3/mail/send",options); Logger.log(response); }