Commit 754ea334 by Owo Sugiana

Tambah tangsel

1 parent fb375ce2
0.2.2 2020-07-15
----------------
- Tambah tangsel
0.2.1 2020-05-27
----------------
- Tidak perlu lagi tabel bphtb_config karena opsi Invoice ID 16 digit juga
......
import sys
from configparser import ConfigParser
from argparse import ArgumentParser
from optparse import OptionParser
def get_option(argv):
......
import sys
from datetime import datetime
from configparser import ConfigParser
from optparse import OptionParser
from argparse import ArgumentParser
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
import transaction
......@@ -17,10 +17,11 @@ def show_rp(label, value):
def get_option(argv):
pars = OptionParser()
pars.add_option('-i', '--invoice-id')
pars.add_option('', '--payment', action='store_true')
pars.add_option('', '--reversal', action='store_true')
pars = ArgumentParser()
pars.add_argument('conf', help='File konfigurasi')
pars.add_argument('--invoice-id', required=True)
pars.add_argument('--payment', action='store_true')
pars.add_argument('--reversal', action='store_true')
return pars.parse_args(argv)
......@@ -63,8 +64,8 @@ def show_pkey_values(row):
def main(argv=sys.argv):
option, remain = get_option(argv[1:])
conf_file = remain[0]
option = get_option(argv[1:])
conf_file = option.conf
invoice_id = option.invoice_id
conf = ConfigParser()
conf.read(conf_file)
......
......@@ -38,8 +38,26 @@ class Common:
self.invoice_struct.set_raw(invoice_id)
self.tahun = self.invoice_struct['Tahun']
self.tahun = int(self.tahun)
if self.invoice_struct['Kode']:
q = self.query_invoice()
self.invoice = q.first()
else:
self.invoice = None
def get_kelurahan_model(self):
return Kelurahan
def get_kecamatan_model(self):
return Kecamatan
def get_invoice_model(self):
return Invoice
def get_payment_model(self):
return Payment
def get_customer_model(self):
return Customer
def get_db_session(self):
return DBSession
......@@ -48,6 +66,7 @@ class Common:
kode = int(self.invoice_struct['Kode'])
kode = str(kode)
DBSession = self.get_db_session()
Invoice = self.get_invoice_model()
return DBSession.query(Invoice).filter_by(
tahun=self.tahun, kode=kode, no_sspd=self.invoice_struct['SSPD No'])
......@@ -132,6 +151,7 @@ class Inquiry(Common):
def get_kecamatan(self):
DBSession = self.get_db_session()
Kecamatan = self.get_kecamatan_model()
q = DBSession.query(Kecamatan).filter_by(
kd_propinsi=self.invoice.kd_propinsi,
kd_dati2=self.invoice.kd_dati2,
......@@ -140,6 +160,7 @@ class Inquiry(Common):
def get_kelurahan(self):
DBSession = self.get_db_session()
Kelurahan = self.get_kelurahan_model()
q = DBSession.query(Kelurahan).filter_by(
kd_propinsi=self.invoice.kd_propinsi,
kd_dati2=self.invoice.kd_dati2,
......@@ -149,6 +170,7 @@ class Inquiry(Common):
def get_notaris(self):
DBSession = self.get_db_session()
Customer = self.get_customer_model()
q = DBSession.query(Customer).filter_by(id=self.invoice.ppat_id)
return q.first()
......@@ -300,8 +322,12 @@ class AvailableInvoice(BaseAvailableInvoice):
def get_inquiry_class(self):
return Inquiry
def get_invoice_model(self):
return Invoice
def get_query(self):
DBSession = self.get_db_session()
Invoice = self.get_invoice_model()
q = DBSession.query(Invoice).filter_by(status_pembayaran=0)
if self.option.tahun:
q = q.filter_by(tahun=self.option.tahun)
......
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from zope.sqlalchemy import register
import opensipkd.bphtb.tangsel.services
def set_conf(conf, name, default=None):
func = type(default)
if name in conf:
conf[name] = func(conf.get(name))
else:
conf[name] = 2
def init(conf):
set_conf(conf, 'persen_denda', 2.0)
engine = create_engine(conf['db_url'])
session_factory = sessionmaker(bind=engine)
DBSession = session_factory()
register(DBSession)
opensipkd.bphtb.tangsel.services.DBSession = DBSession
from datetime import datetime
from sqlalchemy import (
Column,
String,
Integer,
Date,
DateTime,
Time,
Float,
Text,
ForeignKey,
UniqueConstraint,
)
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Provinsi(Base):
__tablename__ = 'ref_propinsi'
kd_propinsi = Column(String(2), primary_key=True)
nm_propinsi = Column(String(30))
class Kabupaten(Base):
__tablename__ = 'ref_dati2'
kd_propinsi = Column(String(2), primary_key=True)
kd_dati2 = Column(String(2), primary_key=True)
nm_dati2 = Column(String(30))
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(30))
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(2))
nm_kelurahan = Column(String(30))
no_kelurahan = Column(Integer)
kd_pos_kelurahan = Column(String(5))
class Customer(Base):
__tablename__ = 'bphtb_ppat'
id = Column(Integer, primary_key=True)
kode = Column(String(6), unique=True)
nama = Column(String(50))
alamat = Column(String(50))
kelurahan = Column(String(50))
kecamatan = Column(String(50))
kota = Column(String(50))
wilayah_kerja = Column(String(50))
kd_wilayah = Column(String(4))
no_telp = Column(String(20))
no_fax = Column(String(20))
no_sk = Column(String(30), unique=True)
tgl_sk = Column(Date)
create_uid = Column(String(20))
update_uid = Column(String(20))
created = Column(DateTime)
updated = Column(DateTime)
npwp = Column(String(20))
pejabat_id = Column(Integer)
__table_args__ = (
dict(schema='bphtb'),)
class Perolehan(Base):
__tablename__ = 'bphtb_perolehan'
id = Column(Integer, primary_key=True)
nama = Column(String(100), nullable=False)
npoptkp = Column(Integer, nullable=False)
pengurang = Column(Integer)
singkatan = Column(String(20))
__table_args__ = (
dict(schema='bphtb'),)
class Invoice(Base):
__tablename__ = 'bphtb_sspd'
id = Column(Integer, primary_key=True)
tahun = Column(Integer, nullable=False)
kode = Column(String(1), nullable=False)
no_sspd = Column(Integer, nullable=False)
ppat_id = Column(Integer, ForeignKey(Customer.id))
wp_nama = Column(String(50), nullable=False)
wp_npwp = Column(String(50), nullable=False)
wp_alamat = Column(String(100), nullable=False)
wp_blok_kav = Column(String(100), nullable=False)
wp_kelurahan = Column(String(30), nullable=False)
wp_rt = Column(String(3), nullable=False)
wp_rw = Column(String(3), nullable=False)
wp_kecamatan = Column(String(30), nullable=False)
wp_kota = Column(String(30), nullable=False)
wp_provinsi = Column(String(30), nullable=False)
wp_identitas = Column(String(50), nullable=False)
wp_identitaskd = Column(String(50))
tgl_transaksi = Column(Date, nullable=False)
kd_propinsi = Column(String(2), nullable=False)
kd_dati2 = Column(String(2), nullable=False)
kd_kecamatan = Column(String(3), nullable=False)
kd_kelurahan = Column(String(3), nullable=False)
kd_blok = Column(String(3), nullable=False)
no_urut = Column(String(4), nullable=False)
kd_jns_op = Column(String(1), nullable=False)
thn_pajak_sppt = Column(String(4), nullable=False)
op_alamat = Column(String(100), nullable=False)
op_blok_kav = Column(String(100), nullable=False)
op_rt = Column(String(3), nullable=False)
op_rw = Column(String(3), nullable=False)
bumi_luas = Column(Integer, nullable=False)
bumi_njop = Column(Integer, nullable=False)
bng_luas = Column(Integer, nullable=False)
bng_njop = Column(Integer, nullable=False)
no_sertifikat = Column(String(255))
njop = Column(Integer, nullable=False)
perolehan_id = Column(Integer, ForeignKey(Perolehan.id), nullable=False)
npop = Column(Integer, nullable=False)
npoptkp = Column(Integer, nullable=False)
tarif = Column(Float, nullable=False)
terhutang = Column(Integer, nullable=False)
bagian = Column(Integer, nullable=False)
pembagi = Column(Integer, nullable=False)
tarif_pengurang = Column(Integer, nullable=False)
pengurang = Column(Integer, nullable=False)
bphtb_sudah_dibayarkan = Column(Integer, nullable=False)
denda = Column(Integer, nullable=False)
restitusi = Column(Integer, nullable=False)
bphtb_harus_dibayarkan = Column(Integer, nullable=False)
status_pembayaran = Column(Integer, nullable=False)
dasar_id = Column(Integer, nullable=False)
create_uid = Column(String(20))
update_uid = Column(String(20))
created = Column(DateTime, nullable=False)
updated = Column(DateTime, nullable=False)
header_id = Column(Integer, nullable=False)
tgl_print = Column(DateTime)
tgl_approval = Column(DateTime)
file1 = Column(String(150))
file2 = Column(String(150))
file3 = Column(String(150))
file4 = Column(String(150))
file5 = Column(String(150))
wp_kdpos = Column(String(5))
file6 = Column(String(150))
file7 = Column(String(150))
file8 = Column(String(150))
file9 = Column(String(150))
file10 = Column(String(150))
keterangan = Column(String(100))
status_daftar = Column(Integer)
persen_pengurang_sendiri = Column(Integer)
pp_nomor_pengurang_sendiri = Column(String(50))
no_ajb = Column(String(50))
tgl_ajb = Column(DateTime)
wp_nama_asal = Column(String(50))
jml_pph = Column(Float)
tgl_pph = Column(DateTime)
posted = Column(Integer)
pos_tp_id = Column(Integer)
status_validasi = Column(Integer)
status_bpn = Column(Integer)
tgl_jatuh_tempo = Column(DateTime)
verifikasi_uid = Column(String(20))
verifikasi_date = Column(DateTime)
pbb_nop = Column(String(24))
verifikasi_bphtb_uid = Column(String(20))
verifikasi_bphtb_date = Column(DateTime)
hasil_penelitian = Column(String(20))
no_sk = Column(String(20))
pengurangan_sk = Column(String(20))
pengurangan_jatuh_tempo_tgl = Column(DateTime)
pengurangan_sk_tgl = Column(DateTime)
ketetapan_no = Column(String(20))
ketetapan_tgl = Column(DateTime)
ketetapan_atas_sspd_no = Column(String(20))
ketetapan_jatuh_tempo_tgl = Column(DateTime)
pembayaran_ke = Column(Integer, nullable=False)
mutasi_penuh = Column(Integer)
harga_transaksi = Column(Integer)
npopkp = Column(Integer)
wp_pekerjaan = Column(Text)
wp_telpon = Column(Text)
wp_email = Column(Text)
npoptkp_sudah_didapat = Column(Integer, nullable=False)
bng_luas_beban = Column(Integer, nullable=False)
bng_njop_beban = Column(Integer, nullable=False)
bumi_luas_beban = Column(Integer, nullable=False)
bumi_njop_beban = Column(Integer, nullable=False)
wp_identitas_asal = Column(Text)
wp_identitaskd_asal = Column(Text)
wp_npwp_asal = Column(Text)
wp_alamat_asal = Column(Text)
wp_blok_kav_asal = Column(Text)
wp_rt_asal = Column(Text)
wp_rw_asal = Column(Text)
wp_kelurahan_asal = Column(Text)
wp_kecamatan_asal = Column(Text)
wp_kota_asal = Column(Text)
wp_provinsi_asal = Column(Text)
wp_kdpos_asal = Column(Text)
wp_telpon_asal = Column(Text)
wp_pekerjaan_asal = Column(Text)
wp_email_asal = Column(Text)
__table_args__ = (
UniqueConstraint('tahun', 'kode', 'no_sspd'),
dict(schema='bphtb'))
class Payment(Base):
__tablename__ = 'bphtb_bank'
id = Column(Integer, primary_key=True)
tanggal = Column(Date, nullable=False)
jam = Column(Time, nullable=False)
seq = Column(Integer, nullable=False)
transno = Column(String(20), nullable=False)
cabang = Column(String(5))
users = Column(String(5))
bankid = Column(Integer, nullable=False)
txs = Column(String(5), nullable=False)
sspd_id = Column(Integer, ForeignKey(Invoice.id))
nop = Column(String(50), nullable=False)
tahun = Column(Integer)
kd_propinsi = Column(String(2))
kd_dati2 = Column(String(2))
kd_kecamatan = Column(String(3))
kd_kelurahan = Column(String(3))
kd_blok = Column(String(3))
no_urut = Column(String(4))
kd_jns_op = Column(String(1))
thn_pajak_sppt = Column(String(4))
wp_nama = Column(String(50), nullable=False)
wp_alamat = Column(String(100))
wp_blok_kav = Column(String(100))
wp_rt = Column(String(3))
wp_rw = Column(String(3))
wp_kelurahan = Column(String(30))
wp_kecamatan = Column(String(30))
wp_kota = Column(String(30))
wp_provinsi = Column(String(50))
wp_kdpos = Column(String(5))
wp_identitas = Column(String(50))
wp_identitaskd = Column(String(50))
wp_npwp = Column(String(50))
notaris = Column(String(50))
bumi_luas = Column(Integer)
bumi_njop = Column(Integer)
bng_luas = Column(Integer)
bng_njop = Column(Integer)
npop = Column(Integer)
bayar = Column(Integer)
denda = Column(Integer)
bphtbjeniskd = Column(Integer)
is_validated = Column(Integer)
no_tagihan = Column(String(50))
catatan = Column(String(255))
kd_kanwil = Column(String(2))
kd_kantor = Column(String(2))
kd_bank_tunggal = Column(String(2))
kd_bank_persepsi = Column(String(2))
wp_propinsi = Column(String(100))
pembayaran_ke = Column(Integer, nullable=False)
posted = Column(Integer, nullable=False)
cancel_bayar = Column(Integer)
cancel_denda = Column(Integer)
cancel_date = Column(DateTime)
cancel_uid = Column(Text)
cancel_notes = Column(Text)
__table_args__ = (
UniqueConstraint('tanggal', 'jam', 'seq', 'transno'),
dict(schema='bphtb'))
class IsoPayment(Base):
__tablename__ = 'bphtb_payment'
id = Column(Integer, ForeignKey(Payment.id), primary_key=True)
tgl = Column(DateTime(timezone=True), nullable=False, default=datetime.now)
iso_request = Column(String(1024), nullable=False)
transmission = Column(DateTime(timezone=True), nullable=False)
settlement = Column(Date, nullable=False)
stan = Column(Integer, nullable=False)
invoice_id = Column(Integer, ForeignKey(Invoice.id), nullable=False)
invoice_no = Column(String(32), nullable=False)
ntb = Column(String(32), nullable=False)
ntp = Column(String(32), nullable=False, unique=True)
bank_id = Column(Integer)
channel_id = Column(Integer)
bank_ip = Column(String(15), nullable=False)
__table_args__ = (
dict(schema='bphtb'),)
class IsoReversal(Base):
__tablename__ = 'bphtb_reversal'
id = Column(Integer, primary_key=True)
tgl = Column(DateTime(timezone=True), nullable=False, default=datetime.now)
iso_request = Column(String(1024), nullable=False)
from ..tangerang_kabupaten.services import (
Inquiry as BaseInquiry,
Reversal as BaseReversal,
AvailableInvoice as BaseAvailableInvoice,
)
from .models import (
Kecamatan,
Kelurahan,
Customer,
Invoice,
Payment,
)
DBSession = None # override, please
def get_db_session():
return DBSession
class Inquiry(BaseInquiry):
def get_kelurahan_model(self): # Override
return Kelurahan
def get_kecamatan_model(self): # Override
return Kecamatan
def get_invoice_model(self): # Override
return Invoice
def get_payment_model(self): # Override
return Payment
def get_customer_model(self): # Override
return Customer
def get_db_session(self): # Override
return DBSession
class Reversal(BaseReversal):
def get_db_session(self): # Override
return DBSession
def get_invoice_model(self): # Override
return Invoice
def get_payment_model(self): # Override
return Payment
class AvailableInvoice(BaseAvailableInvoice):
def get_db_session(self): # Override
return DBSession
def get_inquiry_class(self): # Override
return Inquiry
def get_invoice_model(self): # Override
return Invoice
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!