Advertisement
ZiGoomul

archive

Jan 9th, 2023
1,088
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function sort() {
  2.   let ss = SpreadsheetApp.getActiveSpreadsheet();
  3.   let ws = ss.getSheets()[0];
  4.   let activeCell = ws.getActiveCell();
  5.  
  6.   if (activeCell.getColumn() === 6 && activeCell.getValue() === true) {
  7.     archive();
  8.     ws.getRange('A2:H').sort({ column: 3, ascending: false });
  9.     return
  10.   }
  11. }
  12. function sortNewOrder() {
  13.   let ss = SpreadsheetApp.getActiveSpreadsheet();
  14.   let ws = ss.getSheets()[0];
  15.   ws.getRange('A2:H').sort({ column: 3, ascending: false });
  16. }
  17. function archive() {
  18.   let ss = SpreadsheetApp.getActiveSpreadsheet();
  19.   let wsData = ss.getSheets()[0];
  20.   let wsArchive = ss.getSheets()[1];
  21.   let activeCell = wsData.getActiveCell();
  22.  
  23.   if (activeCell.getColumn() === 6 && ss.getSheetId() == 0) {
  24.     let lastRow = wsArchive.getLastRow();
  25.     let service = wsData.getRange(activeCell.getRow(), 5).getValue();
  26.  
  27.     wsArchive.insertRowsAfter(wsArchive.getMaxRows(), 1);
  28.     wsData.getRange(activeCell.getRow(), 1, 1, 5).copyTo(wsArchive.getRange(lastRow + 1, 1, 1, 5), { contentsOnly: true });
  29.     wsData.getRange(activeCell.getRow(), 7).copyTo(wsArchive.getRange(lastRow + 1, 7), { contentsOnly: true });
  30.  
  31.     if (service !== "") {
  32.       let wsSettings = ss.getSheets()[5];
  33.       let serviceData = wsSettings.getRange(3, 4, wsSettings.getLastRow() - 2, 2).getValues().flat();
  34.       let indexServ = serviceData.indexOf(service);
  35.       let interval = serviceData[indexServ - 1];
  36.  
  37.       if (interval === 2) {
  38.         let time = wsData.getRange(activeCell.getRow(), 4).getValue();
  39.         let timeData = wsSettings.getRange(2, 2, wsSettings.getLastRow() - 1).getValues().flat();
  40.         let indexTime = timeData.indexOf(time);
  41.         let newTime = timeData[indexTime + 1]
  42.         wsArchive.insertRowsAfter(wsArchive.getMaxRows(), 1);
  43.         wsArchive.getRange(wsArchive.getLastRow() + 1, 1, 1, 4).setValues([['Блокировка времени', '', wsData.getRange(activeCell.getRow(), 3).getValue(), newTime]])
  44.       }
  45.     }
  46.  
  47.     let chat_id = wsData.getRange(activeCell.getRow(), 8).getValue();
  48.     if (chat_id !== "") {
  49.       let date = wsData.getRange(activeCell.getRow(), 3, 1, 3).getDisplayValues();
  50.  
  51.       let contents = {
  52.         "message": {
  53.           "text": "✅ Вы успешно записались: \n📆 <b>|" + date[0][0] + " " + clock.emoji[+date[0][1].replace(':', '')] + date[0][1] + "|\n" + busyTime + " |Услуга: " + date[0][2] + "|</b>",
  54.         }
  55.       }
  56.       sendAdminMessage(contents, chat_id)
  57.     }
  58.     activeCell.uncheck();
  59.     wsData.getRange(activeCell.getRow(), 5).clearContent();
  60.     wsData.getRange(activeCell.getRow(), 1, 1, 6).clearFormat();
  61.     wsArchive.getRange('A2:H').sort({ column: 3, ascending: false });
  62.     formatting()
  63.   }
  64. }
  65. function archiveAuto(row) {
  66.   // row = 3;
  67.   let ss = SpreadsheetApp.openById(spreadSheetId);
  68.   let wsData = ss.getSheets()[0];
  69.   let wsArchive = ss.getSheets()[1];
  70.  
  71.   if (ss.getSheetId() == 0) {
  72.     let lastRow = wsArchive.getLastRow();
  73.     let service = wsData.getRange(row, 5).getValue();
  74.  
  75.     wsArchive.insertRowsAfter(wsArchive.getMaxRows(), 1);
  76.     wsData.getRange(row, 1, 1, 5).copyTo(wsArchive.getRange(lastRow + 1, 1, 1, 5), { contentsOnly: true });
  77.     wsData.getRange(row, 7).copyTo(wsArchive.getRange(lastRow + 1, 7), { contentsOnly: true });
  78.  
  79.     if (service !== "") {
  80.       let wsSettings = ss.getSheets()[5];
  81.       let serviceData = wsSettings.getRange(3, 4, wsSettings.getLastRow() - 2, 2).getValues().flat();
  82.       let indexServ = serviceData.indexOf(service);
  83.       let interval = serviceData[indexServ - 1];
  84.  
  85.     console.log(interval)
  86.  
  87.       if (interval === 2) {
  88.         let time = wsData.getRange(row, 4).getValue();
  89.         let timeData = wsSettings.getRange(2, 2, wsSettings.getLastRow() - 1).getValues().flat();
  90.         let indexTime = timeData.indexOf(time);
  91.         let newTime = timeData[indexTime + 1]
  92.         wsArchive.insertRowsAfter(wsArchive.getMaxRows(), 1);
  93.         wsArchive.getRange(wsArchive.getLastRow() + 1, 1, 1, 4).setValues([['Блокировка времени', '', wsData.getRange(row, 3).getValue(), newTime]])
  94.       }
  95.     }
  96.  
  97.     let chat_id = wsData.getRange(row, 8).getValue();
  98.     if (chat_id !== "") {
  99.       let date = wsData.getRange(row, 3, 1, 3).getDisplayValues();
  100.  
  101.       let contents = {
  102.         "message": {
  103.           "text": "✅ Вы успешно записались: \n📆 <b>|" + date[0][0] + " " + clock.emoji[+date[0][1].replace(':', '')] + date[0][1] + "|\n" + busyTime + " |Услуга: " + date[0][2] + "|</b>",
  104.         }
  105.       }
  106.       sendAdminMessage(contents, chat_id)
  107.     }
  108.     wsData.getRange(row, 6).uncheck();
  109.     wsData.getRange(row, 5).clearContent();
  110.     wsData.getRange(row, 1, 1, 6).clearFormat();
  111.     wsArchive.getRange('A2:H').sort({ column: 3, ascending: false });
  112.     formatting()
  113.   }
  114. }
  115.  
  116. function formatting() {
  117.   let ss = SpreadsheetApp.getActiveSpreadsheet();
  118.   let ws = ss.getSheets()[0];
  119.   let conditionalFormatRules = ws.getConditionalFormatRules();
  120.  
  121.   conditionalFormatRules.splice(0, 1, SpreadsheetApp.newConditionalFormatRule()
  122.     .setRanges([ws.getRange('A:H')])
  123.     .whenFormulaSatisfied('=FIND("Занять";$A1)')
  124.     .setBackground('#00FFFF')
  125.     .build());
  126.   ws.setConditionalFormatRules(conditionalFormatRules);
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement