Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Owo Sugiana
/
opensipkd-pad-models
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit d80c0074
authored
Feb 06, 2025
by
Owo Sugiana
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
Tambah Opsen untuk laporan ke Pemerintah Provinsi
1 parent
68206f12
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
133 additions
and
75 deletions
CHANGES.txt
opensipkd/pad/models/banjar.py
opensipkd/pad/models/default.py
opensipkd/pad/scripts/available_invoice.py
opensipkd/pad/scripts/inquiry.py
opensipkd/pad/services/bekasi_kab.py
opensipkd/pad/services/default.py
opensipkd/pad/services/subang.py
opensipkd/pad/services/tangerang_kab.py
opensipkd/pad/services/tangsel.py
pyproject.toml
CHANGES.txt
View file @
d80c007
0.6 2025-02-06
--------------
- Tambah Opsen untuk laporan ke Pemerintah Provinsi.
0.5.21 2025-01-22
0.5.21 2025-01-22
-----------------
-----------------
- Kabupaten Magelang mengenakan denda 1% mulai masa pajak Oktober 2024 tanggal
- Kabupaten Magelang mengenakan denda 1% mulai masa pajak Oktober 2024 tanggal
...
...
opensipkd/pad/models/banjar.py
View file @
d80c007
...
@@ -325,6 +325,7 @@ class Invoice(Base):
...
@@ -325,6 +325,7 @@ class Invoice(Base):
r_alamat
=
Column
(
String
(
255
))
r_alamat
=
Column
(
String
(
255
))
# m_tonase = Column(Float)
# m_tonase = Column(Float)
# m_njop = Column(Float)
# m_njop = Column(Float)
opsen_pokok
=
Column
(
Float
)
__table_args__
=
(
__table_args__
=
(
UniqueConstraint
(
'tahun'
,
'sptno'
),
UniqueConstraint
(
'tahun'
,
'sptno'
),
UniqueConstraint
(
'tahun'
,
'sptno'
,
'customer_usaha_id'
,
'masadari'
),
UniqueConstraint
(
'tahun'
,
'sptno'
,
'customer_usaha_id'
,
'masadari'
),
...
@@ -488,6 +489,8 @@ class Payment(Base):
...
@@ -488,6 +489,8 @@ class Payment(Base):
denda
=
Column
(
Integer
)
denda
=
Column
(
Integer
)
jml_bayar
=
Column
(
Integer
)
jml_bayar
=
Column
(
Integer
)
is_valid
=
Column
(
Integer
)
is_valid
=
Column
(
Integer
)
opsen_pokok
=
Column
(
Float
)
opsen_denda
=
Column
(
Float
)
__table_args__
=
(
__table_args__
=
(
UniqueConstraint
(
'tahun'
,
'sspdno'
),
UniqueConstraint
(
'tahun'
,
'sspdno'
),
dict
(
schema
=
'pad'
))
dict
(
schema
=
'pad'
))
...
...
opensipkd/pad/models/default.py
View file @
d80c007
...
@@ -324,6 +324,7 @@ class Invoice(Base):
...
@@ -324,6 +324,7 @@ class Invoice(Base):
r_alamat
=
Column
(
String
(
255
))
r_alamat
=
Column
(
String
(
255
))
# m_tonase = Column(Float)
# m_tonase = Column(Float)
# m_njop = Column(Float)
# m_njop = Column(Float)
opsen_pokok
=
Column
(
Float
)
__table_args__
=
(
__table_args__
=
(
UniqueConstraint
(
'tahun'
,
'sptno'
),
UniqueConstraint
(
'tahun'
,
'sptno'
),
UniqueConstraint
(
'tahun'
,
'sptno'
,
'customer_usaha_id'
,
'masadari'
),
UniqueConstraint
(
'tahun'
,
'sptno'
,
'customer_usaha_id'
,
'masadari'
),
...
@@ -378,6 +379,8 @@ class Payment(Base):
...
@@ -378,6 +379,8 @@ class Payment(Base):
jml_bayar
=
Column
(
Integer
)
jml_bayar
=
Column
(
Integer
)
is_valid
=
Column
(
Integer
)
is_valid
=
Column
(
Integer
)
discount_denda
=
Column
(
Float
)
discount_denda
=
Column
(
Float
)
opsen_pokok
=
Column
(
Float
)
opsen_denda
=
Column
(
Float
)
__table_args__
=
(
__table_args__
=
(
UniqueConstraint
(
'tahun'
,
'sspdno'
),
UniqueConstraint
(
'tahun'
,
'sspdno'
),
dict
(
schema
=
'pad'
))
dict
(
schema
=
'pad'
))
...
...
opensipkd/pad/scripts/available_invoice.py
View file @
d80c007
...
@@ -6,6 +6,7 @@ from .common import init
...
@@ -6,6 +6,7 @@ from .common import init
default_count
=
10
default_count
=
10
help_jenis
=
'dari field pad_usaha.usahanm'
help_jenis
=
'dari field pad_usaha.usahanm'
help_rekening
=
'dari field tblrekening.rekeningkd'
help_rekening
=
'dari field tblrekening.rekeningkd'
help_opsen
=
'dari field pad_spt.opsen_pokok'
help_tipe
=
'dari tabel pad_spt_type'
help_tipe
=
'dari tabel pad_spt_type'
help_tgl
=
'dd-mm-yyyy'
help_tgl
=
'dd-mm-yyyy'
help_count
=
f
'default {default_count}'
help_count
=
f
'default {default_count}'
...
@@ -21,6 +22,8 @@ def get_option(argv):
...
@@ -21,6 +22,8 @@ def get_option(argv):
pars
.
add_argument
(
'--jatuh-tempo-max'
,
help
=
help_tgl
)
pars
.
add_argument
(
'--jatuh-tempo-max'
,
help
=
help_tgl
)
pars
.
add_argument
(
'--nominal-min'
,
type
=
int
)
pars
.
add_argument
(
'--nominal-min'
,
type
=
int
)
pars
.
add_argument
(
'--nominal-max'
,
type
=
int
)
pars
.
add_argument
(
'--nominal-max'
,
type
=
int
)
pars
.
add_argument
(
'--opsen-min'
,
type
=
int
,
help
=
help_opsen
)
pars
.
add_argument
(
'--opsen-max'
,
type
=
int
,
help
=
help_opsen
)
pars
.
add_argument
(
'--tgl-kohir-min'
)
pars
.
add_argument
(
'--tgl-kohir-min'
)
pars
.
add_argument
(
'--tgl-kohir-max'
)
pars
.
add_argument
(
'--tgl-kohir-max'
)
pars
.
add_argument
(
'--tipe'
,
help
=
help_tipe
)
pars
.
add_argument
(
'--tipe'
,
help
=
help_tipe
)
...
...
opensipkd/pad/scripts/inquiry.py
View file @
d80c007
...
@@ -69,14 +69,27 @@ def show(inq):
...
@@ -69,14 +69,27 @@ def show(inq):
show_val
(
'Kecamatan Objek Pajak'
,
inq
.
get_kecamatan_op
())
show_val
(
'Kecamatan Objek Pajak'
,
inq
.
get_kecamatan_op
())
show_val
(
'Jatuh Tempo'
,
inq
.
get_jatuh_tempo
())
show_val
(
'Jatuh Tempo'
,
inq
.
get_jatuh_tempo
())
show_val
(
'Jumlah Bulan Denda'
,
inq
.
bln_tunggakan
)
show_val
(
'Jumlah Bulan Denda'
,
inq
.
bln_tunggakan
)
show_rp
(
'Tagihan'
,
inq
.
tagihan
)
show_rp
(
'Tagihan Pokok'
,
inq
.
pokok
)
show_rp
(
'Opsen Pokok'
,
inq
.
opsen_pokok
)
show_field
(
inq
.
invoice
,
'pajak_terhutang'
)
show_field
(
inq
.
invoice
,
'pajak_terhutang'
)
show_field
(
inq
.
invoice
,
'bunga'
)
show_field
(
inq
.
invoice
,
'bunga'
)
show_field
(
inq
.
invoice
,
'opsen_pokok'
)
try
:
try
:
show_rp
(
'Denda Jatuh Tempo'
,
inq
.
denda_waktu
)
show_rp
(
'Denda Pokok (Jatuh Tempo)'
,
inq
.
denda_pokok
)
except
AttributeError
:
pass
try
:
show_rp
(
'Opsen Denda (Jatuh Tempo)'
,
inq
.
opsen_denda
)
except
AttributeError
:
pass
try
:
show_rp
(
'Discount Denda Pokok'
,
inq
.
discount_denda_pokok
)
except
AttributeError
:
pass
try
:
show_rp
(
'Discount Opsen Denda'
,
inq
.
discount_opsen_denda
)
except
AttributeError
:
except
AttributeError
:
pass
pass
show_rp
(
'Discount Denda'
,
inq
.
discount_denda
)
if
inq
.
notes
:
if
inq
.
notes
:
show_val
(
'Note'
,
inq
.
notes
)
show_val
(
'Note'
,
inq
.
notes
)
show_rp
(
'Total Denda'
,
inq
.
denda
)
show_rp
(
'Total Denda'
,
inq
.
denda
)
...
...
opensipkd/pad/services/bekasi_kab.py
View file @
d80c007
...
@@ -89,58 +89,76 @@ NOTE_TGL_TERIMA = 'field terimatgl {tgl} >= ' + dmy(AKHIR_TERIMA)
...
@@ -89,58 +89,76 @@ NOTE_TGL_TERIMA = 'field terimatgl {tgl} >= ' + dmy(AKHIR_TERIMA)
class
Inquiry
(
BaseInquiry
):
class
Inquiry
(
BaseInquiry
):
invoice_id_structure
=
INVOICE_ID
invoice_id_structure
=
INVOICE_ID
def
hitung
_denda
(
self
):
# Override
def
get_persen
_denda
(
self
):
# Override
tgl_kohir
=
self
.
get_tgl_kohir
()
tgl_kohir
=
self
.
get_tgl_kohir
()
if
tgl_kohir
:
if
tgl_kohir
:
tahun_terbit
=
tgl_kohir
.
year
tahun_terbit
=
tgl_kohir
.
year
else
:
else
:
tahun_terbit
=
self
.
invoice
.
masadari
.
year
tahun_terbit
=
self
.
invoice
.
masadari
.
year
if
tahun_terbit
>
2023
:
if
tahun_terbit
>
2023
:
persen_denda
=
1
# 5: SKPDKB, 6: SKPDJ, 7: SKPDKBT, 15: SK Angsuran
# 5: SKPDKB, 6: SKPDJ, 7: SKPDKBT, 15: SK Angsuran
if
self
.
invoice
.
type_id
in
(
5
,
6
,
7
,
15
):
if
self
.
invoice
.
type_id
in
(
5
,
6
,
7
,
15
):
persen_denda
=
0.6
return
0.6
else
:
return
1
persen_denda
=
self
.
conf
[
'persen_denda'
]
return
2
bunga
=
self
.
invoice
.
bunga
or
0
self
.
denda
=
self
.
bunga
=
round_up
(
bunga
)
def
hitung_denda_waktu
(
self
):
if
self
.
invoice
.
jatuhtempotgl
:
persen_denda
=
self
.
get_persen_denda
()
d
=
Denda
(
d
=
Denda
(
self
.
tagihan
,
self
.
invoice
.
jatuhtempotgl
,
self
.
pokok
,
self
.
invoice
.
jatuhtempotgl
,
persen_denda
,
self
.
tgl_bayar
.
date
(),
self
.
invoice
)
persen_denda
,
self
.
tgl_bayar
.
date
(),
self
.
invoice
)
self
.
bln_tunggakan
,
self
.
denda_waktu
=
d
.
hitung
()
self
.
bln_tunggakan
,
self
.
denda_pokok
=
d
.
hitung
()
self
.
denda_waktu
=
round_up
(
self
.
denda_waktu
)
self
.
denda_pokok
=
round_up
(
self
.
denda_pokok
)
self
.
denda
+=
self
.
denda_waktu
d
=
Denda
(
self
.
invoice
.
opsen_pokok
,
self
.
invoice
.
jatuhtempotgl
,
persen_denda
,
self
.
tgl_bayar
.
date
(),
self
.
invoice
)
_
,
self
.
opsen_denda
=
d
.
hitung
()
self
.
opsen_denda
=
round_up
(
self
.
opsen_denda
)
def
hitung_denda
(
self
):
# Override
bunga
=
self
.
invoice
.
bunga
or
0
bunga
=
round_up
(
bunga
)
if
self
.
invoice
.
jatuhtempotgl
:
if
self
.
invoice
.
status_pembayaran
==
0
:
self
.
hitung_denda_waktu
()
self
.
denda_pokok
+=
bunga
else
:
self
.
bln_tunggakan
=
self
.
denda_pokok
=
self
.
opsen_denda
=
0
else
:
else
:
self
.
bln_tunggakan
=
None
self
.
denda_pokok
=
bunga
self
.
discount_denda
=
self
.
get_discount_denda
()
self
.
discount_denda
=
self
.
get_discount_denda
()
self
.
denda
-=
self
.
discount_denda
self
.
discount_denda_pokok
,
self
.
discount_opsen_denda
=
\
self
.
get_discount_denda
()
self
.
total_denda_pokok
=
self
.
denda_pokok
-
self
.
discount_denda_pokok
self
.
total_opsen_denda
=
self
.
opsen_denda
-
self
.
discount_opsen_denda
self
.
denda
=
self
.
total_denda_pokok
+
self
.
total_opsen_denda
self
.
denda
=
round_up
(
self
.
denda
)
def
get_discount_denda
(
self
):
# Override
def
get_discount_denda
(
self
):
# Override
self
.
notes
=
[]
self
.
notes
=
[]
rek
=
self
.
rekening
.
rekeningkd
rek
=
self
.
rekening
.
rekeningkd
if
rek
in
self
.
conf
.
get
(
'rekening_tanpa_denda'
,
[]):
if
rek
in
self
.
conf
.
get
(
'rekening_tanpa_denda'
,
[]):
self
.
notes
.
append
(
NOTE_REK
.
format
(
rek
=
rek
))
self
.
notes
.
append
(
NOTE_REK
.
format
(
rek
=
rek
))
return
self
.
denda
return
self
.
denda
_pokok
,
self
.
opsen_denda
tgl_bayar
=
self
.
tgl_bayar
.
date
()
tgl_bayar
=
self
.
tgl_bayar
.
date
()
if
tgl_bayar
>
AKHIR_TGL_BAYAR
:
if
tgl_bayar
>
AKHIR_TGL_BAYAR
:
return
0
return
0
,
0
tgl_masa
=
self
.
invoice
.
masadari
.
date
()
tgl_masa
=
self
.
invoice
.
masadari
.
date
()
if
tgl_masa
>
AKHIR_MASA
:
if
tgl_masa
>
AKHIR_MASA
:
return
0
return
0
,
0
notes
=
[
notes
=
[
NOTE_TGL_BAYAR
.
format
(
tgl
=
dmy
(
tgl_bayar
)),
NOTE_TGL_BAYAR
.
format
(
tgl
=
dmy
(
tgl_bayar
)),
NOTE_AKHIR_MASA
.
format
(
tgl
=
dmy
(
tgl_masa
))]
NOTE_AKHIR_MASA
.
format
(
tgl
=
dmy
(
tgl_masa
))]
if
tgl_masa
<=
AKHIR_MASA
:
if
tgl_masa
<=
AKHIR_MASA
:
notes
.
append
(
NOTE_AKHIR_MASA
.
format
(
tgl
=
dmy
(
tgl_masa
)))
notes
.
append
(
NOTE_AKHIR_MASA
.
format
(
tgl
=
dmy
(
tgl_masa
)))
self
.
notes
=
notes
self
.
notes
=
notes
return
self
.
denda
return
self
.
denda
_pokok
,
self
.
opsen_denda
tgl_terima
=
self
.
invoice
.
terimatgl
.
date
()
tgl_terima
=
self
.
invoice
.
terimatgl
.
date
()
if
tgl_terima
<=
AKHIR_TERIMA
:
if
tgl_terima
<=
AKHIR_TERIMA
:
notes
.
append
(
NOTE_TGL_TERIMA
.
format
(
tgl
=
tgl_terima
))
notes
.
append
(
NOTE_TGL_TERIMA
.
format
(
tgl
=
tgl_terima
))
self
.
notes
=
notes
self
.
notes
=
notes
return
self
.
denda
return
self
.
denda
_pokok
,
self
.
opsen_denda
return
0
return
0
,
0
def
get_invoice_model
(
self
):
# Override
def
get_invoice_model
(
self
):
# Override
return
Invoice
return
Invoice
...
...
opensipkd/pad/services/default.py
View file @
d80c007
...
@@ -296,42 +296,52 @@ class Inquiry(BaseInquiry):
...
@@ -296,42 +296,52 @@ class Inquiry(BaseInquiry):
def
get_payment_amount
(
self
):
def
get_payment_amount
(
self
):
Payment
=
self
.
get_payment_model
()
Payment
=
self
.
get_payment_model
()
DBSession
=
get_db_session
()
DBSession
=
get_db_session
()
q
=
DBSession
.
query
(
func
.
sum
(
Payment
.
jml_bayar
)
.
label
(
'jml'
))
q
=
DBSession
.
query
(
func
.
sum
(
Payment
.
jml_bayar
+
Payment
.
opsen_pokok
))
q
=
q
.
filter_by
(
spt_id
=
self
.
invoice
.
id
)
q
=
q
.
filter_by
(
spt_id
=
self
.
invoice
.
id
)
pay
=
q
.
first
()
return
q
.
scalar
()
or
0
return
pay
.
jml
or
0
def
hitung_tagihan
(
self
):
def
hitung_tagihan
(
self
):
self
.
tagihan
=
self
.
invoice
.
pajak_terhutang
-
self
.
invoice
.
bunga
self
.
pokok
=
self
.
invoice
.
pajak_terhutang
-
self
.
invoice
.
bunga
self
.
tagihan
=
round_up
(
self
.
tagihan
)
self
.
total_pokok
=
self
.
pokok
+
self
.
invoice
.
opsen_pokok
self
.
total_pokok
=
round_up
(
self
.
total_pokok
)
self
.
opsen_pokok
=
round_up
(
self
.
invoice
.
opsen_pokok
)
def
hitung_denda
(
self
):
def
hitung_denda
(
self
):
self
.
bln_tunggakan
=
None
self
.
bln_tunggakan
=
None
self
.
denda
=
0
if
self
.
get_type_name
()
.
strip
()
==
'STPD'
:
if
self
.
get_type_name
()
.
strip
()
==
'STPD'
:
self
.
denda
=
round_up
(
self
.
invoice
.
bunga
)
self
.
denda_pokok
=
round_up
(
self
.
invoice
.
bunga
)
self
.
bln_tunggakan
=
self
.
opsen_denda
=
0
elif
self
.
invoice
.
jatuhtempotgl
:
elif
self
.
invoice
.
jatuhtempotgl
:
if
self
.
invoice
.
status_pembayaran
==
0
:
if
self
.
invoice
.
status_pembayaran
==
0
:
self
.
hitung_denda_waktu
()
self
.
hitung_denda_waktu
()
else
:
else
:
self
.
bln_tunggakan
=
self
.
denda_waktu
=
0
self
.
bln_tunggakan
=
self
.
denda_pokok
=
self
.
opsen_denda
=
0
self
.
denda
=
self
.
denda_waktu
+
self
.
invoice
.
bunga
self
.
discount_denda_pokok
,
self
.
discount_opsen_denda
=
\
self
.
get_discount_denda
()
self
.
total_denda_pokok
=
self
.
denda_pokok
-
self
.
discount_denda_pokok
self
.
total_opsen_denda
=
self
.
opsen_denda
-
self
.
discount_opsen_denda
self
.
denda
=
self
.
total_denda_pokok
+
self
.
total_opsen_denda
self
.
denda
=
round_up
(
self
.
denda
)
self
.
denda
=
round_up
(
self
.
denda
)
self
.
discount_denda
=
self
.
get_discount_denda
()
self
.
denda
-=
self
.
discount_denda
def
hitung_denda_waktu
(
self
):
def
get_persen_denda
(
self
):
tahun_terbit
=
self
.
get_jatuh_tempo
()
.
year
tahun_terbit
=
self
.
get_jatuh_tempo
()
.
year
if
tahun_terbit
>
2023
:
if
tahun_terbit
>
2023
:
persen_denda
=
1
return
1
else
:
return
2
persen_denda
=
self
.
conf
[
'persen_denda'
]
self
.
bln_tunggakan
,
self
.
denda_waktu
=
hitung_denda
(
def
hitung_denda_waktu
(
self
):
self
.
tagihan
,
self
.
invoice
.
jatuhtempotgl
,
persen_denda
,
persen_denda
=
self
.
get_persen_denda
()
self
.
tgl_bayar
.
date
())
tgl_bayar
=
self
.
tgl_bayar
.
date
()
self
.
bln_tunggakan
,
self
.
denda_pokok
=
hitung_denda
(
self
.
pokok
,
self
.
invoice
.
jatuhtempotgl
,
persen_denda
,
tgl_bayar
)
_
,
self
.
opsen_denda
=
hitung_denda
(
self
.
invoice
.
opsen_pokok
,
self
.
invoice
.
jatuhtempotgl
,
persen_denda
,
tgl_bayar
)
self
.
opsen_denda
=
round_up
(
self
.
opsen_denda
)
def
get_discount_denda
(
self
):
def
get_discount_denda
(
self
):
return
0
return
0
,
0
# denda_pokok, opsen_denda
def
hitung_bayar
(
self
):
def
hitung_bayar
(
self
):
bayar
=
self
.
get_payment_amount
()
bayar
=
self
.
get_payment_amount
()
...
@@ -341,7 +351,7 @@ class Inquiry(BaseInquiry):
...
@@ -341,7 +351,7 @@ class Inquiry(BaseInquiry):
self
.
hitung_tagihan
()
self
.
hitung_tagihan
()
self
.
hitung_denda
()
self
.
hitung_denda
()
self
.
hitung_bayar
()
self
.
hitung_bayar
()
self
.
total
=
self
.
t
agihan
+
self
.
denda
-
self
.
total_bayar
self
.
total
=
self
.
t
otal_pokok
+
self
.
denda
-
self
.
total_bayar
if
self
.
total
<
0
:
if
self
.
total
<
0
:
self
.
total
=
0
self
.
total
=
0
...
@@ -363,9 +373,11 @@ class Inquiry(BaseInquiry):
...
@@ -363,9 +373,11 @@ class Inquiry(BaseInquiry):
tahun
=
self
.
invoice
.
tahun
,
tahun
=
self
.
invoice
.
tahun
,
spt_id
=
self
.
invoice
.
id
,
spt_id
=
self
.
invoice
.
id
,
sspdno
=
sspdno
,
sspdno
=
sspdno
,
denda
=
self
.
denda
,
denda
=
self
.
total_denda_pokok
,
bunga
=
self
.
denda
,
bunga
=
self
.
total_denda_pokok
,
jml_bayar
=
self
.
total
,
jml_bayar
=
self
.
pokok
+
self
.
total_denda_pokok
,
opsen_pokok
=
self
.
opsen_pokok
+
self
.
total_opsen_denda
,
opsen_denda
=
self
.
opsen_denda
,
create_date
=
kini
,
create_date
=
kini
,
write_date
=
kini
,
write_date
=
kini
,
sspdtgl
=
self
.
tgl_bayar
,
sspdtgl
=
self
.
tgl_bayar
,
...
@@ -398,7 +410,8 @@ class Reversal(BaseInquiry):
...
@@ -398,7 +410,8 @@ class Reversal(BaseInquiry):
DBSession
=
get_db_session
()
DBSession
=
get_db_session
()
if
self
.
payment
:
if
self
.
payment
:
self
.
payment
.
jml_bayar
=
self
.
payment
.
denda
=
\
self
.
payment
.
jml_bayar
=
self
.
payment
.
denda
=
\
self
.
payment
.
bunga
=
0
self
.
payment
.
bunga
=
self
.
payment
.
opsen_pokok
=
\
self
.
payment
.
opsen_denda
=
0
self
.
payment
.
enabled
=
self
.
payment
.
is_valid
=
0
self
.
payment
.
enabled
=
self
.
payment
.
is_valid
=
0
DBSession
.
add
(
self
.
payment
)
DBSession
.
add
(
self
.
payment
)
self
.
invoice
.
status_pembayaran
=
0
self
.
invoice
.
status_pembayaran
=
0
...
@@ -480,6 +493,7 @@ class AvailableInvoice:
...
@@ -480,6 +493,7 @@ class AvailableInvoice:
q
=
self
.
get_filter_rekening
(
q
)
q
=
self
.
get_filter_rekening
(
q
)
q
=
self
.
get_filter_usaha
(
q
)
q
=
self
.
get_filter_usaha
(
q
)
q
=
self
.
get_filter_nominal
(
q
)
q
=
self
.
get_filter_nominal
(
q
)
q
=
self
.
get_filter_opsen
(
q
)
q
=
self
.
get_filter_jatuh_tempo
(
q
)
q
=
self
.
get_filter_jatuh_tempo
(
q
)
q
=
self
.
get_filter_masa
(
q
)
q
=
self
.
get_filter_masa
(
q
)
q
=
self
.
get_filter_tgl_terima
(
q
)
q
=
self
.
get_filter_tgl_terima
(
q
)
...
@@ -532,6 +546,16 @@ class AvailableInvoice:
...
@@ -532,6 +546,16 @@ class AvailableInvoice:
self
.
option
.
nominal_max
)
self
.
option
.
nominal_max
)
return
q
return
q
def
get_filter_opsen
(
self
,
q
):
Invoice
=
self
.
get_invoice_model
()
if
self
.
option
.
opsen_min
:
q
=
q
.
filter
(
Invoice
.
opsen_pokok
>=
self
.
option
.
opsen_min
)
if
self
.
option
.
opsen_max
:
q
=
q
.
filter
(
Invoice
.
opsen_pokok
<=
self
.
option
.
opsen_max
)
return
q
def
get_filter_jatuh_tempo
(
self
,
q
):
def
get_filter_jatuh_tempo
(
self
,
q
):
Invoice
=
self
.
get_invoice_model
()
Invoice
=
self
.
get_invoice_model
()
if
self
.
option
.
jatuh_tempo_min
:
if
self
.
option
.
jatuh_tempo_min
:
...
@@ -600,7 +624,7 @@ class AvailableInvoice:
...
@@ -600,7 +624,7 @@ class AvailableInvoice:
if
not
inq
.
total
:
if
not
inq
.
total
:
return
return
total
=
thousand
(
inq
.
total
)
total
=
thousand
(
inq
.
total
)
tagihan
=
thousand
(
inq
.
t
agihan
)
tagihan
=
thousand
(
inq
.
t
otal_pokok
)
denda
=
thousand
(
inq
.
denda
)
denda
=
thousand
(
inq
.
denda
)
s
=
f
'{invoice_id.get_raw()} {inq.get_kode_rekening()}'
\
s
=
f
'{invoice_id.get_raw()} {inq.get_kode_rekening()}'
\
f
' {inq.get_nama_rekening()} Rp {total} ='
\
f
' {inq.get_nama_rekening()} Rp {total} ='
\
...
...
opensipkd/pad/services/subang.py
View file @
d80c007
...
@@ -19,29 +19,23 @@ INVOICE_ID = [('Prefix', 4, 'N')] + INVOICE_ID
...
@@ -19,29 +19,23 @@ INVOICE_ID = [('Prefix', 4, 'N')] + INVOICE_ID
class
Inquiry
(
BaseInquiry
):
class
Inquiry
(
BaseInquiry
):
invoice_id_structure
=
INVOICE_ID
invoice_id_structure
=
INVOICE_ID
def
hitung_denda_waktu
(
self
):
# Override
def
get_persen_denda
(
self
):
# Override
tgl_kohir
=
self
.
get_tgl_kohir
()
tgl_kohir
=
self
.
get_tgl_kohir
()
if
tgl_kohir
:
if
tgl_kohir
:
tahun_terbit
=
tgl_kohir
.
year
tahun_terbit
=
tgl_kohir
.
year
else
:
else
:
tahun_terbit
=
self
.
invoice
.
masadari
.
year
tahun_terbit
=
self
.
invoice
.
masadari
.
year
if
tahun_terbit
>
2023
:
if
tahun_terbit
>
2023
:
persen_denda
=
1
return
1
if
self
.
get_type_name
()
.
strip
()
in
(
'SSPD'
,
'SELF'
):
return
2
persen_denda
=
1
else
:
persen_denda
=
self
.
conf
[
'persen_denda'
]
self
.
bln_tunggakan
,
self
.
denda_waktu
=
hitung_denda
(
self
.
tagihan
,
self
.
invoice
.
jatuhtempotgl
,
persen_denda
,
self
.
tgl_bayar
.
date
())
def
get_discount_denda
(
self
):
# Override
def
get_discount_denda
(
self
):
# Override
tgl_bayar
=
self
.
tgl_bayar
.
date
()
tgl_bayar
=
self
.
tgl_bayar
.
date
()
if
AWAL_DISC
<=
tgl_bayar
<=
AKHIR_DISC
:
if
AWAL_DISC
<=
tgl_bayar
<=
AKHIR_DISC
:
tgl
=
self
.
invoice
.
masadari
.
date
()
tgl
=
self
.
invoice
.
masadari
.
date
()
if
tgl
.
year
==
2024
:
if
tgl
.
year
==
2024
:
return
self
.
denda
return
self
.
denda
_pokok
,
self
.
opsen_denda
return
0
return
0
,
0
def
get_kohir_model
(
self
):
def
get_kohir_model
(
self
):
return
Kohir
return
Kohir
...
...
opensipkd/pad/services/tangerang_kab.py
View file @
d80c007
...
@@ -60,15 +60,15 @@ class Inquiry(BaseInquiry):
...
@@ -60,15 +60,15 @@ class Inquiry(BaseInquiry):
self
.
tgl_bayar
.
date
())
self
.
tgl_bayar
.
date
())
if
self
.
invoice
.
bunga
<
1
or
self
.
bln_tunggakan
<
1
:
if
self
.
invoice
.
bunga
<
1
or
self
.
bln_tunggakan
<
1
:
return
return
denda_per_bln
=
self
.
denda_waktu
/
self
.
bln_tunggakan
denda_pokok_per_bln
=
self
.
denda_pokok
/
self
.
bln_tunggakan
max_denda
=
24
*
denda_per_bln
opsen_denda_per_bln
=
self
.
opsen_denda
/
self
.
bln_tunggakan
denda
=
self
.
denda_waktu
+
self
.
invoice
.
bunga
max_denda_pokok
=
24
*
denda_pokok_per_bln
if
max_denda
>
0
and
denda
>=
max_denda
:
max_opsen_denda
=
24
*
opsen_denda_per_bln
if
self
.
bln_tunggakan
>
24
:
max_denda
=
max_denda_pokok
+
max_opsen_denda
if
max_denda
>
0
and
self
.
total_denda
>=
max_denda
:
self
.
bln_tunggakan
=
24
self
.
bln_tunggakan
=
24
self
.
denda_waktu
=
max_denda
-
self
.
invoice
.
bunga
self
.
denda_pokok
=
max_denda_pokok
-
self
.
invoice
.
bunga
if
self
.
denda_waktu
<
0
:
self
.
opsen_denda
=
max_opsen_denda
self
.
denda_waktu
=
0
def
get_discount_denda
(
self
):
# Override
def
get_discount_denda
(
self
):
# Override
tgl_bayar
=
self
.
tgl_bayar
.
date
()
tgl_bayar
=
self
.
tgl_bayar
.
date
()
...
...
opensipkd/pad/services/tangsel.py
View file @
d80c007
...
@@ -86,19 +86,15 @@ class Inquiry(BaseInquiry):
...
@@ -86,19 +86,15 @@ class Inquiry(BaseInquiry):
return
self
.
denda
return
self
.
denda
return
0
return
0
def
hitung_denda_waktu
(
self
):
# Override
def
get_persen_denda
(
self
):
# Override
tgl_kohir
=
self
.
get_tgl_kohir
()
tgl_kohir
=
self
.
get_tgl_kohir
()
if
tgl_kohir
:
if
tgl_kohir
:
tahun_terbit
=
tgl_kohir
.
year
tahun_terbit
=
tgl_kohir
.
year
else
:
else
:
tahun_terbit
=
self
.
invoice
.
masadari
.
year
tahun_terbit
=
self
.
invoice
.
masadari
.
year
if
tahun_terbit
>
2023
:
if
tahun_terbit
>
2023
:
persen_denda
=
1
return
1
else
:
return
2
persen_denda
=
self
.
conf
[
'persen_denda'
]
self
.
bln_tunggakan
,
self
.
denda_waktu
=
hitung_denda
(
self
.
tagihan
,
self
.
invoice
.
jatuhtempotgl
,
persen_denda
,
self
.
tgl_bayar
.
date
())
def
before_save
(
self
,
pay
):
# Override
def
before_save
(
self
,
pay
):
# Override
pay
.
discount_denda
=
self
.
discount_denda
pay
.
discount_denda
=
self
.
discount_denda
...
...
pyproject.toml
View file @
d80c007
...
@@ -3,7 +3,7 @@ requires = ['setuptools >= 64']
...
@@ -3,7 +3,7 @@ requires = ['setuptools >= 64']
[project]
[project]
name
=
'opensipkd-pad-models'
name
=
'opensipkd-pad-models'
version
=
'
0.
5.21
'
version
=
'
0.
6
'
dependencies
=
[
dependencies
=
[
'sqlalchemy'
,
'sqlalchemy'
,
'zope.sqlalchemy'
,
'zope.sqlalchemy'
,
...
...
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment