Advertisement
Guest User

CWP Sheet AutoUpdate Sheet Code

a guest
Oct 25th, 2015
280
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function createDailyTrigger() {
  2.   ScriptApp.newTrigger('dailyCycle').timeBased().atHour(0).everyDays(1).inTimezone("Etc/GMT").create()
  3. }
  4.  
  5. function dailyCycle() {
  6.  
  7.   var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Nexus");
  8.  
  9.   var investsheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("FE");
  10.  
  11.   var rows = sheet.getLastRow();
  12.  
  13.   var urls = sheet.getRange(1, 1, rows, 2).getValues();
  14.  
  15.   Logger.log(urls.toString());
  16.   for(var x=0; x < rows; x++){//clears sheet
  17.     var ss = SpreadsheetApp.openByUrl("" + urls[x][1]);
  18.    
  19.    
  20.     if(ss.getSheetByName("Country").getRange("G3").getValue() != "VALID"){
  21.       continue;
  22.     }
  23.     clearFE(ss);
  24.   }
  25.   for(var x=0; x < rows; x++){//does FE stuff
  26.     var ss = SpreadsheetApp.openByUrl("" + urls[x][1]);
  27.    
  28.    
  29.     if(ss.getSheetByName("Country").getRange("G3").getValue() != "VALID"){
  30.       continue;
  31.     }
  32.     iterateMonths(ss);
  33.   }
  34.  
  35.   for(var x=0; x < rows; x++){
  36.     var ss = SpreadsheetApp.openByUrl("" + urls[x][1]);
  37.    
  38.     if(ss.getSheetByName("Country").getRange("G3").getValue() != "VALID"){
  39.       continue;
  40.     }
  41.    
  42.     updateEconomy(ss);
  43.     updateSocial(ss);
  44.     updateMainSheet(ss);
  45.   }
  46.  
  47. }
  48.  
  49.  
  50. function updateEconomy(ss){
  51.  
  52.   var econ = ss.getSheetByName("Economy");
  53.   var country = ss.getSheetByName("Country");
  54.  
  55.   var newtreasury = econ.getRange("E38").getValue();
  56.  
  57.   if(isNaN(newtreasury) == false){
  58.    country.getRange("D9").setValue(newtreasury);
  59.   }
  60. }
  61.  
  62. function updateSocial(ss){
  63.  
  64.   var soc = ss.getSheetByName("Social");
  65.  
  66.   var newhappiness = soc.getRange("I6").getValue();
  67.  
  68.   if(isNaN(newhappiness) == false){
  69.    soc.getRange("I4").setValue(newhappiness);
  70.   }
  71. }
  72.  
  73. function updateMainSheet(ss, name){
  74.   var main = SpreadsheetApp.openById('1zUnt9Jw9_NyBk6mT-EnTXYeXQp7fCYqo4-gjw3505So').getSheetByName("RawData");
  75.  
  76.   var rows = main.getLastRow();
  77.  
  78.   Logger.log("r:"+rows);
  79.  
  80.   var vals = main.getRange(1, 2, rows).getValues();
  81.  
  82.   var crow=99999;
  83.  
  84.   var name = ss.getSheetByName("Country").getRange("B3").getValue();
  85.  
  86.   for(var x=0;x<rows;x++){
  87.     if(vals[x][0] == name){
  88.       crow = x;
  89.     }
  90.   }
  91.  
  92.   if(crow<=rows){
  93.     updateMilitary(ss,main,crow);
  94.     updateEducation(ss,main,crow);
  95.     updateProduction(ss,main,crow);
  96.   }
  97.  
  98. }
  99.  
  100. function updateProduction(ss,main,loc){
  101.  
  102.   var prod = ss.getSheetByName("Production");
  103.  
  104.   var newgdp = prod.getRange("K27").getValue();
  105.  
  106.   if(isNaN(newgdp) == false){
  107.     main.getRange("J" + (loc+1)).setValue(newgdp);
  108.   }
  109. }
  110.  
  111. function updateEducation(ss, main, loc){
  112.  
  113.   var edu = ss.getSheetByName("Education");
  114.  
  115.   var newliteracy = edu.getRange("C19").getValue();
  116.  
  117.   if(isNaN(newliteracy) == false){
  118.     main.getRange("D" + (loc+1)).setValue(newliteracy);
  119.   }
  120. }
  121.  
  122. function updateMilitary(ss, main, loc){
  123.  
  124.  var mil = ss.getSheetByName("Military");
  125.   var quantity = mil.getRange("N15:N27").getValues();
  126.   var newmp = mil.getRange("F9").getValue();
  127.   var newtrad = mil.getRange("K8").getValue();
  128.  
  129.   var n = 13;
  130.  
  131.   for(var x=0;x<n;x++){
  132.     if(isNaN(quantity[x][0]) == false){
  133.       main.getRange((loc+1), 12 + x).setValue(quantity[x][0]);
  134.     }
  135.   }
  136.  
  137.   if(isNaN(newmp) == false){
  138.     mil.getRange("D6").setValue(newmp);
  139.   }
  140.   if(isNaN(newtrad) == false){
  141.     mil.getRange("H7").setValue(newtrad);
  142.   }
  143.   mil.getRange("G15:G27").setValue(0);
  144.   mil.getRange("H15:H27").setValue(0);
  145.   mil.getRange("J15:J27").setValue(0);
  146.  
  147. }
  148.    
  149.    
  150. function addToQ(vals, ss){
  151.  
  152.   var central = SpreadsheetApp.openById("14AN9dVwIOD-dYuNkaTR8Uz7k7xFRreciBSOZJQeSQX4").getSheetByName("FE");
  153.  
  154.   if(ss.getSheetByName("Foreign_Enterprise").getRange("G5").getValue() == 0){
  155.    return;
  156.   }
  157.  
  158.   var valrange = ss.getSheetByName("Foreign_Enterprise").getRange("A7:A50");
  159.   var valid = valrange.getValues();
  160.   var rows = vals.length;
  161.   var name = ss.getSheetByName("Country").getRange("B3").getValue();
  162.  
  163.   var begin = central.getLastRow()+1;
  164.  
  165.   var x = 1;
  166.  
  167.   var range = central.getRange(begin, 1, rows, 7);
  168.  
  169.   for(var i=0;i<rows;i++){
  170.    
  171.     if(valid[i][0] == "VALID"){
  172.       Logger.log("valid");
  173.       if(vals[i][0] != "" && vals[i][1] != "" && vals[i][5] != ""){  
  174.         range.getCell(x,1).setValue(name);
  175.         range.getCell(x,7).setValue(vals[i][0]);
  176.         range.getCell(x,2).setValue(vals[i][1]);
  177.         range.getCell(x,6).setValue(vals[i][5]);
  178.        
  179.         var addrow = central.getRange(begin + x, 1,1,6);
  180.        
  181.         var url = getCountryUrl(range.getCell(x,7).getValue());
  182.        
  183.         if(url!="e"){
  184.           var addss = SpreadsheetApp.openByUrl(url).getSheetByName("Foreign_Enterprise");
  185.           var addvals = addss.getRange("H7:H50").getValues();
  186.          
  187.           var k = 50;
  188.          
  189.           for(var l=0;l< addvals.length;l++){
  190.            
  191.             if(addvals[l]==""){
  192.              k = l+6+1;
  193.               break;
  194.             }
  195.           }
  196.           var row = central.getRange(begin-1+x,1,1,6).getValues();
  197.           var addrange = addss.getRange("H"+k+":"+"M"+k).setValues(row);
  198.          
  199.         }
  200.         x+=1;
  201.       }
  202.     }
  203.    
  204.   }
  205. }
  206.  
  207. function iterateMonths(ss) {
  208.  
  209.   var central = SpreadsheetApp.openById("14AN9dVwIOD-dYuNkaTR8Uz7k7xFRreciBSOZJQeSQX4").getSheetByName("FE");
  210.   var range = ss.getSheetByName("Foreign_Enterprise").getRange("B7:G50");
  211.   var name = ss.getSheetByName("Country").getRange("B3").getValue();
  212.  
  213.   var trans = range.getValues();
  214.  
  215.   var l = trans.length;
  216.   for(var i = 0; i < l; i++){
  217.     if(i < 0){continue;}
  218.    
  219.    
  220.     if(trans[i][0] != "" && trans[i][5] != ""){  
  221.       if(trans[i][3] > 0){
  222.         trans[i][3] = trans[i][3] - 1;
  223.       } else{
  224.         var len = trans[0].length;
  225.        
  226.         for(var y = i; y < l-1; y ++){
  227.            for(var x=0;x<len;x++){
  228.              trans[y][x] = trans[y+1][x];
  229.            }
  230.          }
  231.         i-=1;
  232.       }
  233.     }
  234.   }
  235.   range.setValues(trans);
  236.   addToQ(trans,ss);
  237. }
  238.  
  239. function getCountryUrl(name){
  240.  
  241.   var ss = SpreadsheetApp.openById("14AN9dVwIOD-dYuNkaTR8Uz7k7xFRreciBSOZJQeSQX4").getSheetByName("Nexus");
  242.   var rows = ss.getLastRow();
  243.   var vals = ss.getRange(1, 1, rows, 2).getValues();
  244.  
  245.   var res = -1;
  246.  
  247.   for(var x=0;x<rows;x++){
  248.     if(vals[x][0] == name){
  249.       res = x;
  250.     }
  251.   }
  252.  
  253.   if(res == -1){
  254.     return "e";
  255.   }else{
  256.     return vals[res][1];
  257.   }
  258.  
  259. }
  260.  
  261. function clearFE(ss){
  262.  
  263.   var sheet = ss.getSheetByName("Foreign_Enterprise")
  264.   var range = sheet.getRange("H7:M50");
  265.   range.setValue("");
  266.  
  267. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement