Namokonov

Untitled

May 25th, 2022 (edited)
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function onOpen() {
  2.   SpreadsheetApp.getUi()
  3.     .createMenu("WB (аддон от @google_sheets)")
  4.     .addItem('создать структуру', 'create_structure')
  5.     .addSeparator()
  6.     .addItem("загрузить остатки", "stock")
  7.     .addItem("загрузить заказы", "orders")
  8.     .addItem("загрузить продажи", "sales")
  9.     .addItem("загрузить отчёт по реализации", "real")
  10.     .addSeparator()
  11.     .addItem('спарсить остатки и размеры из фронта', 'get_stock_size_site')
  12.     .addItem('спарсить товары выбранного продавца', 'get_arts_supplier')
  13.     .addSeparator()
  14.     .addItem('загрузить код своих карточек', 'get_wb_jsons')
  15.     .addItem('запустить изменение своих карточек', 'edit_wb_jsons')
  16.     .addToUi();
  17. };
  18.  
  19. function get_wb_jsons() {
  20.   sender('get_wb_jsons');
  21. };
  22.  
  23. function edit_wb_jsons() {
  24.   sender('edit_wb_jsons');
  25. };
  26.  
  27. function get_stock_size_site() {
  28.   sender('get_stock_size_site');
  29. };
  30.  
  31. function get_arts_supplier() {
  32.   sender('get_arts_supplier');
  33. };
  34.  
  35. function stock() {
  36.   sender('stock');
  37. };
  38.  
  39. function orders() {
  40.   sender('orders');
  41. };
  42.  
  43. function sales() {
  44.   sender('sales');
  45. };
  46.  
  47. function real() {
  48.   sender('real');
  49. };
  50.  
  51. function getArgs() {
  52.   var ss = SpreadsheetApp.getActive();
  53.   var d = ss.getSheetByName('⚙️').getDataRange().getValues();
  54.   return { s_id: d[11][1], k1: d[1][1], k2: d[2][1], sales_from: d[4][0], sales_to: d[4][1], orders_from: d[6][0], orders_to: d[6][1], real_from: d[8][0], real_to: d[8][1], si: d[10][0], ssid: ss.getId(), email: Session.getActiveUser().getEmail() };
  55. };
  56.  
  57. function sender(fnct) {
  58.   var ss = SpreadsheetApp.getActive();
  59.   var w_a_u = 'https://script.google.com/macros/s/AKfycbyVU9t1GuZcjT91IWIoJiXXiK98uw3vdfsyAGdqfn9lSjWzuY5x68j1r0RUtK6e1GI9qg/exec';
  60.   var args = getArgs();
  61.  
  62.   if (!args.k1) {
  63.     ss.toast('API-ключ не введен, введите ключ на лист "настройки" и перезапустите скрипт');
  64.     return;
  65.   };
  66.  
  67.   args['fnct'] = fnct;
  68.  
  69.   var options = {
  70.     'method': 'post',
  71.     'contentType': 'application/json',
  72.     'payload': JSON.stringify(args)
  73.   };
  74.  
  75.   Logger.log(UrlFetchApp.fetch(w_a_u, options));
  76. }
  77.  
  78. function create_structure() {
  79.   const current = SpreadsheetApp.getActive();
  80.   const template = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1lPmRKkijJM99xoOjPX9tLZc59TsmuQv1uRYaLNfUgPg/edit#gid=2141280745');
  81.  
  82.   template.getSheets().forEach(sheet => {
  83.     const name = sheet.getSheetName();
  84.     if(!current.getSheetByName(name)) sheet.copyTo(current).setName(name);
  85.   })
  86.  
  87.   const firstSheet = current.getSheetByName('Лист1');
  88.   if (firstSheet) current.deleteSheet(firstSheet);
  89.  
  90. };
Add Comment
Please, Sign In to add comment