Advertisement
Savelyev_Vyacheslav

JS Apps

Jul 27th, 2023
1,111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const SHEET_ADD_ID = 0
  2. const SHEET_CUSTOMERS_DB_ID = 2010334126
  3. const SHEET_RESULT_ID = 1793715858
  4.  
  5. function getNameById(id) {
  6.   const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets().filter(ws => {
  7.     return ws.getSheetId() === id;
  8.   })[0];
  9.   const sheetName = sheet.getSheetName();
  10.   return sheetName;
  11. }
  12.  
  13. function getAdds() {
  14.   const addSheet = SpreadsheetApp.getActiveSpreadsheet().findSheetByName(getNameById(SHEET_ADD_ID))
  15.   let rangeADDs = addSheet.getRange('A2:B').getValues();
  16.   rangeADDs = rangeADDs.filter(item => item[0] != '');
  17.   rangeADDs.forEach(item => item[1] = item[1] == '' ? 0 : item[1]);
  18.   rangeADDs = rangeADDs.reduce((acc, curr) => (acc[curr[0]] = curr[1], acc), {});
  19.   return rangeADDs
  20. }
  21.  
  22. function getCustomersDB() {
  23.   const addSheet = SpreadsheetApp.getActiveSpreadsheet().findSheetByName(getNameById(SHEET_CUSTOMERS_DB_ID))
  24.   let rangeADDs = addSheet.getRange('A2:A').getValues();
  25.   rangeADDs = rangeADDs.filter(item => item[0] != '');
  26.   rangeADDs = [...new Set(rangeADDs)];
  27.   return rangeADDs
  28. }
  29.  
  30. function getResult() {
  31.   const addSheet = SpreadsheetApp.getActiveSpreadsheet().findSheetByName(getNameById(SHEET_RESULT_ID))
  32.   let rangeADDs = addSheet.getRange('A2:B').getValues();
  33.   rangeADDs = rangeADDs.filter(item => item[0] != '');
  34.   rangeADDs.forEach(item => item[1] = item[1] == '' ? 0 : item[1]);
  35.   rangeADDs = rangeADDs.reduce((acc, curr) => (acc[curr[0]] = (curr[1]), acc), {});
  36.   return rangeADDs
  37. }
  38.  
  39. function getGoods(customerName, ADDs, SHEET_RESULT_ID) {
  40.   const addValue = ADDs[customerName] ?? 0;
  41.   const newCountCoods = `${parseInt(SHEET_RESULT_ID[customerName])}` == `NaN` ? 0 : parseInt(SHEET_RESULT_ID[customerName])
  42.   const countGoods = addValue + newCountCoods;
  43.   console.log(addValue + ' ' + newCountCoods)
  44.   return [customerName, countGoods];
  45. }
  46.  
  47. function makeNewResult() {
  48.   const ADDs = getAdds();
  49.   const customers = getCustomersDB();
  50.   const SHEET_RESULT_ID = getResult();
  51.   const newSHEET_RESULT_ID = [];
  52.   customers.forEach(customerName => newSHEET_RESULT_ID.push(getGoods(customerName[0], ADDs, SHEET_RESULT_ID)));
  53.   return newSHEET_RESULT_ID;
  54. }
  55.  
  56. function saveSHEET_RESULT_ID() {
  57.   const newResalt = makeNewResult();
  58.   const addSheet = SpreadsheetApp.getActiveSpreadsheet().findSheetByName(getNameById(SHEET_RESULT_ID))
  59.   let rangeADDs = addSheet.getRange(`A2:B${newResalt.length+1}`).setValues(newResalt)
  60. }
  61.  
  62. function clearADDs() {
  63.   const addSheet = SpreadsheetApp.getActiveSpreadsheet().findSheetByName(getNameById(SHEET_ADD_ID))
  64.   let rangeADDs = addSheet.getRange('B2:B').setValue('')
  65. }
  66.  
  67. saveSHEET_RESULT_ID()
  68. clearADDs()
  69.  
  70.  
  71. // function onEdit(e) {
  72. //   var name = e.user
  73. //   var range = e.range;
  74. //   var spreadSheet = e.source;
  75. //   var sheetName = spreadSheet.getActiveSheet().getName();
  76. //   var row = range.getRow();
  77. //   var column = range.getColumn();
  78.  
  79. //     if(sheetName == 'add')
  80. //   {
  81. //     saveSHEET_RESULT_ID()
  82. //     clearADDs()
  83. //   }
  84.  
  85. //   if(sheetName == 'task 1-2' && row > 1 && column != 17 && column != 16)
  86. //   {
  87. //     spreadSheet.getActiveSheet().getRange(row,16).setValue(name)
  88. //   }
  89.  
  90. //   if(sheetName == 'task 1-2' && row > 1 && column != 17 && column != 16)
  91. //   {
  92. //     var new_date = new Date();
  93. //     spreadSheet.getActiveSheet().getRange(row,17).setValue(new_date).setNumberFormat("yyyy-MM-dd hh:mm:ss A/P");
  94. //   }
  95.  
  96. // }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement