Commit a96769b0 by Owo Sugiana

Kabupaten Serang tambah kurang bayar

1 parent 80c7a59e
......@@ -77,6 +77,57 @@ class Subjek(Base):
class Invoice(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(Subjek.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))
# 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 SsbPpat(Base):
__tablename__ = 'dat_ssb_ppat'
kd_propinsi = Column(String(2), primary_key=True)
kd_dati2 = Column(String(2), primary_key=True)
......@@ -134,57 +185,6 @@ class Invoice(Base):
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)
......@@ -217,12 +217,11 @@ class Payment(Base):
tgl_rekon_bayar = Column(DateTime)
no_transaksi_byr = Column(String(20))
tgl_rekam_byr = Column(DateTime)
__table_args__ = (
dict(schema='iprotaxbphtb'))
__table_args__ = dict(schema='iprotaxbphtb')
class LapPpat(Base):
__tablename__ = 'dat_lap_ppat'
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)
......@@ -230,49 +229,33 @@ class LapPpat(Base):
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)
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)
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'))
# 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 Skbkb(Base):
__tablename__ = 'dat_skbkb'
class SkbkbT(Base):
__tablename__ = 'dat_skbkbt'
kd_propinsi = Column(String(2), primary_key=True)
kd_dati2 = Column(String(2), primary_key=True)
thn_bphtb = Column(String(4), primary_key=True)
......@@ -280,8 +263,8 @@ class Skbkb(Base):
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)
no_skbkbt = Column(String(30), nullable=False)
tgl_skbkbt = Column(DateTime, nullable=False)
tgl_jth_tempo = Column(DateTime)
pokok_stb = Column(Float)
pengurangan = Column(Float)
......@@ -300,10 +283,11 @@ class Skbkb(Base):
no_urut_bphtb_terbit = Column(String(4))
indeks_bphtb_terbit = Column(String(3))
status_pembayaran = Column(String(1))
atas_lapor_wp = Column(Float)
keterangan = Column(String(255))
status_pembatalan = Column(Float)
no_pelayanan_pembatalan = Column(String(11))
__table_args__ = (
dict(schema='iprotaxbphtb'))
__table_args__ = dict(schema='iprotaxbphtb')
class SsbWp(Base):
......@@ -358,5 +342,142 @@ class SsbWp(Base):
no_urut_bphtb_induk = Column(String(4))
indeks_bphtb_induk = Column(String(3))
tarif_bphtb = Column(Float)
__table_args__ = dict(schema='iprotaxbphtb')
class TelitiSsb(Base):
__tablename__ = 'daftar_teliti_ssb'
kd_propinsi = Column(String(2), primary_key=True)
kd_dati2 = Column(String(2), primary_key=True)
kd_dinas = Column(String(2), primary_key=True)
kd_kppd = Column(String(2), primary_key=True)
no_pendaftaran = Column(String(21), primary_key=True)
thn_bphtb = Column(String(4))
bln_bphtb = Column(String(2))
tgl_bphtb = Column(String(2))
no_urut_bphtb = Column(String(4))
indeks_bphtb = Column(String(3))
tgl_daftar = Column(DateTime, nullable=False)
# id_wp_bphtb = Column(String(30),
# ForeignKey('iprotaxbphtb.dat_wp_bphtb.id_wp_bphtb'), 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))
alm_op = Column(String(100))
lamp_sspd = Column(Float)
lamp_tunggakan_pbb = Column(Float)
lamp_sppt = Column(Float)
lamp_ktp_wp = Column(Float)
lamp_ssp = Column(Float)
lamp_surat_kuasa = Column(Float)
lamp_akte_risalah = Column(Float)
lamp_foto_objek_pajak = Column(Float)
lamp_kartu_keluarga = Column(Float)
lamp_ktp_kuasa = Column(Float)
lamp_silsilah_waris = Column(Float)
lamp_kwitansi = Column(Float)
lamp_surat_pernyataan = Column(Float)
kd_pejabat = Column(String(4))
diteruskan_ke = Column(String(1))
nip_perekam = Column(String(50), nullable=False)
tgl_rekam = Column(DateTime, nullable=False)
status_dokumen = Column(String(2), nullable=False)
catatan_pendaftaran = Column(String(255))
kd_sumber_data = Column(String(1), nullable=False)
lamp_risalah_lelang = Column(Float)
lamp_spop_lspop = Column(Float)
lamp_lain_lain = Column(Float)
status_bpn = Column(String(1))
jenis_mutasi = Column(String(1))
id_penjual_bphtb = Column(String(30))
lamp_bphtb_01 = Column(Float)
lamp_bphtb_02 = Column(Float)
lamp_bphtb_03 = Column(Float)
lamp_bphtb_04 = Column(Float)
lamp_bphtb_05 = Column(Float)
lamp_bphtb_06 = Column(Float)
lamp_bphtb_07 = Column(Float)
lamp_bphtb_08 = Column(Float)
lamp_bphtb_09 = Column(Float)
lamp_bphtb_10 = Column(Float)
lamp_bphtb_11 = Column(Float)
lamp_bphtb_12 = Column(Float)
lamp_bphtb_13 = Column(Float)
lamp_bphtb_14 = Column(Float)
lamp_bphtb_15 = Column(Float)
lamp_bphtb_16 = Column(Float)
jml_anggota_aphb = Column(Float)
is_citigov = Column(Float, nullable=False)
__table_args__ = (
UniqueConstraint(
kd_propinsi, kd_dati2, thn_bphtb, bln_bphtb, tgl_bphtb,
no_urut_bphtb, indeks_bphtb),
dict(schema='iprotaxbphtb'))
class TelitiSsbDetail(Base):
__tablename__ = 'daftar_teliti_ssb_detail'
kd_propinsi = Column(String(2), primary_key=True)
kd_dati2 = Column(String(2), primary_key=True)
kd_dinas = Column(String(2), primary_key=True)
kd_kppd = Column(String(2), primary_key=True)
no_pendaftaran = Column(String(21), primary_key=True)
# kd_perolehan = Column(String(2),
# ForeignKey('iprotaxbphtb.ref_jns_perolehan.kd_perolehan'))
# kd_jns_hak = Column(String(2),
# ForeignKey('iprotaxbphtb.ref_jns_hak.kd_jns_hak'))
dsr_pengenaan = Column(String(2))
luas_tanah = Column(Float, nullable=False)
luas_bangunan = Column(Float, nullable=False)
njop_total = Column(Float, nullable=False)
hrg_transaksi = Column(Float, nullable=False)
npoptkp = Column(Float, nullable=False)
bphtb_hrs_dibayar = Column(Float, nullable=False)
njop_tanah_m2 = Column(Float, nullable=False)
njop_bng_m2 = Column(Float, nullable=False)
pengenaan = Column(Float)
tarif_bphtb = Column(Float)
persen_pengurang_njop = Column(Float)
faktor_pengurang_njop = Column(Float)
__table_args__ = dict(schema='iprotaxbphtb')
class Verifikasi(Base):
__tablename__ = 'dat_verifikasi_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)
tgl_bayar_ssb = Column(DateTime, nullable=False)
tgl_terbit_ssb = Column(DateTime)
id_wp_bphtb = Column(String(30))
luas_tanah = Column(Float)
luas_bangunan = Column(Float)
njop_tanah_m2 = Column(Float)
njop_bng_m2 = Column(Float)
njop_tanah = Column(Float)
njop_bangunan = Column(Float)
njop_total = Column(Float)
hrg_transaksi = Column(Float)
akumulasi_npop_sblm = Column(Float)
npop = Column(Float)
npoptkp = Column(Float, nullable=False)
npopkp = Column(Float)
bphtb_terutang = Column(Float, nullable=False)
dsr_pengenaan = Column(String(2))
pengenaan = Column(Float)
bphtb_hrs_dibayar = Column(Float)
pengurangan_sendiri = Column(Float)
bphtb_disetor = Column(Float, nullable=False)
status_verifikasi = Column(Float)
bphtb_verifikasi = Column(Float, nullable=False)
tgl_rekam = Column(DateTime, nullable=False)
nip_perekam = Column(String(9), nullable=False)
nop_pbb = Column(String(18))
kd_pejabat = Column(String(4), nullable=False)
__table_args__ = dict(schema='iprotaxbphtb')
......@@ -4,6 +4,7 @@ from .common import init
help_skpdkb = 'Tampilkan kode bayar SKPDKB'
help_skpdkb_t = 'Tampilkan kode bayar SKPDKB Tambahan'
def get_option(argv):
......@@ -15,6 +16,8 @@ def get_option(argv):
pars.add_argument('--max-nominal', type=int)
pars.add_argument('--tahun', type=int)
pars.add_argument('--skpdkb', action='store_true', help=help_skpdkb)
pars.add_argument(
'--skpdkb-tambahan', action='store_true', help=help_skpdkb_t)
pars.add_argument('--belum-jatuh-tempo', action='store_true')
pars.add_argument('--lewat-jatuh-tempo', action='store_true')
pars.add_argument(
......
......@@ -12,13 +12,16 @@ from opensipkd.bphtb.models.serang_kab import (
Kecamatan,
Kelurahan,
Subjek,
Objek,
Invoice,
Payment,
Customer,
LapPpat,
SsbPpat,
Skbkb,
SkbkbT,
SsbWp,
TelitiSsb,
TelitiSsbDetail,
Verifikasi,
)
from ..base import (
AvailableInvoice as BaseAvailableInvoice,
......@@ -46,6 +49,19 @@ class Common:
self.invoice_struct = FixLength(INVOICE_ID)
self.invoice_struct.set_raw(self.invoice_id)
self.invoice = self.get_invoice()
self.invoice_kb = None
if self.invoice:
self.jenis_tagihan = 'NB' # Normal Bayar
return
self.invoice_kb = self.get_invoice_kb()
if self.invoice_kb:
self.jenis_tagihan = 'KB' # Kurang Bayar
else:
self.invoice_kb = self.get_invoice_kb(SkbkbT)
self.jenis_tagihan = 'KBT' # Kurang Bayar Tambahan
if self.invoice_kb:
self.invoice = self.get_first_invoice()
self.verifikasi = self.get_verifikasi()
def validate_invoice_id(self):
return len(self.invoice_id) == INVOICE_ID_LENGTH
......@@ -57,34 +73,78 @@ class Common:
tgl_bphtb=self.invoice_struct['tgl'],
no_urut_bphtb=self.invoice_struct['no_urut'])
def filter_invoice_kb(self, q):
return q.filter_by(
thn_bphtb_terbit=self.invoice_struct['thn'],
bln_bphtb_terbit=self.invoice_struct['bln'],
tgl_bphtb_terbit=self.invoice_struct['tgl'],
no_urut_bphtb_terbit=self.invoice_struct['no_urut'])
def get_dict_kb(self):
return dict(
thn_bphtb=self.invoice_kb.thn_bphtb_terbit,
bln_bphtb=self.invoice_kb.bln_bphtb_terbit,
tgl_bphtb=self.invoice_kb.tgl_bphtb_terbit,
no_urut_bphtb=self.invoice_kb.no_urut_bphtb_terbit)
def filter_payment_kb(self, q):
d = self.get_dict_kb()
return q.filter_by(**d)
def query_invoice(self, orm=Invoice):
db_session = get_db_session()
q = db_session.query(orm)
return self.filter_invoice(q)
def query_invoice_kb(self, orm=Skbkb):
db_session = get_db_session()
q = db_session.query(orm)
return self.filter_invoice_kb(q)
def get_invoice(self, orm=Invoice):
q = self.query_invoice(orm)
return q.first()
def get_invoice_kb(self, orm=Skbkb):
q = self.query_invoice_kb(orm)
return q.first()
def get_first_invoice(self, orm=Invoice):
db_session = get_db_session()
q = db_session.query(orm).filter_by(
thn_bphtb=self.invoice_kb.thn_bphtb,
bln_bphtb=self.invoice_kb.bln_bphtb,
tgl_bphtb=self.invoice_kb.tgl_bphtb,
no_urut_bphtb=self.invoice_kb.no_urut_bphtb)
return q.first()
def get_verifikasi(self):
return self.get_first_invoice(Verifikasi)
def get_payment(self):
if self.invoice_kb:
db_session = get_db_session()
q = db_session.query(Payment)
q = self.filter_payment_kb(q)
return q.first()
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)
if self.invoice_kb:
self.invoice_kb.status_pembayaran = tgl_bayar and '1' or '0'
db_session.add(self.invoice_kb)
else:
self.invoice.tgl_setor_ssp = tgl_bayar
db_session.add(self.invoice)
ssb_ppat = self.get_invoice(SsbPpat)
if ssb_ppat:
ssb_ppat.tgl_bayar_ssb_wp = tgl_bayar
db_session.add(ssb_ppat)
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):
......@@ -95,25 +155,28 @@ class Inquiry(Common):
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,
'Propinsi': self.invoice.kd_propinsi,
'Kabupaten': self.invoice.kd_dati2,
'Kecamatan': self.invoice.kd_kecamatan_op,
'Kelurahan': self.invoice.kd_kelurahan_op,
'Blok': self.invoice.kd_blok_op,
'Urut': self.invoice.no_urut_op,
'Jenis': self.invoice.kd_jns_op,
})
self.hitung()
def hitung(self):
if self.invoice_kb:
self.tagihan = self.invoice_kb.bphtb_krg_bayar
else:
self.tagihan = self.invoice.bphtb_disetor
self.total_bayar = self.get_payment_amount()
self.tagihan = self.invoice.bphtb_hrs_dibayar - self.total_bayar
self.tagihan -= self.total_bayar
self.total = self.denda = self.discount = 0
if self.tagihan < 1:
self.tagihan = self.total = 0
......@@ -123,16 +186,7 @@ class Inquiry(Common):
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)
id_wp_bphtb=self.invoice.id_wp_bphtb)
return q.first()
def get_nop(self):
......@@ -146,18 +200,18 @@ class Inquiry(Common):
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)
kd_propinsi=self.invoice.kd_propinsi,
kd_dati2=self.invoice.kd_dati2,
kd_kecamatan=self.invoice.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)
kd_propinsi=self.invoice.kd_propinsi,
kd_dati2=self.invoice.kd_dati2,
kd_kecamatan=self.invoice.kd_kecamatan_op,
kd_kelurahan=self.invoice.kd_kelurahan_op)
return q.first()
def get_notaris(self):
......@@ -167,16 +221,40 @@ class Inquiry(Common):
return q.first()
def get_luas_tanah(self):
return int(self.objek.luas_tanah)
if self.invoice_kb:
return int(self.verifikasi.luas_tanah)
return int(self.invoice.luas_bumi)
def get_luas_bangunan(self):
return int(self.objek.luas_bangunan)
if self.invoice_kb:
return int(self.verifikasi.luas_bangunan)
return int(self.invoice.luas_bng)
def get_njop(self):
db_session = get_db_session()
dts = self.get_invoice(TelitiSsb)
if not dts:
return 0
q = db_session.query(func.sum(TelitiSsbDetail.njop_total))
q = q.filter_by(
kd_propinsi=dts.kd_propinsi,
kd_dati2=dts.kd_dati2,
kd_dinas=dts.kd_dinas,
kd_kppd=dts.kd_kppd,
no_pendaftaran=dts.no_pendaftaran)
return q.scalar() or 0
def get_npop(self):
return self.invoice.npop
if self.invoice_kb:
n = self.verifikasi.npop
else:
npop = self.invoice.hrg_transaksi or 0
njop = self.get_njop()
n = njop > npop and njop or npop
return int(n)
def get_jenis_perolehan_hak(self):
return self.objek.kd_jns_hak
return self.invoice.kd_jns_hak
def get_nama_notaris(self):
if self.notaris:
......@@ -192,7 +270,7 @@ class Inquiry(Common):
return self.subjek.jalan_wp
def get_alamat_op(self):
return self.objek.jalan_op
return self.invoice.jalan_op
def get_kota_op(self):
pass
......@@ -235,7 +313,10 @@ class Inquiry(Common):
q = db_session.query(
func.sum(Payment.bphtb_sdh_dibayar).
label('total_bayar'))
q = self.filter_invoice(q)
if self.invoice_kb:
q = self.filter_payment_kb(q)
else:
q = self.filter_invoice(q)
row = q.first()
return row.total_bayar or 0
......@@ -244,13 +325,17 @@ class Inquiry(Common):
ntp_generator = NTP()
ntp = ntp_generator.create()
self.update_status(self.tgl_bayar)
pay = Payment(
if self.invoice_kb:
d = self.get_dict_kb()
else:
d = dict(
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)
d.update(dict(
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'],
......@@ -261,11 +346,11 @@ class Inquiry(Common):
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,
kd_kecamatan_op=self.invoice.kd_kecamatan_op,
kd_kelurahan_op=self.invoice.kd_kelurahan_op,
kd_blok_op=self.invoice.kd_blok_op,
no_urut_op=self.invoice.no_urut_op,
kd_jns_op=self.invoice.kd_jns_op,
user_bank_rekam=user_bank,
nm_penyetor='ISOUSER01',
kd_sumber_data='4',
......@@ -273,8 +358,9 @@ class Inquiry(Common):
# 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)
no_transaksi_byr=self.jenis_tagihan,
tgl_rekam_byr=self.tgl_bayar))
pay = Payment(**d)
db_session.add(pay)
db_session.flush()
return pay
......@@ -294,34 +380,58 @@ class Reversal(Common):
def do_reversal(self): # Override
db_session = get_db_session()
self.update_status(None)
q = self.query_invoice(Payment)
if self.invoice_kb:
q = db_session.query(Payment)
q = self.filter_payment_kb(q)
else:
q = self.query_invoice(Payment)
q.delete()
db_session.flush()
class AvailableInvoice(BaseAvailableInvoice):
def is_kb(self):
return self.option.skpdkb or self.option.skpdkb_tambahan
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))
kb = self.is_kb()
if kb:
orm = self.option.skpdkb and Skbkb or SkbkbT
q = db_session.query(orm).filter(orm.status_pembayaran == '0')
else:
orm = Invoice
q = db_session.query(Invoice).filter(
orm.tgl_setor_ssp.__eq__(None))
if self.option.tahun:
q = q.filter_by(thn_bphtb=self.option.tahun)
if kb:
q = q.filter_by(thn_bphtb_terbit=self.option.tahun)
else:
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 kb:
q = q.filter(orm.bphtb_krg_bayar <= self.option.max_nominal)
else:
q = q.filter(orm.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())
if kb:
q = q.filter(orm.bphtb_krg_bayar >= self.option.min_nominal)
else:
q = q.filter(orm.bphtb_hrs_dibayar >= self.option.min_nominal)
return q.order_by(orm.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
if self.is_kb():
invoice_id_struct['thn'] = row.thn_bphtb_terbit
invoice_id_struct['bln'] = row.bln_bphtb_terbit
invoice_id_struct['tgl'] = row.tgl_bphtb_terbit
invoice_id_struct['no_urut'] = row.no_urut_bphtb_terbit
else:
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:
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!