Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Owo Sugiana
/
sismiop-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 606e521f
authored
Apr 06, 2023
by
Owo Sugiana
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
Bug fixed payment Kota Sukabumi
1 parent
420ae25c
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
140 additions
and
49 deletions
sismiop/scripts/inquiry.py
sismiop/services/sukabumi_kota.py
sismiop/scripts/inquiry.py
View file @
606e521
...
...
@@ -10,6 +10,9 @@ import sismiop.services.base
from
sismiop.services.base
import
thousand
registry
=
dict
()
def
show_val
(
label
,
value
):
if
value
is
None
:
value
=
''
...
...
@@ -75,13 +78,21 @@ def show_inquiry(inq):
show_field
(
inq
.
invoice
,
'pbb_terhutang_sppt'
)
show_field
(
inq
.
invoice
,
'faktor_pengurang_sppt'
)
for
pay
in
inq
.
query_payments
():
show_fields
(
pay
,
[
'pembayaran_sppt_ke'
,
'kd_kanwil'
,
'kd_kantor'
,
'kd_kanwil_bank'
,
'kd_kppbb_bank'
,
'kd_bank_tunggal'
,
'kd_bank_persepsi'
,
'kd_tp'
,
'tgl_rekam_byr_sppt'
,
'tgl_pembayaran_sppt'
,
'jml_sppt_yg_dibayar'
,
'jml_pbb_yg_dibayar'
,
'denda_sblm_diskon'
,
'denda_sppt'
,
'discount_pokok'
,
'discount_denda'
,
'discount'
])
if
registry
[
'module_name'
]
==
'sukabumi_kota'
:
show_fields
(
pay
,
[
'PEMBAYARAN_SPPT_KE'
,
'KD_KANWIL'
,
'KD_KANTOR'
,
'KD_KANWIL_BANK'
,
'KD_KPPBB_BANK'
,
'KD_BANK_TUNGGAL'
,
'KD_BANK_PERSEPSI'
,
'KD_TP'
,
'TGL_REKAM_BYR_SPPT'
,
'TGL_PEMBAYARAN_SPPT'
,
'JML_SPPT_YG_DIBAYAR'
,
'JML_PBB_YG_DIBAYAR'
,
'DENDA_SPPT'
])
else
:
show_fields
(
pay
,
[
'pembayaran_sppt_ke'
,
'kd_kanwil'
,
'kd_kantor'
,
'kd_kanwil_bank'
,
'kd_kppbb_bank'
,
'kd_bank_tunggal'
,
'kd_bank_persepsi'
,
'kd_tp'
,
'tgl_rekam_byr_sppt'
,
'tgl_pembayaran_sppt'
,
'jml_sppt_yg_dibayar'
,
'jml_pbb_yg_dibayar'
,
'denda_sblm_diskon'
,
'denda_sppt'
,
'discount_pokok'
,
'discount_denda'
,
'discount'
])
def
show_fields
(
row
,
fieldnames
):
...
...
@@ -97,17 +108,28 @@ def show_attr(obj, attr, label):
show_rp
(
label
,
n
)
def
show_payment
(
module_name
,
inq
,
pay
):
print
(
'Berhasil dibayar pada urutan ke-{}'
.
format
(
pay
.
pembayaran_sppt_ke
))
print
(
'Tabel pembayaran_sppt'
)
show_fields
(
pay
,
[
'kd_kanwil'
,
'kd_kantor'
,
'kd_bank'
,
'kd_kanwil_bank'
,
'kd_kppbb_bank'
,
'kd_bank_tunggal'
,
'kd_bank_persepsi'
,
'kd_tp'
,
'jml_sppt_yg_dibayar'
,
'jml_pbb_yg_dibayar'
,
'denda_sppt'
,
'denda_sblm_diskon'
,
'discount_pokok'
,
'discount_denda'
,
'discount'
])
def
show_payment
(
inq
,
pay
):
if
registry
[
'module_name'
]
==
'sukabumi_kota'
:
print
(
'Berhasil dibayar pada urutan ke-{}'
.
format
(
pay
.
PEMBAYARAN_SPPT_KE
))
print
(
'Tabel PEMBAYARAN_SPPT'
)
show_fields
(
pay
,
[
'kd_kanwil'
,
'kd_kantor'
,
'kd_bank'
,
'kd_kanwil_bank'
,
'kd_kppbb_bank'
,
'kd_bank_tunggal'
,
'kd_bank_persepsi'
,
'kd_tp'
,
'jml_sppt_yg_dibayar'
,
'jml_pbb_yg_dibayar'
,
'denda_sppt'
])
else
:
print
(
'Berhasil dibayar pada urutan ke-{}'
.
format
(
pay
.
pembayaran_sppt_ke
))
print
(
'Tabel pembayaran_sppt'
)
show_fields
(
pay
,
[
'kd_kanwil'
,
'kd_kantor'
,
'kd_bank'
,
'kd_kanwil_bank'
,
'kd_kppbb_bank'
,
'kd_bank_tunggal'
,
'kd_bank_persepsi'
,
'kd_tp'
,
'jml_sppt_yg_dibayar'
,
'jml_pbb_yg_dibayar'
,
'denda_sppt'
,
'denda_sblm_diskon'
,
'discount_pokok'
,
'discount_denda'
,
'discount'
])
try
:
row
,
fields
=
inq
.
get_other_payment_table
(
pay
)
except
AttributeError
:
...
...
@@ -118,15 +140,23 @@ def show_payment(module_name, inq, pay):
show_fields
(
row
,
fields
)
def
show_reversal
(
module_name
,
inq
,
pay
):
print
(
'Pembayaran ke-{} berhasil dibatalkan'
.
format
(
pay
.
pembayaran_sppt_ke
))
print
(
'Tabel pembayaran_sppt'
)
show_fields
(
pay
,
[
'jml_sppt_yg_dibayar'
,
'jml_pbb_yg_dibayar'
,
'denda_sppt'
,
'denda_sblm_diskon'
,
'discount_pokok'
,
'discount_denda'
,
'discount'
])
def
show_reversal
(
inq
,
pay
):
if
registry
[
'module_name'
]
==
'sukabumi_kota'
:
print
(
'Pembayaran ke-{} berhasil dibatalkan'
.
format
(
pay
.
PEMBAYARAN_SPPT_KE
))
print
(
'Tabel PEMBAYARAN_SPPT'
)
show_fields
(
pay
,
[
'JML_SPPT_YG_DIBAYAR'
,
'JML_PBB_YG_DIBAYAR'
,
'DENDA_SPPT'
])
else
:
print
(
'Pembayaran ke-{} berhasil dibatalkan'
.
format
(
pay
.
pembayaran_sppt_ke
))
print
(
'Tabel pembayaran_sppt'
)
show_fields
(
pay
,
[
'jml_sppt_yg_dibayar'
,
'jml_pbb_yg_dibayar'
,
'denda_sppt'
,
'denda_sblm_diskon'
,
'discount_pokok'
,
'discount_denda'
,
'discount'
])
try
:
row
,
fields
=
inq
.
get_other_payment_table
(
pay
)
except
AttributeError
:
...
...
@@ -151,18 +181,19 @@ def main(argv=sys.argv):
conf_file
=
option
.
conf
conf
=
ConfigParser
()
conf
.
read
(
conf_file
)
module_name
=
conf
.
get
(
'main'
,
'module'
)
cf
=
dict
(
conf
.
items
(
'main'
))
registry
[
'module_name'
]
=
module_name
=
cf
[
'module'
]
module
=
__import__
(
'sismiop.services.'
+
module_name
)
sub_module
=
getattr
(
module
.
services
,
module_name
)
Inquiry
=
sub_module
.
Inquiry
Reversal
=
sub_module
.
Reversal
db_url
=
c
onf
.
get
(
'main'
,
'db_url'
)
db_url
=
c
f
[
'db_url'
]
engine
=
create_engine
(
db_url
)
engine
.
echo
=
option
.
sql_debug
session_factory
=
sessionmaker
(
bind
=
engine
)
sismiop
.
services
.
base
.
DBSession
=
DBSession
=
session_factory
()
register
(
sismiop
.
services
.
base
.
DBSession
)
persen_denda
=
conf
.
getfloat
(
'main'
,
'persen_denda'
)
persen_denda
=
float
(
cf
[
'persen_denda'
]
)
with
transaction
.
manager
:
inq
=
Inquiry
(
invoice_id
,
persen_denda
,
tgl_bayar
=
tgl_bayar
,
debug
=
True
)
...
...
@@ -184,22 +215,29 @@ def main(argv=sys.argv):
if
not
inq
.
is_available
():
print
(
'Tagihan tidak diperkenankan dibayar melalui jalur ini.'
)
return
tp
=
dict
(
kd_tp
=
conf
.
get
(
'main'
,
'kd_tp'
))
if
conf
.
has_option
(
'main'
,
'kd_kantor'
):
tp
.
update
(
dict
(
kd_kanwil
=
conf
.
get
(
'main'
,
'kd_kanwil'
),
kd_kantor
=
conf
.
get
(
'main'
,
'kd_kantor'
)))
if
conf
.
has_option
(
'main'
,
'kd_kanwil_bank'
):
tp
.
update
(
dict
(
kd_kanwil_bank
=
conf
.
get
(
'main'
,
'kd_kanwil_bank'
),
kd_kppbb_bank
=
conf
.
get
(
'main'
,
'kd_kppbb_bank'
)))
if
conf
.
has_option
(
'main'
,
'kd_bank_tunggal'
):
tp
.
update
(
dict
(
kd_bank_tunggal
=
conf
.
get
(
'main'
,
'kd_bank_tunggal'
),
kd_bank_persepsi
=
conf
.
get
(
'main'
,
'kd_bank_persepsi'
)))
nip
=
conf
.
get
(
'main'
,
'nip_pencatat'
)
pay
=
inq
.
do_payment
(
tp
,
nip
)
show_payment
(
module_name
,
inq
,
pay
)
if
cf
[
'module'
]
==
'sukabumi_kota'
:
tp
=
dict
(
KD_KANWIL_BANK
=
cf
[
'kd_kanwil_bank'
],
KD_KPPBB_BANK
=
cf
[
'kd_kppbb_bank'
],
KD_BANK_TUNGGAL
=
cf
[
'kd_bank_tunggal'
],
KD_BANK_PERSEPSI
=
cf
[
'kd_bank_persepsi'
],
KD_TP
=
cf
[
'kd_tp'
])
else
:
tp
=
dict
(
kd_tp
=
cf
[
'kd_tp'
])
if
cf
.
get
(
'kd_kantor'
):
tp
.
update
(
dict
(
kd_kanwil
=
cf
[
'kd_kanwil'
],
kd_kantor
=
cf
[
'kd_kantor'
]))
if
cf
.
get
(
'kd_kanwil_bank'
):
tp
.
update
(
dict
(
kd_kanwil_bank
=
cf
[
'kd_kanwil_bank'
],
kd_kppbb_bank
=
cf
[
'kd_kppbb_bank'
]))
if
cf
.
get
(
'kd_bank_tunggal'
):
tp
.
update
(
dict
(
kd_bank_tunggal
=
cf
[
'kd_bank_tunggal'
],
kd_bank_persepsi
=
cf
[
'kd_bank_persepsi'
]))
pay
=
inq
.
do_payment
(
tp
,
cf
[
'nip_pencatat'
])
show_payment
(
inq
,
pay
)
if
option
.
reversal
:
rev
=
Reversal
(
invoice_id
)
pay
=
rev
.
payment
...
...
@@ -207,7 +245,7 @@ def main(argv=sys.argv):
print
(
ERR_PAYMENT_NOT_FOUND
)
return
rev
.
do_reversal
()
show_reversal
(
module_name
,
inq
,
pay
)
show_reversal
(
inq
,
pay
)
if
option
.
update_status_bayar
:
if
inq
.
total
==
0
:
if
inq
.
invoice
.
status_pembayaran_sppt
==
'0'
:
...
...
sismiop/services/sukabumi_kota.py
View file @
606e521
from
datetime
import
datetime
from
sqlalchemy
import
func
from
..models.sukabumi_kota
import
(
Objek
,
...
...
@@ -12,7 +13,10 @@ from .default import (
Inquiry
as
BaseInquiry
,
Reversal
as
BaseReversal
,
)
from
.base
import
get_db_session
from
.base
import
(
get_db_session
,
Query
,
)
def
get_nop
(
row
):
...
...
@@ -156,14 +160,63 @@ class Inquiry(BaseInquiry):
def
get_propinsi_model
(
self
):
# Override
return
Propinsi
def
invoice2payment
(
self
):
Payment
=
self
.
get_payment_model
()
q
=
self
.
query_payment
()
q
=
q
.
order_by
(
Payment
.
PEMBAYARAN_SPPT_KE
.
desc
())
return
q
.
first
()
def
do_payment
(
self
,
bank_fields
,
nip_pencatat
):
DBSession
=
get_db_session
()
bayar
=
self
.
invoice2payment
()
if
bayar
:
ke
=
bayar
.
PEMBAYARAN_SPPT_KE
+
1
else
:
ke
=
1
inv
=
self
.
invoice
d
=
dict
(
KD_PROPINSI
=
inv
.
KD_PROPINSI
,
KD_DATI2
=
inv
.
KD_DATI2
,
KD_KECAMATAN
=
inv
.
KD_KECAMATAN
,
KD_KELURAHAN
=
inv
.
KD_KELURAHAN
,
KD_BLOK
=
inv
.
KD_BLOK
,
NO_URUT
=
inv
.
NO_URUT
,
KD_JNS_OP
=
inv
.
KD_JNS_OP
,
THN_PAJAK_SPPT
=
inv
.
THN_PAJAK_SPPT
,
PEMBAYARAN_SPPT_KE
=
ke
,
TGL_REKAM_BYR_SPPT
=
datetime
.
now
(),
TGL_PEMBAYARAN_SPPT
=
self
.
tgl_bayar
,
NIP_REKAM_BYR_SPPT
=
nip_pencatat
,
JML_SPPT_YG_DIBAYAR
=
self
.
total
,
DENDA_SPPT
=
self
.
denda
)
Payment
=
self
.
get_payment_model
()
for
key
,
value
in
bank_fields
.
items
():
d
[
key
]
=
value
bayar
=
Payment
(
**
d
)
DBSession
.
add
(
bayar
)
self
.
invoice
.
STATUS_PEMBAYARAN_SPPT
=
'1'
# Lunas
DBSession
.
add
(
self
.
invoice
)
return
bayar
class
Reversal
(
Inquiry
):
def
__init__
(
self
,
invoice_id
):
Query
.
__init__
(
self
,
invoice_id
)
self
.
payment
=
None
if
not
self
.
invoice
:
return
if
self
.
invoice
.
STATUS_PEMBAYARAN_SPPT
!=
'1'
:
return
self
.
payment
=
self
.
invoice2payment
()
class
Reversal
(
BaseReversal
):
def
get_invoice_model
(
self
):
# Override
return
Sppt
def
get_payment_model
(
self
):
# Override
return
PembayaranSppt
def
do_reversal
(
self
):
DBSession
=
get_db_session
()
self
.
payment
.
JML_SPPT_YG_DIBAYAR
=
self
.
payment
.
DENDA_SPPT
=
0
DBSession
.
add
(
self
.
payment
)
self
.
invoice
.
STATUS_PEMBAYARAN_SPPT
=
'0'
DBSession
.
add
(
self
.
invoice
)
class
AvailableInvoice
(
BaseAvailableInvoice
):
def
get_inquiry_class
(
self
):
# Override
...
...
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