-
Notifications
You must be signed in to change notification settings - Fork 0
/
creaCertificado.md.js
105 lines (58 loc) · 3.33 KB
/
creaCertificado.md.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
// Script para crear y personalizar certificados de participación en talleres de MetaDocencia (diciembre 2022)
// DOCUMENTACION INTERNA:
//
// Documentación Google:
// https://developers.google.com/apps-script/reference/spreadsheet/sheet,
// https://developers.google.com/apps-script/reference/mail,
// https://developers.google.com/apps-script/reference/utilities,
// Referencia original:
// https://developers.google.com/apps-script/samples/automations/employee-certificate
/*
Copyright 2022 Google LLC
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Función para CREAR certificado
function creaCertificado() {
// Trae planilla de inscripciones
var url_validate = "https://docs.google.com/spreadsheets/d/[]/"; // **MODIFICAR**
var ActiveSpreadsheet = SpreadsheetApp.openByUrl(url_validate);
var ActiveSheet = ActiveSpreadsheet.getSheets()[0];
var data = ActiveSheet.getDataRange().getValues();
// Crea archivos PDF de los certificados y entradas en la planilla para confirmarlos
for(var i = 1; i < data.length; i++) {
// Indica columna para verificar si asistió y si ya fue creado un certificado (o sea, no crea archivos duplicados)
if ((!ActiveSheet.getRange(i+1, 36).isBlank()) && (ActiveSheet.getRange(i+1, 37).isBlank())) {
// Encuentra nombre
var nombre = data[i][1]; // (count-1)
var apellido = data[i][2]; // (count-1)
// Encuentra fecha
//var fecha = data[i][40]; // (count-1)
// ID de plantilla de inscripción
let templateCertificadoId = "[]"; // **MODIFICAR**
// ID de carpeta para guardar los certificados personalizados
let carpetaCertificadosId = "[]"; // **MODIFICAR**
// Crea ID de certificado persionalizado
let templateCertis = DriveApp.getFileById(templateCertificadoId);
// Crea copia con nombre de participante en la carpeta correspondiente dentro de "certificados personalizados"
let carpetaCertis = DriveApp.getFolderById(carpetaCertificadosId);
//Se generan las copias, se renombran los archivos
let asistenteId = templateCertis.makeCopy(carpetaCertis).setName( apellido +" "+nombre).getId();
let certiAsistente = SlidesApp.openById(asistenteId).getSlides()[0];
// Sustituye los placeholders con nombre, apellido y fecha
certiAsistente.replaceAllText("<<First Name>>", nombre);
certiAsistente.replaceAllText("<<Last Name>>", apellido);
certiAsistente.replaceAllText("<<Fecha>>", fecha);
// Escribe en la planilla que el certificado fue creado
ActiveSheet.getRange(i+1, 37).setValue("Sí");
// Escribe en la planilla el ID del archivo de cada certificado
ActiveSheet.getRange(i+1, 39).setValue(asistenteId);
}}
}