Commit 81f1204f by Taufikyu

update hitungan bunga

1 parent 45adde43
...@@ -18,48 +18,22 @@ from math import ceil ...@@ -18,48 +18,22 @@ from math import ceil
## Untuk perhitungan bunga ## ## Untuk perhitungan bunga ##
############################# #############################
def hitung_bunga(pokok, jatuh_tempo, tanggal=None, max_denda=24): def hitung_bunga(pokok, jatuh_tempo, tanggal=None, max_denda=24):
##row = DBSession.query(Param.denda).first()
##if row:
## persen_denda = row.denda
##else:
## return 0
#persen_denda = 1
#kini = date.today()
#denda = bln_tunggakan = 0
#jatuh_tempo = jatuh_tempo
#x = (kini.year - jatuh_tempo.year) * 12
#y = kini.month - jatuh_tempo.month
#bln_tunggakan = x + y + 1
#if kini.day <= jatuh_tempo.day:
# bln_tunggakan -= 1
#if bln_tunggakan < 1:
# bln_tunggakan = 0
#if bln_tunggakan > 24:
# bln_tunggakan = 24
#denda = bln_tunggakan * persen_denda / 100 * pokok
#print('kini',kini)
#print('jatuh_tempo',jatuh_tempo)
#print('pokok',pokok)
#print('denda',denda)
#return denda
persen_denda = 1 persen_denda = 1
if not tanggal: if not tanggal:
tanggal = datetime.now().date() tanggal = datetime.now().date()
if tanggal <= jatuh_tempo: # + timedelta(days=1): if tanggal <= jatuh_tempo:
return 0 return 0
x = (tanggal.year - jatuh_tempo.year) * 12 selisih_tahun = tanggal.year - jatuh_tempo.year
y = tanggal.month - jatuh_tempo.month bln_tunggakan = selisih_tahun * 12 + tanggal.month - jatuh_tempo.month
bln_tunggakan = x + y + 1
if tanggal.day <= jatuh_tempo.day: if tanggal.day > jatuh_tempo.day:
bln_tunggakan -= 1 bln_tunggakan += 1
if bln_tunggakan < 1:
bln_tunggakan = 0
if bln_tunggakan > max_denda: if bln_tunggakan > max_denda:
bln_tunggakan = max_denda bln_tunggakan = max_denda
denda = int(ceil(bln_tunggakan * persen_denda / 100.0 * pokok)) denda = int(ceil(bln_tunggakan * persen_denda / 100.0 * pokok))
return denda return denda
################################### ###################################
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!