๐ŸชŸ

Prima Lestari

Aplikasi Stok Kaca Otomotif

Prima Lestari © 2024  ยท  Sistem Manajemen Stok Kaca
Prima Lestari
Lokal

Total Produk
0
jenis barang
Stok Menipis
0
perlu restock
Piutang
Rp 0
belum diterima
Hutang
Rp 0
belum dibayar
Transaksi Terakhir
Stok Menipis

Data Barang

Semua
Mobil
Bus
Truk

Stok Gudang

Gudang A
Gudang B
Gudang C

Transaksi

Penjualan
Pembelian
Semua
Lunas
Belum Lunas

Hutang & Piutang

Total Piutang
Rp 0
dari pelanggan
Total Hutang
Rp 0
ke supplier
Piutang (Pelanggan)
Hutang (Supplier)

Rekap Bulanan

Per Pelanggan
Per Barang
Detail Transaksi

๐Ÿ”” Reminder

Reminder ditampilkan otomatis setiap buka aplikasi. Data disimpan di perangkat ini.
โœ…
Semua aman!
Tidak ada stok menipis atau pembayaran jatuh tempo.

โ˜๏ธ Sinkronisasi & Backup

โš ๏ธ Mengapa sync Google Sheets tidak bekerja di HP?
Browser HP (Chrome/Safari mobile) memblokir koneksi dari file lokal (.html) ke server luar. Ini kebijakan keamanan browser yang tidak bisa diubah.
๐Ÿ“ค Solusi 1 โ€” Export / Import Data (Langsung Pakai)
Kirim data antar perangkat via WhatsApp/Telegram/Email. Gratis, tidak perlu setup apapun.
File .json akan terunduh โ†’ kirim via WA/Telegram ke HP/PC lain
Import Data dari Perangkat Lain:
๐ŸŒ Solusi 2 โ€” Hosting Gratis di Netlify (Terbaik)
Aplikasi diakses via link https:// dari HP dan PC manapun. Sync data via Apps Script langsung bekerja.
1

Buka netlify.com/drop

Di PC, buka app.netlify.com/drop di browser. Tidak perlu daftar.

2

Drag & Drop file aplikasi

Buat folder baru di PC โ†’ masukkan file stok-kaca-mobile.html ke dalam folder โ†’ rename file menjadi index.html โ†’ drag seluruh folder ke halaman Netlify.

3

Dapat link https://

Netlify memberi link seperti https://amazing-name-123.netlify.app. Buka link ini dari HP maupun PC โ€” aplikasi langsung jalan!

4

Sambungkan Apps Script

Karena dibuka via https://, koneksi ke Google Sheets Apps Script sekarang bekerja normal. Ikuti langkah di bawah untuk setup Apps Script.

Buka Netlify Drop
โš™๏ธ Setup Apps Script (Setelah Hosting di Netlify)
1

Buat Google Spreadsheet baru

Buka sheets.new โ†’ beri nama StokKacaPrimaLestari

2

Buka Apps Script & paste kode

Menu Extensions โ†’ Apps Script โ†’ hapus semua kode lama โ†’ paste kode berikut:

function doPost(e) {
  try {
    var raw = e.postData.contents;
    var data = JSON.parse(raw);
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheetByName('Data') || ss.insertSheet('Data');
    sheet.clearContents();
    sheet.getRange(1,1).setValue(JSON.stringify(data));
    sheet.getRange(1,2).setValue(new Date().toLocaleString('id-ID'));
    var output = ContentService.createTextOutput(JSON.stringify({ok:true}));
    output.setMimeType(ContentService.MimeType.JSON);
    return output;
  } catch(err) {
    var output = ContentService.createTextOutput(JSON.stringify({ok:false,error:err.message}));
    output.setMimeType(ContentService.MimeType.JSON);
    return output;
  }
}

function doGet(e) {
  try {
    var callback = e && e.parameter && e.parameter.callback ? e.parameter.callback : null;
    // Simpan data jika ada parameter data (fallback GET)
    if (e && e.parameter && e.parameter.data) {
      var data = JSON.parse(decodeURIComponent(e.parameter.data));
      var ss2 = SpreadsheetApp.getActiveSpreadsheet();
      var sh2 = ss2.getSheetByName('Data') || ss2.insertSheet('Data');
      sh2.clearContents();
      sh2.getRange(1,1).setValue(JSON.stringify(data));
      sh2.getRange(1,2).setValue(new Date().toLocaleString('id-ID'));
      var result2 = JSON.stringify({ok:true});
      var out2 = ContentService.createTextOutput(callback ? callback+'('+result2+')' : result2);
      out2.setMimeType(ContentService.MimeType.JAVASCRIPT);
      return out2;
    }
    // Ambil data
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheetByName('Data');
    var result;
    if (!sheet || !sheet.getRange(1,1).getValue()) {
      result = JSON.stringify({ok:true,data:null});
    } else {
      var val = sheet.getRange(1,1).getValue();
      result = JSON.stringify({ok:true,data:JSON.parse(val)});
    }
    // Jika ada callback = JSONP request dari HP
    var out = ContentService.createTextOutput(callback ? callback+'('+result+')' : result);
    out.setMimeType(callback ? ContentService.MimeType.JAVASCRIPT : ContentService.MimeType.JSON);
    return out;
  } catch(err) {
    var errResult = JSON.stringify({ok:false,error:err.message});
    var callback2 = e && e.parameter && e.parameter.callback ? e.parameter.callback : null;
    var out = ContentService.createTextOutput(callback2 ? callback2+'('+errResult+')' : errResult);
    out.setMimeType(ContentService.MimeType.JSON);
    return out;
  }
}
3

Deploy โ†’ New deployment

Type: Web app ยท Execute as: Me ยท Who has access: Anyone โ†’ Deploy โ†’ izinkan โ†’ salin URL

4

Tempel URL di bawah

โœ… Terhubung ke Google Sheets!

โš ๏ธ Reset Data
Tindakan ini tidak bisa dibatalkan.
Tambah Barang
Stok Awal per Gudang
Mutasi Stok
Faktur Penjualan
Tambah Item
Total
Purchase Order
Tambah Item
TotalRp 0