-
Notifications
You must be signed in to change notification settings - Fork 1
/
main_file_bismillah_fix.py
181 lines (139 loc) · 5.18 KB
/
main_file_bismillah_fix.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
import datetime
import pandas as pds
from transaksi_modul import *
from update_item_list_modul import *
from cek_transaksi_modul import *
from update_item_dataframe_modul import *
# Buat Transaksi
step = 0
while step >= 0:
try:
# Proses untuk memutuskan buat transaksi baru atau transaksi sebelumnya
awal = input("Apakah Anda sudah buat transaksi sebelumnya? Ya / Tidak:")
if awal.title() not in ('Ya', 'Tidak'):
pass
else:
break
except TypeError:
print("Input yang Anda masukkan salah, silakan melakukan input ulang.")
step += 1
buat_transaksi(awal)
# Ambil Nomor Transaksi
'''
Jika menjawab "tidak", maka akan ditentukan nomor transaksi secara acak.
'''
nomorku = pilih_nomor(awal)
# Simpan transaksimu dalam variabel transaksiku
transaksiku = transaction()
# Tambah Item Belanja
step_ = 0
while step_ >= 0:
try:
# Proses untuk memutuskan buat transaksi baru atau transaksi sebelumnya
tambah_transaksi = input("Apakah Anda ingin menambahkan item? Ya / Tidak:")
if tambah_transaksi.title() not in ('Ya', 'Tidak'):
pass
else:
break
except TypeError:
print("Input yang Anda masukkan salah, silakan melakukan input ulang.")
step_ += 1
add_item(tambah_transaksi,transaksiku)
print(transaksiku)
# Menghapus item mouse
delete_item('mouse', transaksiku)
print(transaksiku)
# Reset item
reset_transaksi(transaksiku)
print(transaksiku)
# buat transaksi lagi
transaksiku = transaction()
# Input item lagi
add_item(tambah_transaksi,transaksiku)
print(transaksiku)
# Koreksi Awal: Memperbarui Daftar Belanja dalam List
step = 0
while step >= 0:
try:
koreksiawal = input("Apakah mau dikoreksi dahulu? (Jawab 'Tidak' atau 'Ya' jika ingin mengoreksi):")
if koreksiawal.title() not in ('Ya', 'Tidak'):
pass
else:
break
except:
print("Input yang Anda masukkan salah, silakan melakukan input ulang.")
step += 1
koreksi_awal(koreksiawal, transaksiku)
# Check Kesesuaian List
check_list(transaksiku)
# Lakukan Pengecekan Awal Dahulu
check_item_sementara(transaksiku)
# CHECK ITEM DAN MENGUBAH KE DALAM DATA FRAME
def check_item(transaksiku):
'''
Fungsi untum mengembalikan daftar transaksi yang sudah benar.
Parameter:
- transaksiku (list): list daftar belanja yang ingin dicek.
Output:
- df (DataFrame): dataframe daftar belanja belanja.
'''
pra_df = {
"nama_produk":transaksiku[0],
"jumlah":transaksiku[1],
"harga_per_item":transaksiku[2]
}
df = pds.DataFrame(pra_df)
df['harga_total'] = df['jumlah']*df['harga_per_item']
df.head()
return df
# Simpan Hasil Cek Item dalam variabel my_transaksi
my_transaksi = check_item(transaksiku)
print(my_transaksi)
# Fungsi Pembayaran
def pembayaran(my_transaksi):
'''
Fungsi menghitung tagihan akhir di kasir.
Parameter:
- my_transaksi (DataFrame): berisi daftar belanja.
Output:
- Informasi total pembayaran dan diskon yang diperoleh (S&K Berlaku).
'''
today = datetime.datetime.now()
today_print = today.strftime("%c")
total = total_price(my_transaksi)
if total > 500_000:
diskon = 10/100
dibayar = total - total*diskon
print(f"{today_print}\nKode Transaksi: {nomorku}\nBerikut daftar belanja Anda:\n{my_transaksi}")
print("Total belanja Anda di atas Rp500.000 sehingga Anda akan mendapatkan diskon 10%.")
print(f"Tagihan akhir untuk transaksi Anda hari ini sebesar Rp{dibayar}")
elif total > 300_000:
diskon = 8/100
dibayar = total - total*diskon
print(f"{today_print}\nKode Transaksi: {nomorku}\nBerikut daftar belanja Anda:\n{my_transaksi}")
print("Total belanja Anda di atas Rp300.000 sehingga Anda akan mendapatkan diskon 8%.")
print(f"Tagihan akhir untuk transaksi Anda hari ini sebesar Rp{dibayar}")
elif total > 200_000:
diskon = 5/100
dibayar = total - total*diskon
print(f"{today_print}\nKode Transaksi: {nomorku}\nBerikut daftar belanja Anda:\n{my_transaksi}")
print("Total belanja Anda di atas Rp200.000 sehingga Anda akan mendapatkan diskon 5%.")
print(f"Tagihan akhir untuk transaksi Anda hari ini sebesar Rp{dibayar}")
else:
print(f"{today_print}\nKode Transaksi: {nomorku}\nBerikut daftar belanja Anda:\n{my_transaksi}")
print(f"Transaksi belanja Anda hari ini sebesar Rp{total}")
# Memastikan Ulang Sebelum Pembayaran
alur = 0
while alur >= 0:
try:
jawaban = input("Apakah sudah benar? (Jawab 'ya' atau 'tidak' jika ingin mengoreksi):")
if jawaban.title() not in ('Ya', 'Tidak'):
pass
else:
break
except:
print("Input yang Anda masukkan salah, silakan melakukan input ulang.")
alur += 1
lanjut_transaksi(jawaban, my_transaksi)
# Pembayaran
pembayaran(my_transaksi)