Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Owo Sugiana
/
opensipkd-bphtb-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 80c7a59e
authored
Dec 22, 2022
by
Owo Sugiana
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
Tambah Kabupaten Serang
1 parent
61663a90
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
705 additions
and
0 deletions
CHANGES.txt
opensipkd/bphtb/models/serang_kab.py
opensipkd/bphtb/scripts/inquiry.py
opensipkd/bphtb/services/serang_kab/__init__.py
opensipkd/bphtb/services/serang_kab/structure.py
CHANGES.txt
View file @
80c7a59
0.4.4 2022-12-22
0.4.4 2022-12-22
----------------
----------------
- Tambah Kabupaten Serang
- bin/inquiry tambah --ntp dan --tgl-bayar bisa ada jam
- bin/inquiry tambah --ntp dan --tgl-bayar bisa ada jam
0.4.3 2022-03-12
0.4.3 2022-03-12
...
...
opensipkd/bphtb/models/serang_kab.py
0 → 100644
View file @
80c7a59
from
sqlalchemy
import
(
Column
,
String
,
DateTime
,
Float
,
ForeignKey
,
ForeignKeyConstraint
,
UniqueConstraint
,
)
from
sqlalchemy.ext.declarative
import
declarative_base
Base
=
declarative_base
()
class
Kecamatan
(
Base
):
__tablename__
=
'ref_kecamatan'
kd_propinsi
=
Column
(
String
(
2
),
primary_key
=
True
)
kd_dati2
=
Column
(
String
(
2
),
primary_key
=
True
)
kd_kecamatan
=
Column
(
String
(
3
),
primary_key
=
True
)
nm_kecamatan
=
Column
(
String
(
50
),
nullable
=
False
)
nm_adm_kecamatan
=
Column
(
String
(
20
))
__table_args__
=
dict
(
schema
=
'iprotaxref'
)
class
Kelurahan
(
Base
):
__tablename__
=
'ref_kelurahan'
kd_propinsi
=
Column
(
String
(
2
),
primary_key
=
True
)
kd_dati2
=
Column
(
String
(
2
),
primary_key
=
True
)
kd_kecamatan
=
Column
(
String
(
3
),
primary_key
=
True
)
kd_kelurahan
=
Column
(
String
(
3
),
primary_key
=
True
)
# kd_sektor = Column(String(1),
# ForeignKey('iprotaxref.ref_jns_sektor.kd_sektor'), nullable=False)
nm_kelurahan
=
Column
(
String
(
50
),
nullable
=
False
)
no_kelurahan
=
Column
(
Float
)
kd_pos_kelurahan
=
Column
(
String
(
5
))
nm_adm_kelurahan
=
Column
(
String
(
20
))
__table_args__
=
dict
(
schema
=
'iprotaxref'
)
class
Customer
(
Base
):
__tablename__
=
'ref_pejabat'
kd_propinsi
=
Column
(
String
(
2
),
primary_key
=
True
)
kd_dati2
=
Column
(
String
(
2
),
primary_key
=
True
)
kd_pejabat
=
Column
(
String
(
4
),
primary_key
=
True
)
# kd_jns_pejabat = Column(String(1),
# ForeignKey('iprotaxbphtb.ref_jns_pejabat.kd_jns_pejabat'),
# nullable=False)
nm_pejabat
=
Column
(
String
(
50
))
alm_pejabat
=
Column
(
String
(
100
))
kota_pejabat
=
Column
(
String
(
50
))
faksimili_pejabat
=
Column
(
String
(
30
))
telp_pejabat
=
Column
(
String
(
30
))
email_pejabat
=
Column
(
String
(
50
))
npwp
=
Column
(
String
(
20
))
__table_args__
=
dict
(
schema
=
'iprotaxbphtb'
)
class
Subjek
(
Base
):
__tablename__
=
'dat_wp_bphtb'
id_wp_bphtb
=
Column
(
String
(
30
),
primary_key
=
True
)
nm_wp
=
Column
(
String
(
100
),
nullable
=
False
)
jalan_wp
=
Column
(
String
(
100
),
nullable
=
False
)
blok_kav_no_wp
=
Column
(
String
(
15
))
rw_wp
=
Column
(
String
(
50
))
rt_wp
=
Column
(
String
(
3
))
kelurahan_wp
=
Column
(
String
(
50
))
kecamatan_wp
=
Column
(
String
(
50
))
kota_wp
=
Column
(
String
(
50
))
kd_pos_wp
=
Column
(
String
(
5
))
telp_wp
=
Column
(
String
(
30
))
email_wp
=
Column
(
String
(
50
))
npwp
=
Column
(
String
(
20
))
no_domisili
=
Column
(
String
(
30
))
jenis_wp
=
Column
(
Float
)
__table_args__
=
dict
(
schema
=
'iprotaxbphtb'
)
class
Invoice
(
Base
):
__tablename__
=
'dat_ssb_ppat'
kd_propinsi
=
Column
(
String
(
2
),
primary_key
=
True
)
kd_dati2
=
Column
(
String
(
2
),
primary_key
=
True
)
thn_bphtb
=
Column
(
String
(
4
),
primary_key
=
True
)
bln_bphtb
=
Column
(
String
(
2
),
primary_key
=
True
)
tgl_bphtb
=
Column
(
String
(
2
),
primary_key
=
True
)
no_urut_bphtb
=
Column
(
String
(
4
),
primary_key
=
True
)
indeks_bphtb
=
Column
(
String
(
3
),
primary_key
=
True
)
id_penjual_bphtb
=
Column
(
String
(
30
),
ForeignKey
(
Subjek
.
id_wp_bphtb
))
id_pembeli_bphtb
=
Column
(
String
(
30
),
ForeignKey
(
Subjek
.
id_wp_bphtb
),
nullable
=
False
)
# kd_perolehan = Column(String(2),
# ForeignKey('iprotaxbphtb.ref_jns_perolehan.kd_perolehan'),
# nullable=False)
hrg_transaksi
=
Column
(
Float
,
nullable
=
False
)
akumulasi_npop_sblm
=
Column
(
Float
)
npop
=
Column
(
Float
,
nullable
=
False
)
npoptkp
=
Column
(
Float
,
nullable
=
False
)
npopkp
=
Column
(
Float
,
nullable
=
False
)
bphtb_terutang
=
Column
(
Float
,
nullable
=
False
)
dsr_pengenaan
=
Column
(
String
(
2
))
pengenaan
=
Column
(
Float
)
bphtb_hrs_dibayar
=
Column
(
Float
,
nullable
=
False
)
# kd_dsr_setoran = Column(String(2),
# ForeignKey('iprotaxbphtb.ref_dasar_setoran.kd_dsr_setoran'),
# nullable=False)
kd_jns_ketetapan
=
Column
(
String
(
2
))
no_srt_ketetapan
=
Column
(
String
(
30
))
tgl_srt_ketetapan
=
Column
(
DateTime
)
# kd_als_pengurangan = Column(String(2),
# ForeignKey('iprotaxbphtb.ref_als_pengurangan.kd_als_pengurangan'))
pengurangan_sendiri
=
Column
(
Float
)
bphtb_disetor
=
Column
(
Float
,
nullable
=
False
)
kd_pejabat
=
Column
(
String
(
4
),
nullable
=
False
)
kd_bank_tunggal
=
Column
(
String
(
2
))
kd_bank_persepsi
=
Column
(
String
(
2
))
no_trans_bayar
=
Column
(
String
(
20
))
tgl_bayar_ssb_wp
=
Column
(
DateTime
)
tgl_terbit_ssb_wp
=
Column
(
DateTime
,
nullable
=
False
)
tgl_rekam
=
Column
(
DateTime
,
nullable
=
False
)
# nip_perekam = Column(String(9), ForeignKey(Customer.nip))
no_bphtb_offline
=
Column
(
String
(
19
))
no_akta
=
Column
(
String
(
20
))
tgl_akta
=
Column
(
DateTime
)
thn_bphtb_induk
=
Column
(
String
(
4
))
bln_bphtb_induk
=
Column
(
String
(
2
))
tgl_bphtb_induk
=
Column
(
String
(
2
))
no_urut_bphtb_induk
=
Column
(
String
(
4
))
indeks_bphtb_induk
=
Column
(
String
(
3
))
tarif_bphtb
=
Column
(
Float
)
__table_args__
=
(
ForeignKeyConstraint
([
kd_propinsi
,
kd_dati2
,
kd_pejabat
],
[
Customer
.
kd_propinsi
,
Customer
.
kd_dati2
,
Customer
.
kd_pejabat
]),
dict
(
schema
=
'iprotaxbphtb'
))
class
Objek
(
Base
):
__tablename__
=
'dat_op_ssb_ppat'
kd_propinsi
=
Column
(
String
(
2
),
primary_key
=
True
)
kd_dati2
=
Column
(
String
(
2
),
primary_key
=
True
)
thn_bphtb
=
Column
(
String
(
4
),
primary_key
=
True
)
bln_bphtb
=
Column
(
String
(
2
),
primary_key
=
True
)
tgl_bphtb
=
Column
(
String
(
2
),
primary_key
=
True
)
no_urut_bphtb
=
Column
(
String
(
4
),
primary_key
=
True
)
indeks_bphtb
=
Column
(
String
(
3
),
primary_key
=
True
)
kd_kecamatan_op
=
Column
(
String
(
3
),
primary_key
=
True
)
kd_kelurahan_op
=
Column
(
String
(
3
),
primary_key
=
True
)
kd_blok_op
=
Column
(
String
(
3
),
primary_key
=
True
)
no_urut_op
=
Column
(
String
(
4
),
primary_key
=
True
)
kd_jns_op
=
Column
(
String
(
1
),
primary_key
=
True
)
kd_blok_baru
=
Column
(
String
(
3
))
no_urut_baru
=
Column
(
String
(
4
))
kd_jns_op_baru
=
Column
(
String
(
1
))
jalan_op
=
Column
(
String
(
50
))
blok_kav_no_op
=
Column
(
String
(
15
))
rt_op
=
Column
(
String
(
3
))
rw_op
=
Column
(
String
(
50
))
kd_pos_op
=
Column
(
String
(
5
))
luas_tanah
=
Column
(
Float
,
nullable
=
False
)
luas_bangunan
=
Column
(
Float
,
nullable
=
False
)
njop_tanah_m2
=
Column
(
Float
,
nullable
=
False
)
njop_bng_m2
=
Column
(
Float
,
nullable
=
False
)
njop_tanah
=
Column
(
Float
,
nullable
=
False
)
njop_bangunan
=
Column
(
Float
,
nullable
=
False
)
njop_total
=
Column
(
Float
,
nullable
=
False
)
# kd_jns_hak = Column(String(2),
# ForeignKey('iprotaxbphtb.ref_jns_hak.kd_jns_hak'))
kd_jns_hak
=
Column
(
String
(
2
))
kd_kecamatan
=
Column
(
String
(
3
))
kd_kelurahan
=
Column
(
String
(
3
))
no_sertifikat
=
Column
(
String
(
30
))
persen_pengurang_njop
=
Column
(
Float
)
faktor_pengurang_njop
=
Column
(
Float
)
__table_args__
=
(
ForeignKeyConstraint
([
kd_propinsi
,
kd_dati2
,
kd_kecamatan
,
kd_kelurahan
],
[
Kelurahan
.
kd_propinsi
,
Kelurahan
.
kd_dati2
,
Kelurahan
.
kd_kecamatan
,
Kelurahan
.
kd_kelurahan
]),
ForeignKeyConstraint
([
kd_propinsi
,
kd_dati2
,
thn_bphtb
,
bln_bphtb
,
tgl_bphtb
,
no_urut_bphtb
,
indeks_bphtb
],
[
Invoice
.
kd_propinsi
,
Invoice
.
kd_dati2
,
Invoice
.
thn_bphtb
,
Invoice
.
bln_bphtb
,
Invoice
.
tgl_bphtb
,
Invoice
.
no_urut_bphtb
,
Invoice
.
indeks_bphtb
]),
dict
(
schema
=
'iprotaxbphtb'
))
class
Payment
(
Base
):
__tablename__
=
'pembayaran_bphtb'
kd_propinsi
=
Column
(
String
(
2
),
primary_key
=
True
)
kd_dati2
=
Column
(
String
(
2
),
primary_key
=
True
)
thn_bphtb
=
Column
(
String
(
4
),
primary_key
=
True
)
bln_bphtb
=
Column
(
String
(
2
),
primary_key
=
True
)
tgl_bphtb
=
Column
(
String
(
2
),
primary_key
=
True
)
no_urut_bphtb
=
Column
(
String
(
4
),
primary_key
=
True
)
indeks_bphtb
=
Column
(
String
(
3
),
primary_key
=
True
)
kd_pejabat
=
Column
(
String
(
4
))
kd_bank_tunggal
=
Column
(
String
(
2
),
nullable
=
False
)
kd_bank_persepsi
=
Column
(
String
(
2
),
nullable
=
False
)
tgl_pembayaran
=
Column
(
DateTime
,
nullable
=
False
)
no_trans_bayar
=
Column
(
String
(
20
),
nullable
=
False
,
unique
=
True
)
nama_wp
=
Column
(
String
(
100
),
nullable
=
False
)
bphtb_kurang_bayar
=
Column
(
Float
,
nullable
=
False
)
bphtb_sdh_dibayar
=
Column
(
Float
,
nullable
=
False
)
kd_kecamatan_op
=
Column
(
String
(
3
))
kd_kelurahan_op
=
Column
(
String
(
3
))
kd_blok_op
=
Column
(
String
(
3
))
no_urut_op
=
Column
(
String
(
4
))
kd_jns_op
=
Column
(
String
(
1
))
kd_tp
=
Column
(
String
(
2
))
user_bank_rekam
=
Column
(
String
(
50
),
nullable
=
False
)
nm_penyetor
=
Column
(
String
(
50
),
nullable
=
False
)
kd_sumber_data
=
Column
(
String
(
1
),
nullable
=
False
)
no_transaksi_byr_bank
=
Column
(
String
(
30
))
# iso_message_id = Column(Float,
# ForeignKey('iprotaxiso.iprotax_iso_msg_log.id_message_log'))
tgl_rekon_bayar
=
Column
(
DateTime
)
no_transaksi_byr
=
Column
(
String
(
20
))
tgl_rekam_byr
=
Column
(
DateTime
)
__table_args__
=
(
dict
(
schema
=
'iprotaxbphtb'
))
class
LapPpat
(
Base
):
__tablename__
=
'dat_lap_ppat'
kd_propinsi
=
Column
(
String
(
2
),
primary_key
=
True
)
kd_dati2
=
Column
(
String
(
2
),
primary_key
=
True
)
thn_bphtb
=
Column
(
String
(
4
),
primary_key
=
True
)
bln_bphtb
=
Column
(
String
(
2
),
primary_key
=
True
)
tgl_bphtb
=
Column
(
String
(
2
),
primary_key
=
True
)
no_urut_bphtb
=
Column
(
String
(
4
),
primary_key
=
True
)
indeks_bphtb
=
Column
(
String
(
3
),
primary_key
=
True
)
kd_pejabat
=
Column
(
String
(
4
),
nullable
=
False
)
# id_wp_bphtb = Column(String(30),
# ForeignKey('iprotaxbphtb.dat_wp_bphtb.id_wp_bphtb'), nullable=False)
# id_penjual_bphtb = Column(String(30),
# ForeignKey('iprotaxbphtb.dat_wp_bphtb.id_wp_bphtb'))
kd_kecamatan_op
=
Column
(
String
(
3
))
kd_kelurahan_op
=
Column
(
String
(
3
))
kd_blok_op
=
Column
(
String
(
3
))
no_urut_op
=
Column
(
String
(
4
))
kd_jns_op
=
Column
(
String
(
1
))
jalan_op
=
Column
(
String
(
50
))
blok_kav_no_op
=
Column
(
String
(
15
))
rw_op
=
Column
(
String
(
50
))
rt_op
=
Column
(
String
(
3
))
tgl_setor_ssp
=
Column
(
DateTime
)
ssp_disetor
=
Column
(
Float
)
luas_bumi
=
Column
(
Float
,
nullable
=
False
)
luas_bng
=
Column
(
Float
,
nullable
=
False
)
njop_bumi_m2
=
Column
(
Float
,
nullable
=
False
)
njop_bng_m2
=
Column
(
Float
,
nullable
=
False
)
# kd_perolehan = Column(String(2),
# ForeignKey('iprotaxbphtb.ref_jns_perolehan.kd_perolehan'),
# nullable=False)
# kd_jns_hak = Column(String(2),
# ForeignKey('iprotaxbphtb.ref_jns_hak.kd_jns_hak'))
no_sertifikat
=
Column
(
String
(
30
))
hrg_transaksi
=
Column
(
Float
,
nullable
=
False
)
tgl_ssb_ppat
=
Column
(
DateTime
,
nullable
=
False
)
bphtb_disetor
=
Column
(
Float
,
nullable
=
False
)
no_akta
=
Column
(
String
(
20
))
tgl_akta
=
Column
(
DateTime
)
tgl_rekam
=
Column
(
DateTime
,
nullable
=
False
)
keterangan_ppat
=
Column
(
String
(
255
))
user_rekam
=
Column
(
String
(
50
))
__table_args__
=
(
ForeignKeyConstraint
([
kd_propinsi
,
kd_dati2
,
kd_pejabat
],
[
Customer
.
kd_propinsi
,
Customer
.
kd_dati2
,
Customer
.
kd_pejabat
]),
dict
(
schema
=
'iprotaxbphtb'
))
class
Skbkb
(
Base
):
__tablename__
=
'dat_skbkb'
kd_propinsi
=
Column
(
String
(
2
),
primary_key
=
True
)
kd_dati2
=
Column
(
String
(
2
),
primary_key
=
True
)
thn_bphtb
=
Column
(
String
(
4
),
primary_key
=
True
)
bln_bphtb
=
Column
(
String
(
2
),
primary_key
=
True
)
tgl_bphtb
=
Column
(
String
(
2
),
primary_key
=
True
)
no_urut_bphtb
=
Column
(
String
(
4
),
primary_key
=
True
)
indeks_bphtb
=
Column
(
String
(
3
),
primary_key
=
True
)
no_skbkb
=
Column
(
String
(
30
),
nullable
=
False
)
tgl_skbkb
=
Column
(
DateTime
,
nullable
=
False
)
tgl_jth_tempo
=
Column
(
DateTime
)
pokok_stb
=
Column
(
Float
)
pengurangan
=
Column
(
Float
)
pokok_skblb_skpkb
=
Column
(
Float
)
bphtb_total
=
Column
(
Float
)
bphtb_krg_bayar
=
Column
(
Float
)
jml_bln_bunga
=
Column
(
Float
)
jml_bunga
=
Column
(
Float
)
jml_bphtb_krg_bayar
=
Column
(
Float
)
tgl_rekam
=
Column
(
DateTime
,
nullable
=
False
)
# nip_perekam = Column(String(9), ForeignKey('iprotaxref.pegawai.nip'),
# nullable=False)
thn_bphtb_terbit
=
Column
(
String
(
4
))
bln_bphtb_terbit
=
Column
(
String
(
2
))
tgl_bphtb_terbit
=
Column
(
String
(
2
))
no_urut_bphtb_terbit
=
Column
(
String
(
4
))
indeks_bphtb_terbit
=
Column
(
String
(
3
))
status_pembayaran
=
Column
(
String
(
1
))
status_pembatalan
=
Column
(
Float
)
no_pelayanan_pembatalan
=
Column
(
String
(
11
))
__table_args__
=
(
dict
(
schema
=
'iprotaxbphtb'
))
class
SsbWp
(
Base
):
__tablename__
=
'dat_ssb_wp'
kd_propinsi
=
Column
(
String
(
2
),
primary_key
=
True
)
kd_dati2
=
Column
(
String
(
2
),
primary_key
=
True
)
thn_bphtb
=
Column
(
String
(
4
),
primary_key
=
True
)
bln_bphtb
=
Column
(
String
(
2
),
primary_key
=
True
)
tgl_bphtb
=
Column
(
String
(
2
),
primary_key
=
True
)
no_urut_bphtb
=
Column
(
String
(
4
),
primary_key
=
True
)
indeks_bphtb
=
Column
(
String
(
3
),
primary_key
=
True
)
# id_penjual_bphtb = Column(String(30),
# ForeignKey('iprotaxbphtb.dat_wp_bphtb.id_wp_bphtb'))
# id_pembeli_bphtb = Column(String(30),
# ForeignKey('iprotaxbphtb.dat_wp_bphtb.id_wp_bphtb'), nullable=False)
# kd_perolehan = Column(String(2),
# ForeignKey('iprotaxbphtb.ref_jns_perolehan.kd_perolehan'),
# nullable=False)
hrg_transaksi
=
Column
(
Float
,
nullable
=
False
)
akumulasi_npop_sblm
=
Column
(
Float
)
npop
=
Column
(
Float
,
nullable
=
False
)
npoptkp
=
Column
(
Float
,
nullable
=
False
)
npopkp
=
Column
(
Float
,
nullable
=
False
)
bphtb_terutang
=
Column
(
Float
,
nullable
=
False
)
dsr_pengenaan
=
Column
(
String
(
2
))
pengenaan
=
Column
(
Float
)
bphtb_hrs_dibayar
=
Column
(
Float
,
nullable
=
False
)
# kd_dsr_setoran = Column(String(2),
# ForeignKey('iprotaxbphtb.ref_dasar_setoran.kd_dsr_setoran'),
# nullable=False)
kd_jns_ketetapan
=
Column
(
String
(
2
))
no_srt_ketetapan
=
Column
(
String
(
30
))
tgl_srt_ketetapan
=
Column
(
DateTime
)
# kd_als_pengurangan = Column(String(2),
# ForeignKey('iprotaxbphtb.ref_als_pengurangan.kd_als_pengurangan'))
pengurangan_sendiri
=
Column
(
Float
)
bphtb_disetor
=
Column
(
Float
,
nullable
=
False
)
kd_pejabat
=
Column
(
String
(
4
))
kd_bank_tunggal
=
Column
(
String
(
2
))
kd_bank_persepsi
=
Column
(
String
(
2
))
no_trans_bayar
=
Column
(
String
(
20
))
tgl_bayar_ssb_wp
=
Column
(
DateTime
)
tgl_terbit_ssb_wp
=
Column
(
DateTime
,
nullable
=
False
)
tgl_rekam
=
Column
(
DateTime
,
nullable
=
False
)
# nip_perekam = Column(String(9),
# ForeignKey('iprotaxref.pegawai.nip'), nullable=False)
no_akta
=
Column
(
String
(
20
))
tgl_akta
=
Column
(
DateTime
)
thn_bphtb_induk
=
Column
(
String
(
4
))
bln_bphtb_induk
=
Column
(
String
(
2
))
tgl_bphtb_induk
=
Column
(
String
(
2
))
no_urut_bphtb_induk
=
Column
(
String
(
4
))
indeks_bphtb_induk
=
Column
(
String
(
3
))
tarif_bphtb
=
Column
(
Float
)
__table_args__
=
(
dict
(
schema
=
'iprotaxbphtb'
))
opensipkd/bphtb/scripts/inquiry.py
View file @
80c7a59
...
@@ -12,6 +12,8 @@ help_tgl_bayar = 'format dd-mm-yyyy'
...
@@ -12,6 +12,8 @@ help_tgl_bayar = 'format dd-mm-yyyy'
def
show_val
(
label
,
value
):
def
show_val
(
label
,
value
):
if
value
is
None
:
value
=
''
print
(
'{}: {}'
.
format
(
label
,
value
))
print
(
'{}: {}'
.
format
(
label
,
value
))
...
...
opensipkd/bphtb/services/serang_kab/__init__.py
0 → 100644
View file @
80c7a59
from
datetime
import
datetime
from
sqlalchemy
import
func
from
opensipkd.hitung
import
(
hitung_denda
,
round_up
,
)
from
opensipkd.string
import
FixLength
from
opensipkd.string.money
import
thousand
from
opensipkd.string.transaction_id
import
TransactionID
from
opensipkd.bphtb.structure
import
NOP
from
opensipkd.bphtb.models.serang_kab
import
(
Kecamatan
,
Kelurahan
,
Subjek
,
Objek
,
Invoice
,
Payment
,
Customer
,
LapPpat
,
Skbkb
,
SsbWp
,
)
from
..base
import
(
AvailableInvoice
as
BaseAvailableInvoice
,
get_db_session
,
)
from
.structure
import
(
INVOICE_ID
,
INVOICE_ID_LENGTH
,
)
class
NTP
(
TransactionID
):
def
is_found
(
self
,
tid
):
# Override
db_session
=
get_db_session
()
q
=
db_session
.
query
(
Payment
)
.
filter_by
(
no_trans_bayar
=
tid
)
return
q
.
first
()
class
Common
:
def
__init__
(
self
,
invoice_id
):
self
.
invoice_id
=
invoice_id
self
.
invoice
=
None
if
not
self
.
validate_invoice_id
():
return
self
.
invoice_struct
=
FixLength
(
INVOICE_ID
)
self
.
invoice_struct
.
set_raw
(
self
.
invoice_id
)
self
.
invoice
=
self
.
get_invoice
()
def
validate_invoice_id
(
self
):
return
len
(
self
.
invoice_id
)
==
INVOICE_ID_LENGTH
def
filter_invoice
(
self
,
q
):
return
q
.
filter_by
(
thn_bphtb
=
self
.
invoice_struct
[
'thn'
],
bln_bphtb
=
self
.
invoice_struct
[
'bln'
],
tgl_bphtb
=
self
.
invoice_struct
[
'tgl'
],
no_urut_bphtb
=
self
.
invoice_struct
[
'no_urut'
])
def
query_invoice
(
self
,
orm
=
Invoice
):
db_session
=
get_db_session
()
q
=
db_session
.
query
(
orm
)
return
self
.
filter_invoice
(
q
)
def
get_invoice
(
self
,
orm
=
Invoice
):
q
=
self
.
query_invoice
(
orm
)
return
q
.
first
()
def
get_payment
(
self
):
return
self
.
get_invoice
(
Payment
)
def
update_status
(
self
,
tgl_bayar
):
db_session
=
get_db_session
()
self
.
invoice
.
tgl_bayar_ssb_wp
=
tgl_bayar
db_session
.
add
(
self
.
invoice
)
lap_ppat
=
self
.
get_invoice
(
LapPpat
)
if
lap_ppat
:
lap_ppat
.
tgl_setor_ssp
=
tgl_bayar
db_session
.
add
(
lap_ppat
)
skbkb
=
self
.
get_invoice
(
Skbkb
)
if
skbkb
:
skbkb
.
status_pembayaran
=
tgl_bayar
and
'1'
or
'0'
db_session
.
add
(
skbkb
)
ssb_wp
=
self
.
get_invoice
(
SsbWp
)
if
ssb_wp
:
ssb_wp
.
tgl_bayar_ssb_wp
=
tgl_bayar
db_session
.
add
(
ssb_wp
)
class
Inquiry
(
Common
):
def
__init__
(
self
,
invoice_id
,
conf
,
tgl_bayar
=
None
):
super
()
.
__init__
(
invoice_id
)
if
not
self
.
invoice
:
return
self
.
conf
=
conf
self
.
tgl_bayar
=
tgl_bayar
or
datetime
.
now
()
self
.
subjek
=
self
.
get_subjek
()
self
.
objek
=
self
.
get_objek
()
self
.
notaris
=
self
.
get_notaris
()
self
.
kelurahan
=
self
.
get_kelurahan
()
self
.
kecamatan
=
self
.
get_kecamatan
()
self
.
nop_struct
=
FixLength
(
NOP
)
self
.
nop_struct
.
from_dict
({
'Propinsi'
:
self
.
objek
.
kd_propinsi
,
'Kabupaten'
:
self
.
objek
.
kd_dati2
,
'Kecamatan'
:
self
.
objek
.
kd_kecamatan_op
,
'Kelurahan'
:
self
.
objek
.
kd_kelurahan_op
,
'Blok'
:
self
.
objek
.
kd_blok_op
,
'Urut'
:
self
.
objek
.
no_urut_op
,
'Jenis'
:
self
.
objek
.
kd_jns_op
,
})
self
.
hitung
()
def
hitung
(
self
):
self
.
total_bayar
=
self
.
get_payment_amount
()
self
.
tagihan
=
self
.
invoice
.
bphtb_hrs_dibayar
-
self
.
total_bayar
self
.
total
=
self
.
denda
=
self
.
discount
=
0
if
self
.
tagihan
<
1
:
self
.
tagihan
=
self
.
total
=
0
else
:
self
.
tagihan
=
self
.
total
=
round_up
(
self
.
tagihan
)
def
get_subjek
(
self
):
db_session
=
get_db_session
()
q
=
db_session
.
query
(
Subjek
)
.
filter_by
(
id_wp_bphtb
=
self
.
invoice
.
id_pembeli_bphtb
)
return
q
.
first
()
def
get_objek
(
self
):
db_session
=
get_db_session
()
q
=
db_session
.
query
(
Objek
)
.
filter_by
(
thn_bphtb
=
self
.
invoice
.
thn_bphtb
,
bln_bphtb
=
self
.
invoice
.
bln_bphtb
,
tgl_bphtb
=
self
.
invoice
.
tgl_bphtb
,
no_urut_bphtb
=
self
.
invoice
.
no_urut_bphtb
)
return
q
.
first
()
def
get_nop
(
self
):
return
self
.
invoice
and
self
.
nop_struct
.
get_raw
()
or
''
def
get_profile
(
self
):
db_session
=
get_db_session
()
q
=
db_session
.
query
(
DetailSpt
)
.
filter_by
(
t_idspt
=
self
.
invoice
.
t_idspt
)
return
q
.
first
()
def
get_kecamatan
(
self
):
db_session
=
get_db_session
()
q
=
db_session
.
query
(
Kecamatan
)
.
filter_by
(
kd_propinsi
=
self
.
objek
.
kd_propinsi
,
kd_dati2
=
self
.
objek
.
kd_dati2
,
kd_kecamatan
=
self
.
objek
.
kd_kecamatan_op
)
return
q
.
first
()
def
get_kelurahan
(
self
):
db_session
=
get_db_session
()
q
=
db_session
.
query
(
Kelurahan
)
.
filter_by
(
kd_propinsi
=
self
.
objek
.
kd_propinsi
,
kd_dati2
=
self
.
objek
.
kd_dati2
,
kd_kecamatan
=
self
.
objek
.
kd_kecamatan_op
,
kd_kelurahan
=
self
.
objek
.
kd_kelurahan_op
)
return
q
.
first
()
def
get_notaris
(
self
):
db_session
=
get_db_session
()
q
=
db_session
.
query
(
Customer
)
.
filter_by
(
kd_pejabat
=
self
.
invoice
.
kd_pejabat
)
return
q
.
first
()
def
get_luas_tanah
(
self
):
return
int
(
self
.
objek
.
luas_tanah
)
def
get_luas_bangunan
(
self
):
return
int
(
self
.
objek
.
luas_bangunan
)
def
get_npop
(
self
):
return
self
.
invoice
.
npop
def
get_jenis_perolehan_hak
(
self
):
return
self
.
objek
.
kd_jns_hak
def
get_nama_notaris
(
self
):
if
self
.
notaris
:
return
self
.
notaris
.
nm_pejabat
.
upper
()
def
get_nama
(
self
):
# Nama Wajib Pajak
return
self
.
subjek
.
nm_wp
def
get_npwp
(
self
):
return
self
.
subjek
.
npwp
def
get_alamat_wp
(
self
):
return
self
.
subjek
.
jalan_wp
def
get_alamat_op
(
self
):
return
self
.
objek
.
jalan_op
def
get_kota_op
(
self
):
pass
def
get_kota_wp
(
self
):
return
self
.
subjek
.
kota_wp
def
get_kelurahan_wp
(
self
):
return
self
.
subjek
.
kelurahan_wp
def
get_kecamatan_wp
(
self
):
return
self
.
subjek
.
kecamatan_wp
def
get_rt_wp
(
self
):
return
self
.
subjek
.
rt_wp
def
get_rw_wp
(
self
):
return
self
.
subjek
.
rw_wp
def
get_kode_pos_wp
(
self
):
return
self
.
subjek
.
kd_pos_wp
def
get_identitas_wp
(
self
):
return
self
.
invoice
.
wp_identitas
def
get_kelurahan_op
(
self
):
return
self
.
kelurahan
and
self
.
kelurahan
.
nm_kelurahan
or
None
def
get_kecamatan_op
(
self
):
return
self
.
kecamatan
and
self
.
kecamatan
.
nm_kecamatan
or
None
def
get_tahun
(
self
):
return
self
.
invoice
.
thn_bphtb
def
get_jatuh_tempo
(
self
):
pass
def
get_payment_amount
(
self
):
db_session
=
get_db_session
()
q
=
db_session
.
query
(
func
.
sum
(
Payment
.
bphtb_sdh_dibayar
)
.
label
(
'total_bayar'
))
q
=
self
.
filter_invoice
(
q
)
row
=
q
.
first
()
return
row
.
total_bayar
or
0
def
do_payment
(
self
,
ntb
,
user_bank
=
'REKON'
):
db_session
=
get_db_session
()
ntp_generator
=
NTP
()
ntp
=
ntp_generator
.
create
()
self
.
update_status
(
self
.
tgl_bayar
)
pay
=
Payment
(
kd_propinsi
=
self
.
invoice
.
kd_propinsi
,
kd_dati2
=
self
.
invoice
.
kd_dati2
,
thn_bphtb
=
self
.
invoice
.
thn_bphtb
,
bln_bphtb
=
self
.
invoice
.
bln_bphtb
,
tgl_bphtb
=
self
.
invoice
.
tgl_bphtb
,
no_urut_bphtb
=
self
.
invoice
.
no_urut_bphtb
,
indeks_bphtb
=
self
.
invoice
.
indeks_bphtb
,
# kd_pejabat = Column(String(4))
kd_bank_tunggal
=
self
.
conf
[
'kd_bank_tunggal'
],
kd_bank_persepsi
=
self
.
conf
[
'kd_bank_persepsi'
],
kd_tp
=
self
.
conf
[
'kd_tp'
],
tgl_pembayaran
=
self
.
tgl_bayar
,
no_trans_bayar
=
ntp
,
nama_wp
=
self
.
get_nama
(),
bphtb_kurang_bayar
=
0
,
bphtb_sdh_dibayar
=
self
.
total
,
kd_kecamatan_op
=
self
.
objek
.
kd_kecamatan_op
,
kd_kelurahan_op
=
self
.
objek
.
kd_kelurahan_op
,
kd_blok_op
=
self
.
objek
.
kd_blok_op
,
no_urut_op
=
self
.
objek
.
no_urut_op
,
kd_jns_op
=
self
.
objek
.
kd_jns_op
,
user_bank_rekam
=
user_bank
,
nm_penyetor
=
'ISOUSER01'
,
kd_sumber_data
=
'4'
,
no_transaksi_byr_bank
=
ntb
,
# iso_message_id = Column(Float,
# ForeignKey('iprotaxiso.iprotax_iso_msg_log.id_message_log'))
# tgl_rekon_bayar = Column(DateTime)
# no_transaksi_byr = Column(String(20))
tgl_rekam_byr
=
self
.
tgl_bayar
)
db_session
.
add
(
pay
)
db_session
.
flush
()
return
pay
def
is_available
(
self
):
return
True
class
Reversal
(
Common
):
def
__init__
(
self
,
invoice_id
):
super
()
.
__init__
(
invoice_id
)
self
.
payment
=
None
if
not
self
.
invoice
:
return
self
.
payment
=
self
.
get_payment
()
def
do_reversal
(
self
):
# Override
db_session
=
get_db_session
()
self
.
update_status
(
None
)
q
=
self
.
query_invoice
(
Payment
)
q
.
delete
()
db_session
.
flush
()
class
AvailableInvoice
(
BaseAvailableInvoice
):
def
get_query
(
self
):
db_session
=
get_db_session
()
q
=
db_session
.
query
(
Invoice
)
.
filter
(
Invoice
.
thn_bphtb
==
Objek
.
thn_bphtb
,
Invoice
.
bln_bphtb
==
Objek
.
bln_bphtb
,
Invoice
.
tgl_bphtb
==
Objek
.
tgl_bphtb
,
Invoice
.
no_urut_bphtb
==
Objek
.
no_urut_bphtb
,
Invoice
.
tgl_bayar_ssb_wp
.
__eq__
(
None
))
if
self
.
option
.
tahun
:
q
=
q
.
filter_by
(
thn_bphtb
=
self
.
option
.
tahun
)
if
self
.
option
.
max_nominal
:
q
=
q
.
filter
(
Invoice
.
bphtb_hrs_dibayar
<=
self
.
option
.
max_nominal
)
if
self
.
option
.
min_nominal
:
q
=
q
.
filter
(
Invoice
.
bphtb_hrs_dibayar
>=
self
.
option
.
min_nominal
)
return
q
.
order_by
(
Invoice
.
tgl_rekam
.
desc
())
def
get_message
(
self
,
row
):
invoice_id_struct
=
FixLength
(
INVOICE_ID
)
invoice_id_struct
[
'thn'
]
=
row
.
thn_bphtb
invoice_id_struct
[
'bln'
]
=
row
.
bln_bphtb
invoice_id_struct
[
'tgl'
]
=
row
.
tgl_bphtb
invoice_id_struct
[
'no_urut'
]
=
row
.
no_urut_bphtb
invoice_id
=
invoice_id_struct
.
get_raw
()
inq
=
Inquiry
(
invoice_id
,
self
.
conf
)
if
inq
.
total
<
1
:
return
total
=
thousand
(
inq
.
total
)
.
rjust
(
11
)
return
f
'{invoice_id} Rp {total}'
opensipkd/bphtb/services/serang_kab/structure.py
0 → 100644
View file @
80c7a59
INVOICE_ID
=
[
[
'thn'
,
4
,
'N'
],
[
'bln'
,
2
,
'N'
],
[
'tgl'
,
2
,
'N'
],
[
'no_urut'
,
4
,
'N'
],
]
INVOICE_ID_LENGTH
=
0
for
nama
,
size
,
tipe
in
INVOICE_ID
:
INVOICE_ID_LENGTH
+=
size
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