Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Owo Sugiana
/
payment-report
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 38f5b1c2
authored
May 19, 2022
by
Owo Sugiana
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
Bug fixed PBB saat --update-from-date
1 parent
3bf57089
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
1 additions
and
186 deletions
payment_report/scripts/data/conf.csv
payment_report/scripts/pbb.py
payment_report/scripts/pospbb.py
setup.py
payment_report/scripts/data/conf.csv
View file @
38f5b1c
...
...
@@ -18,5 +18,4 @@ pbb payment last date,1-1-2000,pembayaran_sppt.tgl_rekam_byr_sppt terakhir yang
pbb reversal last date,1-1-2000 00:00:00,reversal.tgl terakhir yang diproses
pbb2 payment last id,0,log_iso.id terakhir yang diproses
pbb2 reversal last id,0,log_iso.id terakhir yang diproses
pospbb last id,0,pembayaran_sppt.id terakhir yang diproses
va pbb last id,0,pembayaran_sppt.id terakhir yang diproses
payment_report/scripts/pbb.py
View file @
38f5b1c
...
...
@@ -306,7 +306,7 @@ class App(BaseApp):
found
=
self
.
update_from_date
()
if
not
found
:
break
if
self
.
last_psppt
:
if
self
.
last_psppt
and
self
.
last
:
self
.
update_last
()
def
get_doc_for_reversal
(
self
,
row
):
...
...
payment_report/scripts/pospbb.py
deleted
100644 → 0
View file @
3bf5708
import
sys
from
sqlalchemy
import
(
Column
,
Integer
,
)
import
transaction
from
opensipkd.waktu
import
(
dmyhms
,
create_datetime
,
date_from_str
,
)
from
sismiop.models.default
import
PembayaranSppt
as
BasePsppt
from
sismiop.services.base
import
get_id
from
opensipkd.iso8583.bjb.scripts.common
import
get_module_object
from
..models
import
Pbb
from
.common
import
(
get_iso
,
get_keys
,
BaseApp
,
)
NIP_PENCATAT
=
'888888888'
CHANNEL_KODE
=
'7000'
CHANNEL_NAMA
=
'POSPBB'
LAST_CONF
=
'pospbb last id'
ERR_NOT_FOUND
=
'SPPT ID {invoice_id} tidak ada di sppt'
class
PembayaranSppt
(
BasePsppt
):
__table_args__
=
dict
(
extend_existing
=
True
)
id
=
Column
(
Integer
,
nullable
=
False
)
user_id
=
Column
(
Integer
)
def
get_tgl_bayar
(
row
):
t
=
row
.
tgl_rekam_byr_sppt
return
create_datetime
(
t
.
year
,
t
.
month
,
t
.
day
,
t
.
hour
,
t
.
minute
,
t
.
second
)
class
App
(
BaseApp
):
report_orm
=
Pbb
def
__init__
(
self
,
argv
):
super
()
.
__init__
(
argv
)
if
not
self
.
pid
:
return
self
.
models
=
get_module_object
(
self
.
conf
[
'models'
])
self
.
Sppt
=
self
.
models
.
Sppt
self
.
base_q_psppt
=
self
.
prod_session
.
query
(
PembayaranSppt
)
.
filter_by
(
nip_rekam_byr_sppt
=
NIP_PENCATAT
)
self
.
base_q_sppt
=
self
.
prod_session
.
query
(
self
.
Sppt
)
def
get_sppt
(
self
,
psppt
):
q
=
self
.
base_q_sppt
.
filter_by
(
kd_propinsi
=
psppt
.
kd_propinsi
,
kd_dati2
=
psppt
.
kd_dati2
,
kd_kecamatan
=
psppt
.
kd_kecamatan
,
kd_kelurahan
=
psppt
.
kd_kelurahan
,
kd_blok
=
psppt
.
kd_blok
,
no_urut
=
psppt
.
no_urut
,
kd_jns_op
=
psppt
.
kd_jns_op
,
thn_pajak_sppt
=
psppt
.
thn_pajak_sppt
)
return
q
.
first
()
def
__get_query_psppt
(
self
,
last_id
):
q
=
self
.
base_q_psppt
.
filter
(
PembayaranSppt
.
id
>
last_id
)
return
q
.
order_by
(
PembayaranSppt
.
id
)
def
__log_not_found
(
self
,
sppt_id
):
msg
=
ERR_NOT_FOUND
.
format
(
invoice_id
=
sppt_id
)
self
.
log
.
error
(
msg
)
def
__log_progress
(
self
,
row
,
sppt_id
):
s_tgl
=
dmyhms
(
row
.
tgl_rekam_byr_sppt
)
self
.
log
.
info
(
f
'Tgl bayar {s_tgl}, Nomor bayar {sppt_id}, '
f
'pembayaran ke {row.pembayaran_sppt_ke}, ID {row.id}, '
f
'jml_sppt_yg_dibayar {row.jml_sppt_yg_dibayar}'
)
def
__run_payment
(
self
):
last
=
self
.
get_last_id
(
LAST_CONF
)
q_psppt
=
self
.
__get_query_psppt
(
last
.
as_int
())
found
=
False
for
psppt
in
q_psppt
.
limit
(
1000
):
stan
=
psppt
.
tgl_pembayaran_sppt
.
strftime
(
'
%
y
%
m
%
d'
)
ntb
=
f
'{CHANNEL_NAMA}-{psppt.id}'
if
self
.
get_report
(
stan
,
ntb
):
continue
sppt_id
=
get_id
(
psppt
)
sppt
=
self
.
get_sppt
(
psppt
)
if
not
sppt
:
self
.
__log_not_found
(
sppt_id
)
continue
tgl_bayar
=
get_tgl_bayar
(
psppt
)
user_id
=
str
(
psppt
.
user_id
)
disc
=
psppt
.
discount
or
0
self
.
__log_progress
(
psppt
,
sppt_id
)
rpt
=
Pbb
(
stan
=
stan
,
ntb
=
ntb
,
kd_propinsi
=
psppt
.
kd_propinsi
,
kd_dati2
=
psppt
.
kd_dati2
,
kd_kecamatan
=
psppt
.
kd_kecamatan
,
kd_kelurahan
=
psppt
.
kd_kelurahan
,
kd_blok
=
psppt
.
kd_blok
,
no_urut
=
psppt
.
no_urut
,
kd_jns_op
=
psppt
.
kd_jns_op
,
thn_pajak_sppt
=
psppt
.
thn_pajak_sppt
,
pembayaran_sppt_ke
=
psppt
.
pembayaran_sppt_ke
,
jml_sppt_yg_dibayar
=
psppt
.
jml_sppt_yg_dibayar
,
denda_sppt
=
psppt
.
denda_sppt
,
tgl_pembayaran_sppt
=
psppt
.
tgl_pembayaran_sppt
,
tgl_rekam_byr_sppt
=
psppt
.
tgl_rekam_byr_sppt
,
nm_wp_sppt
=
sppt
.
nm_wp_sppt
,
channel_kode
=
CHANNEL_KODE
,
channel_nama
=
CHANNEL_NAMA
,
user_id
=
user_id
,
pbb_yg_harus_dibayar_sppt
=
sppt
.
pbb_yg_harus_dibayar_sppt
,
tgl_inquiry
=
tgl_bayar
,
discount
=
disc
)
last
.
nilai
=
str
(
psppt
.
id
)
with
transaction
.
manager
:
self
.
rpt_session
.
add
(
rpt
)
self
.
rpt_session
.
add
(
last
)
found
=
True
return
found
def
__update_from_id
(
self
):
q_psppt
=
self
.
__get_query_psppt
(
self
.
last_id
)
found
=
False
for
psppt
in
q_psppt
.
limit
(
1000
):
sppt_id
=
get_id
(
psppt
)
sppt
=
self
.
get_sppt
(
psppt
)
if
not
sppt
:
self
.
__log_not_found
(
sppt_id
)
continue
stan
=
psppt
.
tgl_pembayaran_sppt
.
strftime
(
'
%
y
%
m
%
d'
)
ntb
=
f
'{CHANNEL_NAMA}-{psppt.id}'
tgl_bayar
=
get_tgl_bayar
(
psppt
)
user_id
=
str
(
psppt
.
user_id
)
disc
=
psppt
.
discount
or
0
rpt
=
self
.
get_report
(
stan
,
ntb
)
if
not
rpt
:
rpt
=
Pbb
()
self
.
__log_progress
(
psppt
,
sppt_id
)
d
=
dict
(
stan
=
stan
,
ntb
=
ntb
,
kd_propinsi
=
psppt
.
kd_propinsi
,
kd_dati2
=
psppt
.
kd_dati2
,
kd_kecamatan
=
psppt
.
kd_kecamatan
,
kd_kelurahan
=
psppt
.
kd_kelurahan
,
kd_blok
=
psppt
.
kd_blok
,
no_urut
=
psppt
.
no_urut
,
kd_jns_op
=
psppt
.
kd_jns_op
,
thn_pajak_sppt
=
psppt
.
thn_pajak_sppt
,
pembayaran_sppt_ke
=
psppt
.
pembayaran_sppt_ke
,
jml_sppt_yg_dibayar
=
psppt
.
jml_sppt_yg_dibayar
,
denda_sppt
=
psppt
.
denda_sppt
,
tgl_pembayaran_sppt
=
psppt
.
tgl_pembayaran_sppt
,
tgl_rekam_byr_sppt
=
psppt
.
tgl_rekam_byr_sppt
,
nm_wp_sppt
=
sppt
.
nm_wp_sppt
,
channel_kode
=
CHANNEL_KODE
,
channel_nama
=
CHANNEL_NAMA
,
user_id
=
user_id
,
pbb_yg_harus_dibayar_sppt
=
sppt
.
pbb_yg_harus_dibayar_sppt
,
tgl_inquiry
=
tgl_bayar
,
discount
=
disc
)
rpt
.
from_dict
(
d
)
with
transaction
.
manager
:
self
.
rpt_session
.
add
(
rpt
)
found
=
True
self
.
last_id
=
psppt
.
id
return
found
def
run_payment
(
self
):
# Override
if
self
.
option
.
update_from_id
:
self
.
last_id
=
self
.
option
.
update_from_id
func
=
self
.
__update_from_id
elif
self
.
option
.
update_from_date
:
tgl
=
date_from_str
(
self
.
option
.
update_from_date
)
q
=
self
.
prod_session
.
query
(
PembayaranSppt
)
.
filter
(
PembayaranSppt
.
tgl_rekam_byr_sppt
>=
tgl
)
.
order_by
(
PembayaranSppt
.
tgl_rekam_byr_sppt
)
row
=
q
.
first
()
self
.
last_id
=
row
.
id
-
1
func
=
self
.
__update_from_id
else
:
func
=
self
.
__run_payment
while
True
:
found
=
func
()
if
not
found
:
break
def
main
(
argv
=
sys
.
argv
[
1
:]):
app
=
App
(
argv
)
app
.
run
()
setup.py
View file @
38f5b1c
...
...
@@ -37,7 +37,6 @@ setup(
'payment_report_init_db = payment_report.scripts.common:init_db'
,
'pbb_report = payment_report.scripts.pbb:main'
,
'pbb_json_report = payment_report.scripts.pbb_json:main'
,
'pospbb_report = payment_report.scripts.pospbb:main'
,
'va_pbb_report = payment_report.scripts.va_pbb:main'
,
'bphtb_report = payment_report.scripts.bphtb:main'
,
'bphtb_json_report = payment_report.scripts.bphtb_json:main'
,
...
...
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