/* * Insert Google Form ke Sheet Create PDF dan Kirim ke WA Tanpa Autocrat, Auto Generate Nomor Pendaftaran (Studi Kasus Form PPDB) * ******************************************************************************************************************************* * Code by : Agus Adiyanto * Contact me : whacenter@gmail.com * Website : https://whacenter.my.id * Date : 18 Mei 2024 * License : Tidak untuk diperjualbelikan kembali (non-commercial). * Hak cipta dilindungi Undang-undang */ function generatePDF() { // ID dari Google Form, Google Docs Template, dan Google Sheet var form = FormApp.openById('xxx'); // ID dari Google Form var templateId = 'xxx'; // Template ID dari formulir var folderId = 'xxx'; // folder ID dari folder yang menyimpan file pdf var sheetId = 'xx'; // ID dari Google Sheet yang menyimpan tanggapan // Ambil tanggapan terbaru dari formulir var responses = form.getResponses(); var latestResponse = responses[responses.length - 1]; var items = latestResponse.getItemResponses(); // Buat objek data dari tanggapan formulir var data = {}; items.forEach(function(item) { data[item.getItem().getTitle()] = item.getResponse(); }); // Ambil nomor baris terakhir dari Google Sheet var sheet = SpreadsheetApp.openById(sheetId).getSheets()[0]; var lastRow = sheet.getLastRow(); // Buat nomor pendaftaran dengan zero padding var nomorPendaftaran = 'PPDB-' + ('000' + lastRow).slice(-4); // Masukkan nomor pendaftaran ke dalam data data['Nomor Pendaftaran'] = nomorPendaftaran; // Buka template dokumen var templateDoc = DriveApp.getFileById(templateId).makeCopy(); var doc = DocumentApp.openById(templateDoc.getId()); var body = doc.getBody(); // Ganti placeholder dengan data yang sesuai body.replaceText('{nama}', data['Nama Lengkap']); body.replaceText('{jenis_kelamin}', data['Jenis Kelamin']); body.replaceText('{tempat_lahir}', data['Tempat Lahir']); body.replaceText('{tanggal_lahir}', data['Tanggal Lahir']); body.replaceText('{nisn}', data['NISN']); body.replaceText('{nik}', data['NIK']); body.replaceText('{agama}', data['Agama']); body.replaceText('{alamat}', data['Alamat']); body.replaceText('{nama_ayah}', data['Nama Ayah']); body.replaceText('{nama_ibu}', data['Nama Ibu']); body.replaceText('{alamat_ayah}', data['Alamat Ayah']); body.replaceText('{alamat_ibu}', data['Alamat Ibu']); body.replaceText('{no_telp_ayah}', data['No Telp. / HP Ayah']); body.replaceText('{no_telp_ibu}', data['No Telp. / HP Ibu']); body.replaceText('{pekerjaan_ayah}', data['Pekerjaan Ayah']); body.replaceText('{pekerjaan_ibu}', data['Pekerjaan Ibu']); body.replaceText('{pendidikan_terakhir_ayah}', data['Pendidikan Terakhir Ayah']); body.replaceText('{pendidikan_terakhir_ibu}', data['Pendidikan Terakhir Ibu']); body.replaceText('{nomor_pendaftaran}', data['Nomor Pendaftaran']); body.replaceText('{nomor_hp}', data['Nomor HP']); // Simpan dan tutup dokumen doc.saveAndClose(); // Konversi dokumen ke PDF var pdf = DriveApp.getFileById(templateDoc.getId()).getAs('application/pdf'); // Simpan PDF ke folder yang ditentukan dengan nama file sesuai nomor pendaftaran var folder = DriveApp.getFolderById(folderId); var pdfFile = folder.createFile(pdf).setName(nomorPendaftaran + ".pdf"); // Dapatkan ID file PDF yang baru disimpan var pdfFileId = pdfFile.getId(); // Dapatkan URL file PDF yang baru disimpan var pdfFileUrl = pdfFile.getUrl(); var targetCell = sheet.getRange(lastRow, 22); // Menggunakan kolom untuk menyimpan ID File var targetCellURL = sheet.getRange(lastRow, 23); // Menggunakan kolom untuk menyimpan URL FILE targetCell.setValue(nomorPendaftaran); targetCellURL.setValue(pdfFileUrl); // Hapus salinan template dokumen DriveApp.getFileById(templateDoc.getId()).setTrashed(true); var phoneNumber = data['Nomor HP']; var message = 'terima kasih telah mengisi form'; var file = `https://drive.google.com/uc?id=${pdfFileId}&export=download`; sendWaFile(phoneNumber, message, file); sendWaText(phoneNumber, message); } function sendWaFile(number, message, file) { var idDevice = "xxx"; // Ganti dengan ID perangkat Anda var formdata = { "device_id" : "" + idDevice, "number" : "" + number, "message" : "" + message, "file" : "" + file, }; var requestOptions = { method: 'POST', contentType: 'application/json', payload: JSON.stringify(formdata), redirect: 'follow' }; var response = UrlFetchApp.fetch("https://app.whacenter.com/api/send", requestOptions); Logger.log(response); } function sendWaText(number, message) { var idDevice = "xxx"; // Ganti dengan ID perangkat Anda var formdata = { "device_id" : "" + idDevice, "number" : "" + number, "message" : "" + message, }; var requestOptions = { method: 'POST', contentType: 'application/json', payload: JSON.stringify(formdata), redirect: 'follow' }; var response = UrlFetchApp.fetch("https://app.whacenter.com/api/send", requestOptions); Logger.log(response); }