Untitled

mail@pastecode.io avatar
unknown
plain_text
7 months ago
2.2 kB
22
Indexable
Never
function onOpen() {
  const ui = SpreadsheetApp.getUi();
  ui.createMenu('Zpracovat Adresy')
      .addItem('Zpracovat', 'zpracujAdresy')
      .addToUi();
}

function zpracujAdresy() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getActiveSheet();
  const range = sheet.getDataRange();
  const values = range.getValues();

  const vyjimky = [
    "Jablunkov 994",
    "Kaštanová 182",
    "Žabeň 155",
    "Žihla 931"
  ];

  const vymezeneAdresy = [
    "Bukovec 107",
    "Bukovecká 76",
    "Bystřice 8",
    "Bystřice nad Olší 410",
    "Dukelská 139",
    "Mosty u Jablunkova 800",
    "Nádražní  107",
    "Návsí 288",
    "Návsí 933",
    "Nýdek 251",
    "Vendryně 310",
    "Vendryně 928",
    "Vendryně 1346",
    "Nádražní 107"
  ];

  let pocetAdres = 0;
  let pocetBaliku = 0;
  let pocetDuplikat = 0;
  let stops = {};
  let adresaCounter = {};

  values.forEach((row, index) => {
    if (index === 0) return;
    const adresa = row[6];
    const potvrdit = row[17];

    if (potvrdit !== "ANO") return;

    if (!vyjimky.includes(adresa) && !vymezeneAdresy.includes(adresa)) {
      adresaCounter[adresa] = (adresaCounter[adresa] || 0) + 1;
    }

    if (vyjimky.includes(adresa)) return;

    if (vymezeneAdresy.includes(adresa)) {
      pocetBaliku += 1;
      stops[adresa] = true;
      return;
    }

    pocetAdres += 1;
  });

  for (let adresa in adresaCounter) {
    if (adresaCounter[adresa] > 1) {
      pocetDuplikat += adresaCounter[adresa] - 1;
    }
  }

  const pocetStops = Object.keys(stops).length;
  const odchylkaInput = Browser.inputBox("Zadejte procentuální odchylku:");
  const odchylka = odchylkaInput.replace(',', '.');
  const pocetAdresOdchylka = pocetAdres + (pocetAdres * (parseFloat(odchylka) / 100));

  const vysledek = `
  Počet adres dle manifestu: ${pocetAdres}\\nPočet balíků na výdejních místa: ${pocetBaliku}\\nStopů na VM: ${pocetStops}\\nPočet duplicitních adres: ${pocetDuplikat}\\nPočet adres na základě průměrné odchylky: ${pocetAdresOdchylka.toFixed(2)}
  `;

  Browser.msgBox(vysledek);
}
Leave a Comment