-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgoogle-apps-script.js
More file actions
80 lines (66 loc) · 2.32 KB
/
google-apps-script.js
File metadata and controls
80 lines (66 loc) · 2.32 KB
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
/**
* Google Apps Script para Google Sheets "SC verify"
*
* Funcionalidades:
* 1. addTimestamp: Añade fecha automática en columna K cuando se marca checkbox en columna E
* 2. captureUserEmail: Captura el email del usuario que edita en columna O cuando se añade un dominio en columna A
*
* Configuración:
* - Hoja objetivo: "SC verify"
* - Fila inicio: 368
* - Columna trigger timestamp: E (5) - Checkbox "Verified SC?"
* - Columna fecha: K (11) - "Date Created"
* - Columna email: O (15)
*
* Instalación:
* 1. Abrir Google Sheets
* 2. Extensions → Apps Script
* 3. Pegar este código
* 4. Guardar (Ctrl+S)
*
* Nota: La columna O debe estar desprotegida o el usuario debe tener permisos de edición
*/
function onEdit(e) {
// 1. Ejecutar Timestamp original
addTimestamp(e);
// 2. Ejecutar captura de usuario
captureUserEmail(e);
}
function addTimestamp(e) {
var tabName = SpreadsheetApp.getActiveSheet().getName();
var startRow = 368;
var triggerCol = 5; // Columna E (Verified SC? - checkbox)
var dateCol = 11; // Columna K (Date Created)
if (tabName === "Partner owned webs UA") {
startRow = 1;
triggerCol = 4;
dateCol = 5; // Ajustar según corresponda para esta hoja
} else if (tabName !== "SC verify") {
return;
}
var rowModified = e.range.getRow();
var colModified = e.range.getColumn();
// Cuando se edita columna E (checkbox), escribe fecha en columna K
if (colModified === triggerCol && rowModified >= startRow &&
e.source.getActiveSheet().getName() === tabName &&
e.source.getActiveSheet().getRange(rowModified, dateCol).getValue() == "") {
e.source.getActiveSheet().getRange(rowModified, dateCol).setValue(new Date());
}
}
function captureUserEmail(e) {
var sheet = e.source.getActiveSheet();
if (sheet.getName() !== "SC verify") return;
var range = e.range;
// Si se edita la Columna A (1) y no está vacía
if (range.getColumn() == 1 && range.getRow() > 1 && range.getValue() !== "") {
var userEmail = Session.getActiveUser().getEmail();
if (!userEmail && e.user) {
userEmail = e.user.email;
}
// DEBUG: Si falla, escribimos un aviso para saber que el script corre
if (!userEmail) {
userEmail = "⚠️ Falta Permiso";
}
sheet.getRange(range.getRow(), 15).setValue(userEmail);
}
}