diff --git a/FOLDER/Managemen Pelanggan/query.sql b/FOLDER/Managemen Pelanggan/query.sql index 0648018..3298b8f 100644 --- a/FOLDER/Managemen Pelanggan/query.sql +++ b/FOLDER/Managemen Pelanggan/query.sql @@ -1,65 +1,258 @@ -- Tabel Pelanggan CREATE TABLE customers ( - id INT PRIMARY KEY AUTO_INCREMENT, - customer_code VARCHAR(20) UNIQUE, - company_name VARCHAR(100), - customer_type ENUM('internal', 'external'), - address TEXT, - city VARCHAR(50), - postal_code VARCHAR(10), - phone VARCHAR(20), - email VARCHAR(100), - pic_name VARCHAR(100), - pic_phone VARCHAR(20), - pic_email VARCHAR(100), - registration_date DATETIME DEFAULT CURRENT_TIMESTAMP, - status ENUM('active', 'inactive') DEFAULT 'active', - created_at DATETIME DEFAULT CURRENT_TIMESTAMP, - updated_at DATETIME ON UPDATE CURRENT_TIMESTAMP + 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 ( - id INT PRIMARY KEY AUTO_INCREMENT, - request_code VARCHAR(20) UNIQUE, - customer_id INT, - request_date DATETIME, - status ENUM('new', 'process', 'completed', 'cancelled'), - total_amount DECIMAL(10,2), - notes TEXT, - created_at DATETIME DEFAULT CURRENT_TIMESTAMP, - FOREIGN KEY (customer_id) REFERENCES customers(id) + 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 ( - id INT PRIMARY KEY AUTO_INCREMENT, - request_id INT, - payment_code VARCHAR(20) UNIQUE, - payment_date DATETIME, - amount DECIMAL(10,2), - payment_method ENUM('cash', 'transfer', 'credit_card'), - payment_status ENUM('pending', 'completed', 'failed'), - proof_of_payment VARCHAR(255), - notes TEXT, - created_at DATETIME DEFAULT CURRENT_TIMESTAMP, - FOREIGN KEY (request_id) REFERENCES analysis_requests(id) + 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 (customer_code, company_name, customer_type, address, city, postal_code, phone, email, pic_name, pic_phone, pic_email) VALUES +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 (request_code, customer_id, request_date, status, total_amount, notes) VALUES +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 (request_id, payment_code, payment_date, amount, payment_method, payment_status, notes) VALUES +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'); \ No newline at end of file +(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'); \ No newline at end of file diff --git a/FOLDER/Permintaan Layanan/page/permintaan_layanan.html b/FOLDER/Permintaan Layanan/page/permintaan_layanan.html index 851e825..9f8cc08 100644 --- a/FOLDER/Permintaan Layanan/page/permintaan_layanan.html +++ b/FOLDER/Permintaan Layanan/page/permintaan_layanan.html @@ -206,6 +206,100 @@ border: 1px solid #2196F3; color: #0d47a1; } + + .parameter-category { + margin-bottom: 20px; + padding: 15px; + background: #f8f9fa; + border-radius: 4px; + } + + .parameter-item { + display: grid; + grid-template-columns: auto 1fr auto auto; + gap: 15px; + align-items: center; + padding: 12px; + border-bottom: 1px solid #eee; + transition: background-color 0.2s; + } + + .parameter-item:hover { + background-color: #f8f9fa; + } + + .parameter-info { + display: flex; + flex-direction: column; + } + + .parameter-name { + font-weight: bold; + } + + .parameter-method { + font-size: 12px; + color: #666; + } + + .parameter-price { + font-weight: bold; + color: #2196F3; + } + + .selected-material { + margin-bottom: 15px; + padding: 10px; + background: #e3f2fd; + border-radius: 4px; + font-weight: bold; + } + + .category-selection { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); + gap: 15px; + margin-bottom: 20px; + } + + .category-card { + border: 1px solid #ddd; + border-radius: 4px; + padding: 15px; + cursor: pointer; + transition: all 0.3s ease; + } + + .category-card:hover { + border-color: #2196F3; + background: #f8f9fa; + } + + .category-card.selected { + border-color: #2196F3; + background: #e3f2fd; + } + + .selected-bidang, + .selected-category { + margin-bottom: 15px; + padding: 10px; + background: #e3f2fd; + border-radius: 4px; + font-weight: bold; + } + + .parameter-group { + margin-bottom: 20px; + padding: 15px; + background: #f8f9fa; + border-radius: 4px; + } + + .parameter-group h4 { + margin-bottom: 10px; + color: #2196F3; + }
@@ -217,11 +311,11 @@Template standar untuk analisis air limbah industri
- 15 Parameter +Pengujian parameter fisika
+ Udara Lingkungan KerjaTemplate untuk analisis kualitas air minum
- 12 Parameter +Pengujian parameter kimia
+ Air Minum & Limbah DomestikTemplate untuk analisis kualitas udara
- 8 Parameter +Pengujian parameter biologi
+ Air Minum, Limbah & IPALJumlah Parameter: 0
-Subtotal: Rp 0
-PPN (11%): Rp 0
-Total: Rp 0
+Setelah permintaan disubmit, tim kami akan memproses dan mengirimkan quotation dalam 1x24 jam kerja.
-Jumlah Parameter: 0
+Subtotal: Rp 0
+PPN (11%): Rp 0
+Total: Rp 0
+Setelah permintaan disubmit, tim kami akan memproses dan mengirimkan quotation dalam 1x24 jam kerja.