When I get FormSubmit I need to show the user a dialog box in the spreadsheet

Viewed 34

My idea for this is using SpreadsheetApp.getUi() methode in my code function sprawdzIwyswietl(). The script itself works, but of course not with trigers onFormSubmit due to limitations of the getUI() function. I will be grateful for any help with my problem. I have no idea how to get around.

function sprawdzIwyswietl(){
  var ui = SpreadsheetApp.getUi();
  var caleDaneArkusza = sheet.getDataRange().getValues(); 
  var naglowki = caleDaneArkusza.shift(); 
  var arkZeskanowane = ss.getSheetByName("Zeskanowane kody");
  var lastRow = arkZeskanowane.getLastRow();
  var ostCol = sheet.getLastColumn();
  var zeskanowanyKod = arkZeskanowane.getRange(lastRow,2).getValue();
  var arkWydPas = ss.getSheetByName("Wydane pasy");
  var lrWP = arkWydPas.getLastRow();
  var wQR = dane_col_glowne("Wartości QR").indexOf(zeskanowanyKod);
        function wydajPass(){
           var wyd = ui.alert(caleDaneArkusza[wQR][col_nazwaProduktu]+" Załóż opaske","Zrobione?",ui.ButtonSet.YES_NO);
           if(wyd == ui.Button.YES){
              rng(wQR+2,col_wydPass+1).setValue(true);
              rng(wQR+2,1,1,ostCol).copyTo(arkWydPas.getRange(lrWP+1,1));
              sheet.deleteRow(wQR+2);
           }else{
              var powod = ui.prompt("Napisz notatke dlaczego nie wydano","",ui.ButtonSet.OK_CANCEL)
              if(powod.getSelectedButton() == ui.Button.OK) rng(wQR+2,col_naszeNotatki+1).setValue(powod.getResponseText());
           } 
        }
        
        if(wQR != -1){
          var czyToTy = ui.alert("Sprawdz czy dane uczestnika się zgadzają",caleDaneArkusza[wQR][col_passImie]+" "+caleDaneArkusza[wQR][col_passNazwisko] +"\x0A Email: "+caleDaneArkusza[wQR][col_passEmail]+"\x0A Notatki: "+caleDaneArkusza[wQR][col_naszeNotatki],ui.ButtonSet.YES_NO);
          if(czyToTy == ui.Button.YES){
            if(caleDaneArkusza[wQR][col_nieOplacone] == ""){
             wydajPass()
            }else{
              var czyPrzyjetaKasa = ui.alert("Pass nieopłacony, przyjmij w gotówce "+caleDaneArkusza[wQR][col_warPoz]+" PLN\x0A\x0A PRZYJĘTE?","",ui.ButtonSet.YES_NO);
              if(czyPrzyjetaKasa == ui.Button.NO){
                var  innaPlatn = ui.prompt("Napisz dlaczego albo czy inna metoda płatnośći \x0A .","",ui.ButtonSet.OK_CANCEL)
                if(innaPlatn.getSelectedButton() == ui.Button.OK)rng(wQR+2,col_naszeNotatki+1).setValue(innaPlatn.getResponseText());
                }
              }
              if(czyPrzyjetaKasa == ui.Button.YES) {
               wydajPass()
                }
                
          }
          else{
            ui.alert('Sprawdz w arkuszu \x0A"zamówienia"',"",ui.ButtonSet.OK)
          }
        }
        else{
          ui.alert("Prawdopodobnie pass już wydany SPRAWDZ \x0A albo nie ma takiego QR","",ui.ButtonSet.OK)
        }
    }

Global variables and function to the code above

  // =====funkcje i zmienne pomocnicze zadeklarowane globalnie=========
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("zamówienia");
  var rng = sheet.getRange;
  var caleDaneArkusza = sheet.getDataRange().getValues(); //odniesienie do zeszytu to pierwszy [nr wiersza - 2] drugi[ index_col -1 ]
  var naglowki = caleDaneArkusza.shift(); //wyciety wiersz nagłówków
 
  function spr(n){Logger.log(n)} //skrócenie funkcji logera
  function index_col(nazwa_col){ return  naglowki.indexOf(nazwa_col) }  //szukanie indeksu w tablicy po nazwie jesli range do arkusza to +1
  function dane_col_glowne(nazwaKolumnySzukanej){return nazwaKolumnySzukanej = caleDaneArkusza.map(e => e[index_col(nazwaKolumnySzukanej)])}
  var col_warPoz = index_col("Wartość pozycji");
  var col_passImie = index_col("Pass Imię");
  var col_passNazwisko = index_col("Pass Nazwisko");
  var col_naszeNotatki = index_col("Nasze Notatki");
  var col_nazwaProduktu = index_col("Nazwa produktu")
  var col_wartosciQR = index_col("Wartości QR");
  var col_nieOplacone = index_col("Nie opłacone");
  var col_wydPass = index_col("Wydany pass");
  var col_passEmail = index_col("Pass Email");


  function dodajMenu(){
   SpreadsheetApp.getUi().createMenu('Własne operacje')
   .addItem('sprawdz', 'sprawdzIwyswietl')
   .addToUi();
}
0 Answers
Related