Facebook
From Trivial Agouti, 3 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 365
  1. // CREATING MENU IN UI OF SPREADSHEETS
  2. function onOpen() {
  3.   var ui = SpreadsheetApp.getUi();
  4.   ui.createMenu('PDF Creator by IDM')
  5.       .addItem('Create PDF', 'savePDFs')
  6.       .addToUi();
  7. }
  8.  
  9.  
  10. function savePDFs() {      
  11.  
  12.  
  13.   var ss = SpreadsheetApp.getActiveSpreadsheet();
  14.   var sheet = ss.getActiveSheet();
  15.   var sheetName = sheet.getName();
  16.   var instructionSheet = ss.getSheetByName("Instructions");
  17.   var week = instructionSheet.getRange("B2").getValues();
  18.  
  19.   // Get URL of spreadsheet, and remove the trailing 'edit'
  20.   var url = ss.getUrl().replace(/edit$/,'');
  21.  
  22.   var ui = SpreadsheetApp.getUi();
  23.  
  24.   // Get SL Trigram in order to define folder for PDF output
  25.  
  26.   var username = Session.getActiveUser().getEmail();
  27.   var trigramShiftl = username.toString().substring(0,3).toUpperCase();
  28.  
  29.    
  30.   if (trigramShiftl == "IDM") {
  31.      var folder = DriveApp.getFolderById("1zQ48Z5MZKjZs2aHk0HZKerDPjY00VhhF");
  32.   } else if (trigramShiftl == "IDM") {
  33.      var folder = DriveApp.getFolderById("1zQ48Z5MZKjZs2aHk0HZKerDPjY00VhhF");
  34.   } else if (trigramShiftl == "GAE") {
  35.      var folder = DriveApp.getFolderById("1zQ48Z5MZKjZs2aHk0HZKerDPjY00VhhF");
  36.   } else if (trigramShiftl == "SLW") {
  37.      var folder = DriveApp.getFolderById("1zQ48Z5MZKjZs2aHk0HZKerDPjY00VhhF");
  38.   } else if (trigramShiftl == "YYA") {
  39.      var folder = DriveApp.getFolderById("1zQ48Z5MZKjZs2aHk0HZKerDPjY00VhhF");
  40.   } else if (trigramShiftl == "DKE") {
  41.      var folder = DriveApp.getFolderById("1zQ48Z5MZKjZs2aHk0HZKerDPjY00VhhF");
  42.   } else if (trigramShiftl == "DBA") {
  43.      var folder = DriveApp.getFolderById("1zQ48Z5MZKjZs2aHk0HZKerDPjY00VhhF");  
  44.   } else {
  45.      var askShiftlTrigram = ui.prompt("In which shift are you performing the report?","Insert shiftleader trigram:", ui.ButtonSet.OK)
  46.        
  47.        if (askShiftlTrigram.getSelectedButton() == ui.Button.CLOSE)
  48.          return;
  49.  
  50.        if (askShiftlTrigram.getSelectedButton() == ui.Button.OK)
  51.          var shiftlTrigram = askShiftlTrigram.getResponseText().toString().toUpperCase();
  52.  
  53.          if (shiftlTrigram == "IDM") {
  54.              var folder = DriveApp.getFolderById("1zQ48Z5MZKjZs2aHk0HZKerDPjY00VhhF");
  55.          } else if (shiftlTrigram == "VYO") {
  56.              var folder = DriveApp.getFolderById("1zQ48Z5MZKjZs2aHk0HZKerDPjY00VhhF");
  57.          } else if (shiftlTrigram == "PNK") {
  58.              var folder = DriveApp.getFolderById("1zQ48Z5MZKjZs2aHk0HZKerDPjY00VhhF");
  59.          } else if (shiftlTrigram == "GNG") {
  60.              var folder = DriveApp.getFolderById("1zQ48Z5MZKjZs2aHk0HZKerDPjY00VhhF");
  61.          } else if (shiftlTrigram == "TPI") {
  62.              var folder = DriveApp.getFolderById("1zQ48Z5MZKjZs2aHk0HZKerDPjY00VhhF");
  63.          } else {
  64.              var error = SpreadsheetApp.getUi().alert("Shiftleader trigram not recognized!")
  65.              return;
  66.             }
  67.      
  68.      
  69.   }
  70.  
  71.  
  72.     // Ask Operator trigram to rename documents
  73.     var ui = SpreadsheetApp.getUi();
  74.     var askTrigramOperator = ui.prompt('PDF Creator (IDM)', 'Insert shiftleader/Op.Lead trigram?', ui.ButtonSet.OK);
  75.  
  76.        if (askTrigramOperator.getSelectedButton() == ui.Button.CLOSE)
  77.          return;
  78.  
  79.        if (askTrigramOperator.getSelectedButton() == ui.Button.OK)
  80.          var trigramOperator = askTrigramOperator.getResponseText();
  81.          var trigramOperatorUpper = trigramOperator.toString().toUpperCase();
  82.        
  83.  
  84.        
  85.    
  86.     // Ask Technician trigram to rename documents
  87.     var askTrigramTech = ui.prompt('PDF Creator (IDM)', 'What is the OP/TN trigram?', ui.ButtonSet.OK);
  88.  
  89.         if (askTrigramTech.getSelectedButton() == ui.Button.CLOSE)
  90.           return;
  91.  
  92.  
  93.         if (askTrigramTech.getSelectedButton() == ui.Button.OK)
  94.           var trigramTech = askTrigramTech.getResponseText();
  95.           var trigramTechUpper = trigramTech.toString().toUpperCase();
  96.        
  97.        
  98.        
  99.     // Check for AREA
  100.     if ( sheetName == "FT Rows Rasco","Ismeca") {
  101.       var askArea = ui.prompt('PDF Creator (IDM)','What rows did you check? (example: 5/6" Ismeca)', ui.ButtonSet.OK);
  102.      
  103.        if (askArea.getSelectedButton() == ui.Button.CLOSE)
  104.         return;
  105.    
  106.      
  107.        if (askArea.getSelectedButton() == ui.Button.OK)
  108.          var ftRows = askArea.getResponseText().toString();
  109.          var area ="FT " + sheetName+ ftRows ;
  110.          
  111.        
  112.     } else {
  113.        var area = sheetName
  114.     }
  115.        
  116.    
  117.     // Additional parameters for exporting the sheet as a pdf
  118.     var url_ext = 'export?exportFormat=pdf&format=pdf'   //export as pdf
  119.          '&gid=' + sheet.getSheetId()   //the sheet's Id
  120.          '&size=A4'      // paper size
  121.          '&portrait=false'    // orientation, false for landscape
  122.          '&fitw=true'        // fit to width, false for actual size
  123.          '&sheetnames=false&printtitle=false&pagenumbers=false'  //hide optional headers and footers
  124.          '&gridlines=false'  // hide gridlines
  125.          '&fzr=false';       // do not repeat row headers (frozen rows) on each page
  126.        
  127.        
  128.        var options = {
  129.       headers: {
  130.         'Authorization': 'Bearer ' +  ScriptApp.getOAuthToken()
  131.       }
  132.     }
  133.  
  134.    
  135.  
  136.     var data = UrlFetchApp.fetch(url + url_ext , options);    
  137.  
  138.     var report = data.getBlob().getAs("application/pdf").setName("5S report_WK"+week+"_"+area+"_"+ trigramShiftl+"_"+ trigramOperatorUpper+"_"+ trigramTechUpper+".pdf");
  139.  
  140.     folder.createFile(report);
  141.    
  142.   }
  143.  
  144.