Skip to content

Instantly share code, notes, and snippets.

@JaredLGarcia
Last active February 25, 2017 05:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JaredLGarcia/b4bb364c269fbc89d46615b84b89648d to your computer and use it in GitHub Desktop.
Save JaredLGarcia/b4bb364c269fbc89d46615b84b89648d to your computer and use it in GitHub Desktop.
//Key for Comments
//Checks and Manages Building of Equity Comms Folder and Rioter Docs **
function driveStructure(driveInfo, indexedValue) {
var rootFolder = DriveApp.getRootFolder();
var folders = DriveApp.getFolders();
var isPresent = findComms();
if(isPresent == 0){
rootFolder.createFolder("Equity Comms");
var rootIt = rootFolder.getFolders();
while (rootIt.hasNext()) {
var folder = rootIt.next();
var folderName = folder.getName();
if(folderName == "Equity Comms") {
var equityFolder = folder;
}
}
}else if(isPresent == 1){
var rootIt = rootFolder.getFolders();
while (rootIt.hasNext()) {
var folder = rootIt.next();
var folderName = folder.getName();
if(folderName == "Equity Comms") {
var equityFolder = folder;
}
}
}
buildDocs(equityFolder,driveInfo,indexedValue);
}
//Gathers DocumentIDs for generated Templates
function referenceDoc() {
var equityFolder = DriveApp.getFolderById('0B-rc1idWq6n4WHpSQ2c5clR1MTg').getFiles();
var ssMain = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Equity Folder");
var buildArray = [];
while(equityFolder.hasNext()){
var fileArray = [];
var file = equityFolder.next();
fileArray.push(file.getName());
fileArray.push(file.getId());
buildArray.push(fileArray);
}
ssMain.getRange(1, 1, buildArray.length, 2).setValues(buildArray);
}
//Get the equity comms folder
function getComms() {
var folders = DriveApp.getFolders();
var present = 0;
var folderName;
while (folders.hasNext()) {
var folder = folders.next();
folderName = folder.getName();
if(folderName == "Equity Comms") {
present = 1;
var thisFolder = folder;
}
}
return thisFolder;
}
//Builds Google Docs for Rioters on the Equity Spreadsheet
function buildDocs() {
var ssMain = SpreadsheetApp.getActiveSpreadsheet();
var folder = getComms();
var lastRow = ssMain.getLastRow();
var driveInfo = ssMain.getSheetByName("Main").getRange(2, 2, lastRow, 3).getValues();
//Logger.log(driveInfo);
var templateDoc = DriveApp.getFileById("Enter Template DocID here");
var equityDocs = folder.getFiles();
var present = 0;
for(var i = 0; i <= driveInfo.length-1; i++) {
var testPhrase = driveInfo[i][0] + " Equity Confirmation";
while (equityDocs.hasNext()) {
var doc = equityDocs.next();
var docName = doc.getName();
//Logger.log(testPhrase);
if(docName == testPhrase) {
present = 1;
}
}
//Logger.log(present);
if(present == 0) {
templateDoc.makeCopy(testPhrase, folder);
Logger.log(testPhrase);
}
if(present == 1) {
}
}
}
function fillOut() {
var ssMain = SpreadsheetApp.getActiveSpreadsheet();
var lastRow = ssMain.getLastRow();
var driveInfo = ssMain.getSheetByName("Main").getRange(2, 2, lastRow, 3).getValues();
for(var i = 0; i <= driveInfo.length-1; i++) {
var testPhrase = driveInfo[i][10];
var modify = DriveApp.getFileById(driveInfo[i][11]);
var name = modify.getName();
var rioter = driveInfo[i][0];
Logger.log(rioter);
if(testPhrase == name) {
var ident = modify.getId();
var docToRight = DocumentApp.openById(driveInfo[i][11]).getBody();
docToRight.replaceText("{NAME}", rioter);
docToRight.replaceText("{VSHARES}", driveInfo[i][2]);
var taxComp = driveInfo[i][3].toFixed(2);
taxComp.toLocaleString('en');
docToRight.replaceText("{TAXCOMP}", "$"+taxComp);
var taxObli = driveInfo[i][4].toFixed(2);
taxObli.toLocaleString('en');
docToRight.replaceText("{TAXOBLI}", "$"+taxObli);
docToRight.replaceText("{SWITHHELD}", driveInfo[i][5]);
docToRight.replaceText("{TBDELIVERED}", driveInfo[i][6]);
var viaPayroll = driveInfo[i][7].toFixed(2);
docToRight.replaceText("{VIAPAYROLL}", "$"+viaPayroll);
}
}
}
//Gathers sharing settings for Docs just for Analytics after completion
function shareSettings(driveInfo, ssMain) {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Main");
var sharingIndex = ssMain.getSheetByName("Operators").getRange("B2").getValue();
for(var i = 0; i <= driveInfo.length-2; i++){
var ident = driveInfo[i][11];
var messageID = "Place a Google Message ID here";
var file = DriveApp.getFileById(ident);
var user = driveInfo[i][1];
Logger.log("Add User: "+ user);
Logger.log(ident);
file.addViewer(user);
var message = GmailApp.getMessageById(messageID);
message.forward(user);
var writeOne = "L" + sharingIndex;
var writeTwo = "M" + sharingIndex;
Logger.log(writeOne);
Logger.log(ssMain);
ss.getRange(writeOne).setValue("X");
ss.getRange(writeTwo).setValue(user);
sharingIndex++;
ssMain.getSheetByName("Operators").getRange("B2").setValue(sharingIndex);
}
// Send an email with a file from Google Drive attached as a PDF.
var file = DriveApp.getFileById("Enter Google DocID here");
GmailApp.sendEmail('mike@example.com', 'Attachment example', 'Please see the attached file.', {
attachments: [file.getAs(MimeType.PDF)],
name: 'PDF Emailer Script'
});
}
function equityShare() {
var ssMain = SpreadsheetApp.getActiveSpreadsheet();
var lastRow = ssMain.getLastRow();
var driveInfo = ssMain.getSheetByName("Main").getRange(2,1,lastRow,10).getValues();
for(var i = 0; i <= driveInfo.length-1; i++){
var ident = driveInfo[i][11];
//Logger.log(driveInfo);
var file = DriveApp.getFileById(ident);
var user = driveInfo[i][1];
var write = i+1397;
Logger.log("Add User: "+ user);
if(file.getName() == driveInfo[i][10]) {
file.addViewer(user);
Logger.log(user);
var message = GmailApp.getMessageById("Enter Gmail MessageID Here");
message.forward(user, {subject: "Your Document is ready"});
var writeOne = "J" + write;
var writeTwo = "K" + write;
ssMain.getRange(writeOne).setValue("X");
ssMain.getRange(writeTwo).setValue(user);
}
}
}
function testEmail() {
var message = GmailApp.getMessageById("Google Apps Message ID here");
message.forward("cfox@riotgames.com", {
subject: "Your Document is ready"
});
//GmailApp.sendEmail("jgarcia@example.com", "The Test To End All Tests", message);
}
function main () {
//Grab Main Spreadsheet **
var ssMain = SpreadsheetApp.getActiveSpreadsheet();
//Grab Values for Drive Structure Method **
var sharedValue = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Operators").getRange("B2").getValue();
var indexedValue = ssMain.getSheetByName("Operators").getRange("A2").getValue();
var driveInfo = ssMain.getSheetByName("Main").getRange(indexedValue, 2, ssMain.getSheetByName("Main").getLastRow(), 12).getValues();
var sharedInfo = ssMain.getSheetByName("Main").getRange(sharedValue, 2, ssMain.getSheetByName("Main").getLastRow(), 14).getValues();
//Check for Existing Drive File Structure and Build if not present
var lastRow = ssMain.getSheetByName("Main").getLastRow();
//Logger.log(indexedValue);
//Logger.log(lastRow);
//if(indexedValue < lastRow) {
//driveStructure(driveInfo,indexedValue);
//}
//if(sharedValue < lastRow) {
//shareSettings(sharedInfo,ssMain);
//}
Logger.log(sharedInfo);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment