Cara Pakai: Ganti semua teks yang dicetak [seperti ini] dengan data yang sesuai. Tanda tangan kedua belah pihak diperlukan sebelum aktivasi layanan.
Perjanjian ini dibuat dan ditandatangani pada tanggal [TANGGAL], oleh dan antara:
Penyedia setuju untuk menyediakan layanan software manajemen hotel LIVIA PMS v17 yang mencakup:
| Parameter | Paket Melati | Paket Bintang | Paket Grand |
|---|---|---|---|
| Uptime Bulanan | 95% | 99% | 99,9% |
| Respon Support | 24 jam | 4 jam | 2 jam |
| Jam Support | 08:00โ17:00 | 08:00โ21:00 | 24/7 |
| Backup Data | Manual | Harian | Real-time |
| Training Awal | Dokumen | Online 2 jam | On-site 4 jam |
Jika Penyedia gagal memenuhi SLA uptime yang disepakati, Pelanggan berhak mendapat kompensasi:
| Downtime Melebihi SLA | Kompensasi |
|---|---|
| 1โ4 jam/bulan | Perpanjangan layanan 3 hari gratis |
| 4โ8 jam/bulan | Diskon 25% bulan berikutnya |
| Lebih dari 8 jam/bulan | Diskon 50% bulan berikutnya |
Jika terjadi sengketa, para pihak mengutamakan penyelesaian secara musyawarah mufakat. Apabila tidak tercapai kesepakatan dalam 30 hari, sengketa diselesaikan melalui Pengadilan Negeri [KOTA ANDA] sesuai hukum yang berlaku di Indonesia.
PIHAK PERTAMA โ PENYEDIA
Nama: [NAMA ANDA]
Jabatan: Direktur/Pemilik LIVIA PMS
Tanggal: _______________
PIHAK KEDUA โ PELANGGAN
Nama: [NAMA GM/OWNER]
Jabatan: [JABATAN]
Tanggal: _______________
Dengan menggunakan, mengakses, atau mengoperasikan software LIVIA Property Management System (LIVIA PMS), Anda ("Pemegang Lisensi") menyatakan telah membaca, memahami, dan menyetujui seluruh ketentuan dalam perjanjian ini.
[NAMA ANDA/PERUSAHAAN] selaku pemilik dan pengembang LIVIA PMS ("Pemberi Lisensi") memberikan kepada Pemegang Lisensi hak yang terbatas, non-eksklusif, tidak dapat dipindahtangankan untuk:
Pemegang Lisensi DILARANG KERAS melakukan hal-hal berikut:
Pemberi Lisensi berhak sewaktu-waktu memperbarui, memodifikasi, atau menghentikan fitur tertentu dari software dengan pemberitahuan kepada Pemegang Lisensi. Pembaruan yang bersifat perbaikan keamanan (security patch) dapat dilakukan tanpa pemberitahuan sebelumnya.
Lisensi ini berakhir secara otomatis jika:
Setelah pengakhiran, Pemegang Lisensi harus segera menghentikan penggunaan software dan menghapus seluruh salinan yang ada.
Perjanjian ini tunduk pada dan ditafsirkan sesuai dengan hukum Negara Kesatuan Republik Indonesia. Sengketa diselesaikan melalui pengadilan yang berwenang di wilayah hukum tempat Pemberi Lisensi berdomisili.
Kebijakan Privasi ini menjelaskan bagaimana [NAMA ANDA/PERUSAHAAN] ("kami", "LIVIA PMS") mengumpulkan, menggunakan, dan melindungi informasi yang Anda berikan saat menggunakan layanan kami.
Kami tidak menjual data Anda kepada pihak ketiga manapun untuk tujuan pemasaran.
Data operasional PMS (reservasi, folio, keuangan) disimpan di localStorage browser perangkat hotel dan tidak secara otomatis dikirim ke server kami. Ini berarti:
Sesuai Undang-Undang No. 27 Tahun 2022 tentang Perlindungan Data Pribadi, Anda memiliki hak untuk:
Untuk mengajukan permintaan terkait hak-hak di atas, hubungi: privacy@liviapms.id
LIVIA PMS menggunakan session storage dan localStorage (bukan cookie pihak ketiga) hanya untuk menyimpan data operasional dan preferensi pengguna lokal. Kami tidak menggunakan cookie untuk pelacakan atau pemasaran.
Kami dapat memperbarui kebijakan ini sewaktu-waktu. Perubahan signifikan akan diberitahukan melalui email atau notifikasi dalam sistem minimal 14 hari sebelum berlaku.
Untuk pertanyaan terkait privasi: privacy@liviapms.id
Penanggung Jawab Perlindungan Data (DPO): [NAMA ANDA] โ [TELEPON]
[Nama Hotel]
[Alamat Hotel]
a/n [Nama GM/Owner]
Tanggal Invoice: 17 Juni 2025
Jatuh Tempo: 1 Juli 2025
Periode: Juli 2025
Status: BELUM DIBAYAR
| Deskripsi Layanan | Qty | Harga Satuan | Total |
|---|---|---|---|
| Berlangganan LIVIA PMS โ Paket Bintang (Professional) Periode: 1 Juli โ 31 Juli 2025 ยท Max 100 kamar ยท 10 user |
1 | Rp 299.000 | Rp 299.000 |
| Biaya Support Prioritas โ WhatsApp Dedicated Termasuk dalam paket Bintang |
1 | โ | Rp 0 |
INSTRUKSI PEMBAYARAN
Transfer ke: [NAMA BANK]
No. Rekening: [NOMOR REKENING]
Atas Nama: [NAMA PEMILIK REKENING]
Berita: INV/2025/06/001 โ [Nama Hotel]
-- Setiap hotel = 1 tenant
CREATE TABLE tenants (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
slug VARCHAR(60) UNIQUE NOT NULL, -- 'hotel-melati', 'grand-katingan'
name VARCHAR(120) NOT NULL,
city VARCHAR(80),
address TEXT,
phone VARCHAR(20),
email VARCHAR(120),
logo_url TEXT,
tax_rate NUMERIC(5,2) DEFAULT 11.00,
sc_rate NUMERIC(5,2) DEFAULT 10.00,
plan VARCHAR(20) DEFAULT 'bintang', -- melati/bintang/grand
plan_expire DATE,
is_active BOOLEAN DEFAULT TRUE,
created_at TIMESTAMPTZ DEFAULT NOW()
);CREATE TABLE users (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
tenant_id UUID REFERENCES tenants(id) ON DELETE CASCADE,
username VARCHAR(60) NOT NULL,
full_name VARCHAR(120),
role VARCHAR(40) NOT NULL, -- GM/FO/Cashier/HK/Purchasing/Accounting
password_hash TEXT NOT NULL, -- bcrypt hash, NEVER plain text
is_active BOOLEAN DEFAULT TRUE,
last_login TIMESTAMPTZ,
created_at TIMESTAMPTZ DEFAULT NOW(),
UNIQUE(tenant_id, username)
);CREATE TABLE reservations (
id VARCHAR(20) NOT NULL, -- RES-001
tenant_id UUID REFERENCES tenants(id),
guest_name VARCHAR(120) NOT NULL,
id_number VARCHAR(30), -- KTP/Paspor
phone VARCHAR(20),
email VARCHAR(120),
room_id VARCHAR(10),
room_type VARCHAR(40),
check_in DATE NOT NULL,
check_out DATE NOT NULL,
nights INTEGER NOT NULL,
adults INTEGER DEFAULT 1,
children INTEGER DEFAULT 0,
rate_code VARCHAR(20),
rate_plan VARCHAR(20),
rate_per_night NUMERIC(14,2),
source VARCHAR(40), -- Walk-in/Phone/OTA/Corporate
status VARCHAR(20) DEFAULT 'reserved', -- reserved/checked-in/checked-out/cancelled/no-show
deposit NUMERIC(14,2) DEFAULT 0,
notes TEXT,
cancel_reason TEXT,
created_by VARCHAR(60),
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW(),
PRIMARY KEY(tenant_id, id)
);CREATE TABLE folios (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
tenant_id UUID REFERENCES tenants(id),
reservation_id VARCHAR(20),
room_id VARCHAR(10),
guest_name VARCHAR(120),
check_in DATE,
check_out DATE,
status VARCHAR(20) DEFAULT 'open',
created_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE TABLE folio_transactions (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
folio_id UUID REFERENCES folios(id),
tenant_id UUID,
date DATE NOT NULL,
description VARCHAR(200),
dept VARCHAR(40), -- Room/F&B/Laundry/Misc
amount NUMERIC(14,2),
is_credit BOOLEAN DEFAULT FALSE,
payment_method VARCHAR(30),
is_voided BOOLEAN DEFAULT FALSE,
void_reason TEXT,
voided_by VARCHAR(60),
voided_at TIMESTAMPTZ,
posted_by VARCHAR(60),
created_at TIMESTAMPTZ DEFAULT NOW()
);-- SANGAT PENTING: Aktifkan RLS agar data antar hotel tidak bisa saling diakses
ALTER TABLE reservations ENABLE ROW LEVEL SECURITY;
ALTER TABLE folios ENABLE ROW LEVEL SECURITY;
ALTER TABLE folio_transactions ENABLE ROW LEVEL SECURITY;
ALTER TABLE users ENABLE ROW LEVEL SECURITY;
-- Policy: user hanya bisa lihat data tenant mereka sendiri
CREATE POLICY tenant_isolation_reservations
ON reservations
USING (tenant_id = (
SELECT tenant_id FROM users
WHERE id = auth.uid()
));
-- Ulangi untuk semua tabel yang mengandung tenant_id-- Index paling kritis untuk query cepat
CREATE INDEX idx_res_tenant_date ON reservations(tenant_id, check_in);
CREATE INDEX idx_res_status ON reservations(tenant_id, status);
CREATE INDEX idx_folio_tenant ON folios(tenant_id, room_id);
CREATE INDEX idx_trx_folio ON folio_transactions(folio_id);
CREATE INDEX idx_users_tenant ON users(tenant_id, username);