diff --git a/detail_transaksi.csv b/detail_transaksi.csv index 931e05a..7fd427f 100644 --- a/detail_transaksi.csv +++ b/detail_transaksi.csv @@ -16,3 +16,5 @@ id,transaksi_id,menu_id,qty,harga_satuan,subtotal_item 15,9,9,1,30000.0,30000.0 16,10,2,1,25000.0,25000.0 17,10,7,1,21000.0,21000.0 +18,11,3,1,30000.0,30000.0 +19,11,4,1,25000.0,25000.0 diff --git a/favorite.csv b/favorite.csv index 4aff8a3..409e6e4 100644 --- a/favorite.csv +++ b/favorite.csv @@ -4,8 +4,8 @@ user_id,menu_id,order_count,last_ordered 1,4,1,2025-12-13 20:12:35 1,6,1,2025-12-13 20:12:35 4,2,2,2025-12-14 10:03:04 -4,4,2,2025-12-13 22:22:02 -4,3,2,2025-12-13 22:22:02 +4,4,3,2025-12-14 10:35:35 +4,3,3,2025-12-14 10:35:35 4,11,1,2025-12-14 01:44:46 4,7,2,2025-12-14 10:03:04 4,8,1,2025-12-14 09:50:02 diff --git a/main.py b/main.py index f3187fd..6cfa952 100644 --- a/main.py +++ b/main.py @@ -2477,9 +2477,12 @@ class App: detail_scroll = ttk.Scrollbar(text_frame, orient='vertical', command=self.waiter_detail_text.yview) self.waiter_detail_text.configure(yscrollcommand=detail_scroll.set) - self.waiter_detail_text.pack(side='left', fill='both', expand=True) + # PACK SCROLLBAR DULUAN detail_scroll.pack(side='right', fill='y') + # BARU TEXT AREA + self.waiter_detail_text.pack(side='left', fill='both', expand=True) + # TOMBOL AKSI action_frame = ttk.LabelFrame(parent, text="🎯 Ubah Status Pesanan", padding=12) action_frame.pack(fill='x', padx=10, pady=8) @@ -2494,7 +2497,8 @@ class App: foreground='red', justify='center' ) - warning_label.pack(pady=10) + + warning_label.grid(row=2, column=0, columnspan=2, pady=10) # Grid 2x2 untuk 4 tombol btn1 = ttk.Button( @@ -3009,12 +3013,16 @@ class App: main_container = ttk.Frame(parent) main_container.pack(fill='both', expand=True, padx=10, pady=6) - # Panel Kiri: Daftar Transaksi - left = ttk.LabelFrame(main_container, text="📋 Transaksi Siap Dibayar (Status: Selesai)", padding=10) + # Panel Kiri: Daftar & Detail Transaksi (Menggunakan PanedWindow) + left = ttk.LabelFrame(main_container, text="📋 Daftar & Detail Transaksi", padding=5) left.pack(side='left', fill='both', expand=True, padx=(0, 5)) - tree_frame = ttk.Frame(left) - tree_frame.pack(fill='both', expand=True) + # 1. Buat PanedWindow (Splitter Vertical) + paned = ttk.PanedWindow(left, orient='vertical') + paned.pack(fill='both', expand=True) + + # --- BAGIAN ATAS: TREEVIEW (DAFTAR TRANSAKSI) --- + tree_frame = ttk.Frame(paned) tree_scroll = ttk.Scrollbar(tree_frame, orient='vertical') tree_scroll.pack(side='right', fill='y') @@ -3024,7 +3032,7 @@ class App: tree_frame, columns=cols, show='headings', - height=10, + height=8, yscrollcommand=tree_scroll.set ) @@ -3045,18 +3053,31 @@ class App: self.payment_tree.pack(side='left', fill='both', expand=True) self.payment_tree.bind("<>", self.on_payment_select) - # Detail transaksi - detail_frame = ttk.Frame(left) - detail_frame.pack(fill='x', pady=(10, 0)) + # Tambahkan frame tree ke panel atas (bobot besar) + paned.add(tree_frame, weight=3) - ttk.Label(detail_frame, text="Detail Transaksi:", font=("Arial", 9, "bold")).pack(anchor='w') + # --- BAGIAN BAWAH: DETAIL TRANSAKSI --- + detail_frame = ttk.Frame(paned) - self.payment_detail_text = tk.Text(detail_frame, height=6, font=("Courier New", 8), wrap='word') - detail_scroll = ttk.Scrollbar(detail_frame, orient='vertical', command=self.payment_detail_text.yview) + # Label instruksi kecil + ttk.Label(detail_frame, text="Detail Transaksi (Geser batas atas untuk memperbesar):", font=("Arial", 9, "bold")).pack(anchor='w', pady=(5,0)) + + # Area Text & Scrollbar + text_container = ttk.Frame(detail_frame) + text_container.pack(fill='both', expand=True) + + # Scrollbar WAJIB dipack duluan sebelum Text + detail_scroll = ttk.Scrollbar(text_container, orient='vertical') + detail_scroll.pack(side='right', fill='y') + + self.payment_detail_text = tk.Text(text_container, height=8, font=("Courier New", 9), wrap='word') self.payment_detail_text.configure(yscrollcommand=detail_scroll.set) + detail_scroll.config(command=self.payment_detail_text.yview) self.payment_detail_text.pack(side='left', fill='both', expand=True) - detail_scroll.pack(side='right', fill='y') + + # Tambahkan frame detail ke panel bawah (bobot kecil) + paned.add(detail_frame, weight=1) # ✅ JIKA READ-ONLY, HANYA TAMPILKAN INFO, TANPA FORM PEMBAYARAN if readonly: @@ -3862,9 +3883,10 @@ class App: tid, uid, meja, total, status, promo_code, subtotal, item_disc, promo_disc, tanggal = transaksi_data detail_items = detail_transaksi_list(transaksi_id) - # Update label - self.selected_transaksi_label.config(text=f"Transaksi #{tid} - Meja {meja}", foreground='blue') - self.selected_total_label.config(text=f"Total: Rp {total:,.0f}") + # Update label (HANYA JIKA ADA / MODE KASIR) + if hasattr(self, 'selected_transaksi_label'): + self.selected_transaksi_label.config(text=f"Transaksi #{tid} - Meja {meja}", foreground='blue') + self.selected_total_label.config(text=f"Total: Rp {total:,.0f}") # Format detail detail_text = f"═══════════════════════════════════════════════\n" diff --git a/menu.csv b/menu.csv index 928a3e7..4f3df81 100644 --- a/menu.csv +++ b/menu.csv @@ -1,8 +1,8 @@ id,nama,kategori,harga,stok,foto,tersedia,item_discount_pct 1,Americano,Minuman,20000.0,7,img/americano.jpg,1,0.0 2,Latte,Minuman,25000.0,4,img/latte.jpg,1,10.0 -3,Banana Cake,Dessert,30000.0,9,img/banana_cake.jpg,1,4.0 -4,Nasi Goreng,Makanan,25000.0,10,img/nasi_goreng.jpg,1,0.0 +3,Banana Cake,Dessert,30000.0,8,img/banana_cake.jpg,1,4.0 +4,Nasi Goreng,Makanan,25000.0,9,img/nasi_goreng.jpg,1,0.0 5,Nasi Kuning,Makanan,18000.0,7,img/Nasi-Kuning.jpg,1,5.0 6,Strawberry Milkshake,Minuman,19000.0,5,img/strawberry_milkshake.jpg,1,0.0 7,Coconut Matcha,Minuman,21000.0,12,img/coconut_matcha.jpg,1,5.0 diff --git a/pembayaran.csv b/pembayaran.csv index a2f0d67..8a7b272 100644 --- a/pembayaran.csv +++ b/pembayaran.csv @@ -3,3 +3,4 @@ id,transaksi_id,metode_pembayaran,jumlah_bayar,status_pembayaran,tanggal_bayar,s 2,8,cash,50000.0,sukses,2025-12-14 01:46:20, 3,9,qris,63855.0,sukses,2025-12-14 09:52:46, 4,10,cash,25000.0,sukses,2025-12-14 10:05:01, +5,11,ewallet-gopay,48420.0,sukses,2025-12-14 10:52:50, diff --git a/struk/STR-11-20251214_105250.txt b/struk/STR-11-20251214_105250.txt new file mode 100644 index 0000000..77e1e80 --- /dev/null +++ b/struk/STR-11-20251214_105250.txt @@ -0,0 +1,28 @@ +═════════════════════════════════════════ + CAFE TOTORO MANIA + Jl. Raya Kampus No. 123, Surabaya + Telp: 031-123456 +═════════════════════════════════════════ + +No. Struk : STR-11-20251214 +Tanggal : 14/12/2025 10:35 +Meja : 1 +Kasir : kasir +Pembayaran : EWALLET-GOPAY +───────────────────────────────────────── +ITEM PESANAN: +───────────────────────────────────────── +Banana Cake + 1 x Rp 30,000 Rp 30,000 +Nasi Goreng + 1 x Rp 25,000 Rp 25,000 +───────────────────────────────────────── +Subtotal : Rp 55,000 +Diskon Item : Rp 1,200 +Diskon Promo : Rp 5,380 +───────────────────────────────────────── +TOTAL BAYAR : Rp 48,420 +═════════════════════════════════════════ + TERIMA KASIH ATAS KUNJUNGAN ANDA + SAMPAI JUMPA LAGI! +═════════════════════════════════════════ diff --git a/transaksi.csv b/transaksi.csv index 924fdcf..8f5e928 100644 --- a/transaksi.csv +++ b/transaksi.csv @@ -9,3 +9,4 @@ id,user_id,nomor_meja,total,status,promo_code,subtotal,item_discount,promo_disco 8,4,1,17280.0,dibayar,,18000.0,720.0,0.0,2025-12-14 01:44:46 9,4,3,63855.0,dibayar,OPENING,76000.0,5050.0,7095.0,2025-12-14 09:50:02 10,4,5,23347.5,dibayar,MERDEKA,46000.0,3550.0,19102.5,2025-12-14 10:03:04 +11,4,1,48420.0,dibayar,OPENING,55000.0,1200.0,5380.0,2025-12-14 10:35:35