Advertisement
RUZBE

OC Report - archiveRow

Feb 17th, 2019
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function onOpen() {
  2. SpreadsheetApp.getUi().alert('Notice','Script runs hour to archieve reports if someone has hit INSP or left/transfered form the department //RUZBE',SpreadsheetApp.getUi().ButtonSet.OK);
  3. }
  4.  
  5. function createTimeDrivenTriggers() {
  6.   ScriptApp.newTrigger('runMaster').timeBased().everyHours(1).create();    
  7. }
  8.  
  9. //Archieves people when they hit INSP (7-56)
  10. function idList() {
  11.   var app = SpreadsheetApp.getActiveSpreadsheet();
  12.   var ConfigSheet = app.getSheetByName('Config');
  13.   var reviewSheet = app.getSheetByName('Review Sheet');
  14.   var IDs = [];
  15.   var rowNumbers = [];
  16.   var ConfigLR = ConfigSheet.getLastRow();
  17.   for (var i = 1; i <= ConfigLR; i++) {
  18.     var rank = ConfigSheet.getRange(i, 15).getValue();
  19.     if (rank == 'INSP') {
  20.       var ID = ConfigSheet.getRange(i, 16).getValue();
  21.       IDs.push(ID);
  22.     }
  23.   }
  24.   var end = IDs.length - 1;
  25.   for (var a = 0; a <= end; a++) {
  26.     var steamID = IDs[a];
  27.     var u = 11;
  28.     var reviewSheetLR = reviewSheet.getLastRow() + 1;
  29.     do {
  30.       var look = reviewSheet.getRange(u, 4).getValue();
  31.       if (look == steamID) {
  32.         rowNumbers.push(u);
  33.       }
  34.       u++;
  35.     }
  36.     while (u < reviewSheetLR);
  37.   }
  38.   return rowNumbers;
  39. }
  40.  
  41. function archiveRow() {
  42.   var app = SpreadsheetApp.getActiveSpreadsheet();
  43.   var reviewSheet = app.getSheetByName('Review Sheet');
  44.   var archiveheet = app.getSheetByName('Archive');
  45.   var rowNumbers = idList();
  46.   var end = rowNumbers.length - 1;
  47.   var archiveTR = 11;
  48.   for (var i = 0; i <= end; i++) {
  49.     archiveheet.insertRowBefore(archiveTR);
  50.     var rowID = rowNumbers[i];
  51.     var rank = reviewSheet.getRange(rowID, 5).getValue();
  52.     reviewSheet.getRange("C" + rowID + ":L" + rowID).moveTo(archiveheet.getRange(archiveTR, 3));
  53.     archiveheet.getRange(archiveTR, 5).setValue(rank);
  54.   }
  55.   var sortedRows = rowNumbers.sort();
  56.   for (var a = rowNumbers.length; a--;) {
  57.     reviewSheet.deleteRows(sortedRows[a]);
  58.   }
  59. }
  60.  
  61. //Archieves people when they leave/transfer from Kav department (59 - 150)
  62. function kavMembers() {
  63.   var app = SpreadsheetApp.getActiveSpreadsheet();
  64.   var ConfigSheet = app.getSheetByName('Config');
  65.   var names = [];
  66.   var LR = ConfigSheet.getLastRow() + 1;
  67.   var i = 1;
  68.   do {
  69.     var name = ConfigSheet.getRange(i, 5).getValue();
  70.     if (name !== '') {
  71.       if (names.indexOf(name) == -1) {
  72.         names.push(name);
  73.       }
  74.     }
  75.     i++;
  76.   }
  77.   while (i < LR);
  78.   return names;
  79. }
  80.  
  81. function ocKavNames() {
  82.   var app = SpreadsheetApp.getActiveSpreadsheet();
  83.   var reviewSheet = app.getSheetByName('Review Sheet');
  84.   var names = kavMembers();
  85.   var ocNames = [];
  86.   var LR = reviewSheet.getLastRow() + 1;
  87.   var i = 11;
  88.   do {
  89.     var ocName = reviewSheet.getRange(i, 3).getValue();
  90.     if (ocNames.indexOf(ocName) == -1) {
  91.       ocNames.push(ocName);
  92.     }
  93.     i++;
  94.   }
  95.   while (i < LR);
  96.   return ocNames;
  97. }
  98.  
  99. function deleteNames() {
  100.   var memberNames = kavMembers();
  101.   var ocNames = ocKavNames();
  102.   var deleteNames = [];
  103.   var end = ocNames.length - 1;
  104.   for (var i = 0; i <= end; i++) {
  105.     var ocname = ocNames[i];
  106.     if (memberNames.indexOf(ocname) == -1) {
  107.       deleteNames.push(ocname);
  108.     }
  109.   }
  110.   return deleteNames;
  111. }
  112.  
  113. function rowIDs() {
  114.   var app = SpreadsheetApp.getActiveSpreadsheet();
  115.   var reviewSheet = app.getSheetByName('Review Sheet');
  116.   var leftMembers = deleteNames();
  117.   var rowNumbers = [];
  118.   var end = leftMembers.length - 1;
  119.   for (var i = 0; i <= end; i++) {
  120.     var leftMember = leftMembers[i];
  121.     var LR = reviewSheet.getLastRow() + 1;
  122.     var u = 11;
  123.     do {
  124.       var testMatch = reviewSheet.getRange(u, 3).getValue();
  125.       if (leftMember == testMatch) {
  126.         rowNumbers.push(u);
  127.       }
  128.       u++;
  129.     }
  130.     while (u < LR);
  131.   }
  132.   return rowNumbers;
  133. }
  134.  
  135. function archiveRowTwo() {
  136.   var app = SpreadsheetApp.getActiveSpreadsheet();
  137.   var reviewSheet = app.getSheetByName('Review Sheet');
  138.   var archiveheet = app.getSheetByName('Archive');
  139.   var rowNumbers = rowIDs();
  140.   var end = rowNumbers.length - 1;
  141.   var archiveTR = 11;
  142.   for (var i = 0; i <= end; i++) {
  143.     archiveheet.insertRowBefore(archiveTR);
  144.     var rowID = rowNumbers[i];
  145.     var rank = reviewSheet.getRange(rowID, 5).getValue();
  146.     reviewSheet.getRange("C" + rowID + ":L" + rowID).moveTo(archiveheet.getRange(archiveTR, 3));
  147.     archiveheet.getRange(archiveTR, 5).setValue(rank);
  148.   }
  149.   var sortedRows = rowNumbers.sort();
  150.   for (var a = rowNumbers.length; a--;) {
  151.     reviewSheet.deleteRows(sortedRows[a]);
  152.   }
  153. }
  154.  
  155. function runMaster() {
  156.   archiveRow();
  157.   archiveRowTwo();  
  158. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement