Commit 42a20fea by Taufikyu

perbaiki hitung denda

1 parent 0a536d63
......@@ -12,31 +12,55 @@ from ..models.isipkd import Param
from ..models.isipkd import(
Wilayah, Jabatan, Unit, Rekening, SubjekPajak, Pajak, ObjekPajak
)
from math import ceil
#############################
## Untuk perhitungan bunga ##
#############################
def hitung_bunga(pokok, jatuh_tempo):
#row = DBSession.query(Param.denda).first()
#if row:
# persen_denda = row.denda
#else:
# return 0
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
kini = date.today()
denda = bln_tunggakan = 0
jatuh_tempo = jatuh_tempo
x = (kini.year - jatuh_tempo.year) * 12
y = kini.month - jatuh_tempo.month
if not tanggal:
tanggal = datetime.now().date()
if tanggal <= jatuh_tempo: # + timedelta(days=1):
return 0
x = (tanggal.year - jatuh_tempo.year) * 12
y = tanggal.month - jatuh_tempo.month
bln_tunggakan = x + y + 1
if kini.day <= jatuh_tempo.day:
if tanggal.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
if bln_tunggakan > max_denda:
bln_tunggakan = max_denda
denda = int(ceil(bln_tunggakan * persen_denda / 100.0 * pokok))
return denda
###################################
## Untuk validasi struktur email ##
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!