258 lines
9.6 KiB
SQL
258 lines
9.6 KiB
SQL
-- Tabel Pelanggan
|
|
CREATE TABLE customers (
|
|
CustomerID INT PRIMARY KEY AUTO_INCREMENT,
|
|
CustomerCode VARCHAR(20) UNIQUE,
|
|
CustomerCompanyName VARCHAR(100),
|
|
CustomerType ENUM('internal', 'external'),
|
|
CustomerAddress TEXT,
|
|
CustomerCity VARCHAR(50),
|
|
CustomerPostalCode VARCHAR(10),
|
|
CustomerPhone VARCHAR(20),
|
|
CustomerEmail VARCHAR(100),
|
|
CustomerPICName VARCHAR(100),
|
|
CustomerPICPhone VARCHAR(20),
|
|
CustomerPICEmail VARCHAR(100),
|
|
CustomerRegistrationDate DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
CustomerStatus ENUM('active', 'inactive') DEFAULT 'active',
|
|
CustomerCreatedAt DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
CustomerCreatedUserID INT,
|
|
CustomerUpdatedAt DATETIME,
|
|
CustomerUpdatedUserID INT,
|
|
CustomerDeletedAt DATETIME,
|
|
CustomerDeletedUserID INT
|
|
);
|
|
|
|
-- Tabel Riwayat Permintaan Analisis
|
|
CREATE TABLE analysis_requests (
|
|
AnalysisRequestID INT PRIMARY KEY AUTO_INCREMENT,
|
|
AnalysisRequestCode VARCHAR(20) UNIQUE,
|
|
CustomerID INT,
|
|
AnalysisRequestDate DATETIME,
|
|
AnalysisRequestStatus ENUM('new', 'process', 'completed', 'cancelled'),
|
|
AnalysisRequestTotalAmount DECIMAL(10,2),
|
|
AnalysisRequestNotes TEXT,
|
|
AnalysisRequestCreatedAt DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
AnalysisRequestCreatedUserID INT,
|
|
AnalysisRequestUpdatedAt DATETIME,
|
|
AnalysisRequestUpdatedUserID INT,
|
|
AnalysisRequestDeletedAt DATETIME,
|
|
AnalysisRequestDeletedUserID INT
|
|
);
|
|
|
|
-- Tabel Riwayat Pembayaran
|
|
CREATE TABLE payments (
|
|
PaymentID INT PRIMARY KEY AUTO_INCREMENT,
|
|
AnalysisRequestID INT,
|
|
PaymentCode VARCHAR(20) UNIQUE,
|
|
PaymentDate DATETIME,
|
|
PaymentAmount DECIMAL(10,2),
|
|
PaymentMethod ENUM('cash', 'transfer', 'credit_card'),
|
|
PaymentStatus ENUM('pending', 'completed', 'failed'),
|
|
PaymentProofPath VARCHAR(255),
|
|
PaymentNotes TEXT,
|
|
PaymentCreatedAt DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
PaymentCreatedUserID INT,
|
|
PaymentUpdatedAt DATETIME,
|
|
PaymentUpdatedUserID INT,
|
|
PaymentDeletedAt DATETIME,
|
|
PaymentDeletedUserID INT
|
|
);
|
|
|
|
-- Tabel Kategori Pelanggan
|
|
CREATE TABLE customer_categories (
|
|
CustomerCategoryID INT PRIMARY KEY AUTO_INCREMENT,
|
|
CustomerCategoryCode VARCHAR(20) UNIQUE,
|
|
CustomerCategoryName VARCHAR(100),
|
|
CustomerCategoryDescription TEXT,
|
|
CustomerCategoryIsActive BOOLEAN DEFAULT TRUE,
|
|
CustomerCategoryCreatedAt DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
CustomerCategoryCreatedUserID INT,
|
|
CustomerCategoryUpdatedAt DATETIME,
|
|
CustomerCategoryUpdatedUserID INT,
|
|
CustomerCategoryDeletedAt DATETIME,
|
|
CustomerCategoryDeletedUserID INT
|
|
);
|
|
|
|
-- Tabel Kontak Tambahan Pelanggan
|
|
CREATE TABLE customer_contacts (
|
|
CustomerContactID INT PRIMARY KEY AUTO_INCREMENT,
|
|
CustomerID INT,
|
|
CustomerContactName VARCHAR(100),
|
|
CustomerContactPosition VARCHAR(100),
|
|
CustomerContactDepartment VARCHAR(100),
|
|
CustomerContactPhone VARCHAR(20),
|
|
CustomerContactEmail VARCHAR(100),
|
|
CustomerContactIsMainContact BOOLEAN DEFAULT FALSE,
|
|
CustomerContactIsActive BOOLEAN DEFAULT TRUE,
|
|
CustomerContactCreatedAt DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
CustomerContactCreatedUserID INT,
|
|
CustomerContactUpdatedAt DATETIME,
|
|
CustomerContactUpdatedUserID INT,
|
|
CustomerContactDeletedAt DATETIME,
|
|
CustomerContactDeletedUserID INT
|
|
);
|
|
|
|
-- Tabel Dokumen Pelanggan
|
|
CREATE TABLE customer_documents (
|
|
CustomerDocumentID INT PRIMARY KEY AUTO_INCREMENT,
|
|
CustomerID INT,
|
|
CustomerDocumentType VARCHAR(50),
|
|
CustomerDocumentNumber VARCHAR(100),
|
|
CustomerDocumentName VARCHAR(255),
|
|
CustomerDocumentPath VARCHAR(255),
|
|
CustomerDocumentIssuedDate DATE,
|
|
CustomerDocumentExpiredDate DATE,
|
|
CustomerDocumentIsActive BOOLEAN DEFAULT TRUE,
|
|
CustomerDocumentCreatedAt DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
CustomerDocumentCreatedUserID INT,
|
|
CustomerDocumentUpdatedAt DATETIME,
|
|
CustomerDocumentUpdatedUserID INT,
|
|
CustomerDocumentDeletedAt DATETIME,
|
|
CustomerDocumentDeletedUserID INT
|
|
);
|
|
|
|
-- Tabel Riwayat Aktivitas Pelanggan
|
|
CREATE TABLE customer_activities (
|
|
CustomerActivityID INT PRIMARY KEY AUTO_INCREMENT,
|
|
CustomerID INT,
|
|
CustomerActivityType VARCHAR(50),
|
|
CustomerActivityDescription TEXT,
|
|
CustomerActivityDate DATETIME,
|
|
CustomerActivityStatus VARCHAR(50),
|
|
CustomerActivityNotes TEXT,
|
|
CustomerActivityCreatedAt DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
CustomerActivityCreatedUserID INT,
|
|
CustomerActivityUpdatedAt DATETIME,
|
|
CustomerActivityUpdatedUserID INT,
|
|
CustomerActivityDeletedAt DATETIME,
|
|
CustomerActivityDeletedUserID INT
|
|
);
|
|
|
|
-- Tabel Riwayat Komunikasi Pelanggan
|
|
CREATE TABLE customer_communications (
|
|
CustomerCommunicationID INT PRIMARY KEY AUTO_INCREMENT,
|
|
CustomerID INT,
|
|
CustomerContactID INT,
|
|
CustomerCommunicationType VARCHAR(50),
|
|
CustomerCommunicationSubject VARCHAR(255),
|
|
CustomerCommunicationContent TEXT,
|
|
CustomerCommunicationDate DATETIME,
|
|
CustomerCommunicationStatus VARCHAR(50),
|
|
CustomerCommunicationFollowUpDate DATETIME,
|
|
CustomerCommunicationNotes TEXT,
|
|
CustomerCommunicationCreatedAt DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
CustomerCommunicationCreatedUserID INT,
|
|
CustomerCommunicationUpdatedAt DATETIME,
|
|
CustomerCommunicationUpdatedUserID INT,
|
|
CustomerCommunicationDeletedAt DATETIME,
|
|
CustomerCommunicationDeletedUserID INT
|
|
);
|
|
|
|
-- Contoh data pelanggan
|
|
INSERT INTO customers (
|
|
CustomerCode,
|
|
CustomerCompanyName,
|
|
CustomerType,
|
|
CustomerAddress,
|
|
CustomerCity,
|
|
CustomerPostalCode,
|
|
CustomerPhone,
|
|
CustomerEmail,
|
|
CustomerPICName,
|
|
CustomerPICPhone,
|
|
CustomerPICEmail
|
|
) VALUES
|
|
('CUST001', 'PT Lingkungan Hijau', 'external', 'Jl. Raya Utama No. 123', 'Jakarta', '12345', '021-5551234', 'info@lingkunganhijau.com', 'Budi Santoso', '081234567890', 'budi@lingkunganhijau.com'),
|
|
('CUST002', 'Dinas Lingkungan Hidup', 'internal', 'Jl. Pemda No. 45', 'Bandung', '40111', '022-7891234', 'dlh@bandung.go.id', 'Siti Aminah', '087812345678', 'siti@bandung.go.id'),
|
|
('CUST003', 'CV Alam Lestari', 'external', 'Jl. Industri Blok A2', 'Surabaya', '60111', '031-8765432', 'contact@alamlestari.com', 'Rudi Hartono', '085678901234', 'rudi@alamlestari.com');
|
|
|
|
-- Contoh data permintaan analisis
|
|
INSERT INTO analysis_requests (
|
|
AnalysisRequestCode,
|
|
CustomerID,
|
|
AnalysisRequestDate,
|
|
AnalysisRequestStatus,
|
|
AnalysisRequestTotalAmount,
|
|
AnalysisRequestNotes
|
|
) VALUES
|
|
('REQ001', 1, '2024-03-15 09:00:00', 'completed', 2500000, 'Analisis air limbah'),
|
|
('REQ002', 1, '2024-03-16 10:30:00', 'process', 1750000, 'Analisis kualitas udara'),
|
|
('REQ003', 2, '2024-03-17 13:15:00', 'new', 3000000, 'Analisis tanah');
|
|
|
|
-- Contoh data pembayaran
|
|
INSERT INTO payments (
|
|
AnalysisRequestID,
|
|
PaymentCode,
|
|
PaymentDate,
|
|
PaymentAmount,
|
|
PaymentMethod,
|
|
PaymentStatus,
|
|
PaymentNotes
|
|
) VALUES
|
|
(1, 'PAY001', '2024-03-15 14:30:00', 2500000, 'transfer', 'completed', 'Pembayaran lunas'),
|
|
(2, 'PAY002', '2024-03-16 11:00:00', 875000, 'transfer', 'completed', 'Pembayaran DP 50%'),
|
|
(3, 'PAY003', '2024-03-17 14:00:00', 1500000, 'transfer', 'pending', 'Menunggu konfirmasi transfer');
|
|
|
|
-- Contoh data kategori pelanggan
|
|
INSERT INTO customer_categories (
|
|
CustomerCategoryCode,
|
|
CustomerCategoryName,
|
|
CustomerCategoryDescription
|
|
) VALUES
|
|
('CAT001', 'Industri', 'Pelanggan dari sektor industri manufaktur'),
|
|
('CAT002', 'Pemerintahan', 'Instansi pemerintah dan BUMN'),
|
|
('CAT003', 'Komersial', 'Pelanggan komersial non-industri');
|
|
|
|
-- Contoh data kontak tambahan
|
|
INSERT INTO customer_contacts (
|
|
CustomerID,
|
|
CustomerContactName,
|
|
CustomerContactPosition,
|
|
CustomerContactDepartment,
|
|
CustomerContactPhone,
|
|
CustomerContactEmail,
|
|
CustomerContactIsMainContact
|
|
) VALUES
|
|
(1, 'Andi Wijaya', 'HSE Manager', 'HSE', '081234567891', 'andi@lingkunganhijau.com', TRUE),
|
|
(1, 'Diana Putri', 'Lab Coordinator', 'Quality Control', '081234567892', 'diana@lingkunganhijau.com', FALSE),
|
|
(2, 'Bambang Kusuma', 'Kepala Seksi', 'Pengawasan', '087812345679', 'bambang@bandung.go.id', TRUE);
|
|
|
|
-- Contoh data dokumen
|
|
INSERT INTO customer_documents (
|
|
CustomerID,
|
|
CustomerDocumentType,
|
|
CustomerDocumentNumber,
|
|
CustomerDocumentName,
|
|
CustomerDocumentPath,
|
|
CustomerDocumentIssuedDate,
|
|
CustomerDocumentExpiredDate
|
|
) VALUES
|
|
(1, 'SIUP', '123/SIUP/2024', 'SIUP PT Lingkungan Hijau', '/documents/siup/123.pdf', '2024-01-01', '2029-01-01'),
|
|
(1, 'NPWP', '01.234.567.8-123.000', 'NPWP PT Lingkungan Hijau', '/documents/npwp/123.pdf', '2024-01-01', NULL),
|
|
(2, 'SK', 'SK-123/DLH/2024', 'SK Penunjukan', '/documents/sk/123.pdf', '2024-01-01', '2024-12-31');
|
|
|
|
-- Contoh data aktivitas
|
|
INSERT INTO customer_activities (
|
|
CustomerID,
|
|
CustomerActivityType,
|
|
CustomerActivityDescription,
|
|
CustomerActivityDate,
|
|
CustomerActivityStatus
|
|
) VALUES
|
|
(1, 'Visit', 'Kunjungan teknis untuk sampling rutin', '2024-03-15 10:00:00', 'Completed'),
|
|
(1, 'Meeting', 'Pembahasan hasil analisis', '2024-03-16 13:00:00', 'Scheduled'),
|
|
(2, 'Training', 'Pelatihan pengambilan sampel', '2024-03-17 09:00:00', 'Scheduled');
|
|
|
|
-- Contoh data komunikasi
|
|
INSERT INTO customer_communications (
|
|
CustomerID,
|
|
CustomerContactID,
|
|
CustomerCommunicationType,
|
|
CustomerCommunicationSubject,
|
|
CustomerCommunicationContent,
|
|
CustomerCommunicationDate,
|
|
CustomerCommunicationStatus
|
|
) VALUES
|
|
(1, 1, 'Email', 'Konfirmasi Jadwal Sampling', 'Konfirmasi jadwal sampling minggu depan', '2024-03-14 09:00:00', 'Sent'),
|
|
(1, 2, 'Phone', 'Diskusi Hasil Analisis', 'Diskusi tentang hasil analisis yang melebihi baku mutu', '2024-03-15 14:00:00', 'Completed'),
|
|
(2, 3, 'Meeting', 'Rapat Koordinasi', 'Rapat koordinasi program pemantauan lingkungan', '2024-03-16 10:00:00', 'Scheduled'); |