dh

// =================================================================== // DICLE HALI SAHA - 0 KUSURSUZ PANEL DESTEKLİ MOTOR V8.9 (OFFICIAL JSON) // =================================================================== // ? MÜŞTERİYE GİDECEK SMS METNİ function smsMetniOlustur(isim, tarih, saat) { return "Sayin " + isim + ", " + tarih + " gunu saat " + saat + " icin rezervasyonunuz onaylanmistir. Dicle Hali Saha."; } // ? POSTA GÜVERCİNİ SMS OPERATÖR BİLGİLERİNİZ const SMS_KULLANICI_ADI = "Arispor75"; const SMS_SIFRE = "00001642_Dy"; const SMS_BASLIK = "ARISPOR"; // ? E-TABLONUN YUKARISINDAKİ MENÜ function onOpen() { var ui = SpreadsheetApp.getUi(); ui.createMenu('? SMS Sistemi') .addItem('? Sistemi Yetkilendir (İzin Ver)', 'googleIzinleriniZorlaTetikle') .addToUi(); } function googleIzinleriniZorlaTetikle() { var response = UrlFetchApp.fetch("https://www.postaguvercini.com", {"muteHttpExceptions": true}); SpreadsheetApp.getUi().alert("Tebrikler Başkan! SMS Gönderim Yetkisi Başarıyla Aktif Edildi."); } function doGet(e) { var op = e.parameter.islem; var callback = e.parameter.callback; var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form_Responses"); if (!sheet) { sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0]; } var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0]; var tarihColIdx = -1, saatColIdx = -1, smsDurumColIdx = -1; for (var i = 0; i < headers.length; i++) { var hName = headers[i].toString().trim(); if (hName === "Maç Tarihi Seçiniz") { tarihColIdx = i + 1; } if (hName === "Saat Seçiniz") { saatColIdx = i + 1; } if (hName === "SMS Durumu") { smsDurumColIdx = i + 1; } } if (tarihColIdx === -1) tarihColIdx = 4; if (saatColIdx === -1) saatColIdx = 5; if (smsDurumColIdx === -1) { smsDurumColIdx = headers.length + 1; sheet.getRange(1, smsDurumColIdx).setValue("SMS Durumu"); } // ❌ PROTOKOL 1: REZERVASYON SİLME if (op === "sil") { var satirNo = parseInt(e.parameter.satir, 10); try { if (satirNo && satirNo >= 2 && satirNo <= sheet.getLastRow()) { sheet.deleteRow(satirNo); var sonuc = JSON.stringify({ durum: "silindi" }); return ContentService.createTextOutput(callback ? callback + "(" + sonuc + ")" : sonuc).setMimeType(callback ? ContentService.MimeType.JAVASCRIPT : ContentService.MimeType.JSON); } } catch(err) { return ContentService.createTextOutput(err.toString()); } } // ?️ PROTOKOL 2: PANEL İÇİN VERİ ÇEKME if (op === "tumKayitlar") { var rows = sheet.getLastRow(); var veriler = []; if (rows >= 2) { var tumYigin = sheet.getRange(2, 1, rows - 1, sheet.getLastColumn()).getDisplayValues(); for (var i = 0; i < tumYigin.length; i++) { if (tumYigin[i][1]) { veriler.push({ satirNo: i + 2, zamanDamgasi: tumYigin[i][0], isim: tumYigin[i][1], tel: tumYigin[i][2], tarih: tumYigin[i][tarihColIdx - 1], saat: tumYigin[i][saatColIdx - 1] }); } } } veriler.reverse(); var sonuc = JSON.stringify({ kayitlar: veriler }); return ContentService.createTextOutput(callback ? callback + "(" + sonuc + ")" : sonuc).setMimeType(callback ? ContentService.MimeType.JAVASCRIPT : ContentService.MimeType.JSON); } // ? PROTOKOL 3: REZERVASYON KAYDETME VE SMS MOTORU if (op === "kaydet") { var isim = e.parameter.isim; var tel = e.parameter.tel; var tarih = e.parameter.tarih; var saat = e.parameter.saat; var hedonTarih = tarihiStandartYap(tarih); var hedefSaatTemiz = stringTemizle(saat); var rows = sheet.getLastRow(); if (rows >= 2) { var tarihVerileri = sheet.getRange(2, tarihColIdx, rows - 1, 1).getValues(); var saatVerileri = sheet.getRange(2, saatColIdx, rows - 1, 1).getValues(); for (var i = 0; i < tarihVerileri.length; i++) { var excelGunu = tarihiStandartYap(tarihVerileri[i][0]); var excelSaati = stringTemizle(saatVerileri[i][0]); if (excelGunu === hedonTarih && excelSaati === hedefSaatTemiz && excelSaati !== "") { var sonuc = JSON.stringify({ durum: "mukerrer" }); return ContentService.createTextOutput(callback ? callback + "(" + sonuc + ")" : sonuc).setMimeType(callback ? ContentService.MimeType.JAVASCRIPT : ContentService.MimeType.JSON); } } } var yeniSatir = []; yeniSatir[0] = new Date(); yeniSatir[1] = isim; yeniSatir[2] = tel; yeniSatir[tarihColIdx - 1] = hedonTarih; yeniSatir[saatColIdx - 1] = saat; sheet.appendRow(yeniSatir); var eklenenSatirNo = sheet.getLastRow(); var operatorCevabi = ""; try { var temizTel = tel.toString().replace(/[^0-9]/g, ""); if (temizTel.startsWith("0")) { temizTel = temizTel.substring(1); } if (!temizTel.startsWith("90") && temizTel.length === 10) { temizTel = "90" + temizTel; } var hamMetin = smsMetniOlustur(isim, hedonTarih, saat); hamMetin = hamMetin.replace(/ı/g, "i").replace(/ğ/g, "g").replace(/ü/g, "u").replace(/ş/g, "s").replace(/ö/g, "o").replace(/ç/g, "c") .replace(/İ/g, "I").replace(/Ğ/g, "G").replace(/Ü/g, "U").replace(/Ş/g, "S").replace(/Ö/g, "O").replace(/Ç/g, "C"); // ? POSTA GÜVERCİNİ RESMİ DOKÜMANTASYON ŞABLONU (DİREKT PARAMETRE ENJEKSİYONU) var jsonPaketi = { "Username": SMS_KULLANICI_ADI, "Password": SMS_SIFRE, "Message": hamMetin, "Receivers": [ temizTel ] }; var options = { "method": "post", "contentType": "application/json; charset=utf-8", "payload": JSON.stringify(jsonPaketi), "muteHttpExceptions": true }; var response = UrlFetchApp.fetch("https://www.postaguvercini.com/api_json/v1/Sms/Send_1_N", options); operatorCevabi = response.getContentText(); } catch(smsHata) { operatorCevabi = "Sistem Hatasi: " + smsHata.toString(); } sheet.getRange(eklenenSatirNo, smsDurumColIdx).setValue(operatorCevabi); var sonuc = JSON.stringify({ durum: "basarili" }); return ContentService.createTextOutput(callback ? callback + "(" + sonuc + ")" : sonuc).setMimeType(callback ? ContentService.MimeType.JAVASCRIPT : ContentService.MimeType.JSON); } // ? PROTOKOL 4: ANLIK SAAT SORGULAMA var sorgulananTarih = e.parameter.tarih; var sistemZamani = new Date(); var bugunStandart = Utilities.formatDate(sistemZamani, "GMT+3", "dd.MM.yyyy"); if (!sorgulananTarih || sorgulananTarih === "null" || sorgulananTarih === "") { sorgulananTarih = bugunStandart; } var arananTarih = tarihiStandartYap(sorgulananTarih); var alinmisSaatler = []; var rows = sheet.getLastRow(); if (rows >= 2 && sorgulananTarih) { var tarihVerileri = sheet.getRange(2, tarihColIdx, rows - 1, 1).getValues(); var hamSaatVerileri = sheet.getRange(2, saatColIdx, rows - 1, 1).getDisplayValues(); for (var i = 0; i < tarihVerileri.length; i++) { var excelGunu = tarihiStandartYap(tarihVerileri[i][0]); var orjSaat = hamSaatVerileri[i][0].toString().trim(); if (excelGunu === arananTarih && orjSaat !== "") { if (alinmisSaatler.indexOf(orjSaat) === -1) { alinmisSaatler.push(orjSaat); } } } } var sonuc = JSON.stringify({ doluSaatler: alinmisSaatler, aktifTarih: arananTarih }); return ContentService.createTextOutput(callback ? callback + "(" + sonuc + ")" : sonuc).setMimeType(callback ? ContentService.MimeType.JAVASCRIPT : ContentService.MimeType.JSON); } function tarihiStandartYap(tarihVerisi) { if (!tarihVerisi) return ""; if (tarihVerisi instanceof Date) { return Utilities.formatDate(tarihVerisi, "GMT+3", "dd.MM.yyyy"); } var s = tarihVerisi.toString().trim(); if (s.indexOf("-") !== -1) { var p = s.split("-"); if (p[0].length === 4) return p[2] + "." + p[1] + "." + p[0]; return p[0] + "." + p[1] + "." + p[2]; } return s; } function stringTemizle(str) { if (!str) return ""; return str.toString().replace(/\s+/g, "").toLowerCase(); } Dicle Halı Saha Rezervasyon Paneli

Rezervasyonunuz Başarıyla Alındı!

Seçtiğiniz tarih ve saat halı saha sisteminde adınıza başarıyla kaydedilmiştir. Maç saatinde sahada görüşmek üzere başkan!

Dicle Halı Saha Rezervasyon

? Seçtiğiniz günün saat durumları kontrol ediliyor...
Online
Rezervasyon
15.Yıl
Ara

Sosyal Medyada Sayfalarımız

Powered by Dicle Halı Saha

Bu web sitesi Bedava-Sitem.com ile ücretsiz oluşturuldu. Siz de kendi web sitenizi ister misiniz?
Ücretsiz kayıt ol