Commit 34588be4 by aa.gusti

pap

1 parent 78f5037a
...@@ -11,3 +11,5 @@ sipkd_url_master = sipkd_url ...@@ -11,3 +11,5 @@ sipkd_url_master = sipkd_url
eis_url = "postgresql://aagusti:a@192.168.56.1/os" eis_url = "postgresql://aagusti:a@192.168.56.1/os"
webr_url = "postgresql://aagusti:a@192.168.56.1/webr" webr_url = "postgresql://aagusti:a@192.168.56.1/webr"
pap_url = "informix://user:pass@db"
\ No newline at end of file \ No newline at end of file
from models_sipkd import Realisasi, Base, DBSession #kpusat19_svr
#database dbdapja
#user samsatjb
#pass samsatjb onsoctcp 1526
#v_rtimepap
#tg_pros_bayar
#pap
#den_pajak
#jumlah
#v_rtime
#vsts yesterday
#tg_pros_bayar
#pkb
#bbnkb1
#bbnkb2
#den_pajak
#jumlah
from models_eis import (ApPayment as EisApPayment, from models_eis import (ApPayment as EisApPayment,
ByPayment as EisByPayment, ByPayment as EisByPayment,
Rekening as EisRekening, Rekening as EisRekening,
EisBase, EisDBSession) EisBase, EisDBSession)
from conf import sipkd_url from conf import pap_url
from sqlalchemy import create_engine, literal_column, func from sqlalchemy import create_engine, literal_column, func
from datetime import datetime from datetime import datetime
from datetime import date from datetime import date
...@@ -12,20 +30,29 @@ try: ...@@ -12,20 +30,29 @@ try:
except: except:
from urllib.parse import quote_plus, quote from urllib.parse import quote_plus, quote
from conf import pap_url as url
data = url.split('@')
db_name = data[1]
data = data[0].split('//')
data = data[1].split(':')
db_user = data[0]
db_pass = data[1]
engine = OtherEngine(db_name, db_user, db_pass)
engine = create_engine(sipkd_url)
DBSession.configure(bind=engine)
Base.metadata.bind = engine
Base.metadata.create_all(engine)
now = datetime.now() now = datetime.now()
tanggal = now.date() tanggal = now.date()
tahun = now.strftime('%Y') tahun = now.strftime('%Y')
def calculate(tabel, all=False): def calculate(tabel, all=None, kode=None):
query = EisDBSession.query(tabel).filter_by(tahun = str(tahun)).\ query = EisDBSession.query(tabel).filter_by(tahun = str(tahun)).\
order_by(tabel.departemen_kd, tabel.tanggal, tabel.kode.desc()) order_by(tabel.departemen_kd, tabel.tanggal, tabel.kode.desc())
if not all: if not all:
query = query.filter_by(tanggal=tanggal) query = query.filter_by(tanggal=tanggal)
if kode:
query = query.filter_by(kode=kode)
old_level = 0 old_level = 0
levels = {} levels = {}
...@@ -72,9 +99,11 @@ def validate_parent(tabel, departemen_kd, departemen_nm, rekening, tanggal): ...@@ -72,9 +99,11 @@ def validate_parent(tabel, departemen_kd, departemen_nm, rekening, tanggal):
if not row.kode: if not row.kode:
continue continue
induk = EisDBSession.query(tabel).\ induk = EisDBSession.query(tabel).\
filter_by(tahun=str(row.tahun), filter_by(
tahun=str(row.tahun),
kode=row.kode.strip(), kode=row.kode.strip(),
departemen_kd = departemen_kd.strip(), departemen_kd = departemen_kd.strip(),
tanggal = tanggal,
).first() ).first()
if not induk: if not induk:
induk = tabel() induk = tabel()
...@@ -88,63 +117,74 @@ def validate_parent(tabel, departemen_kd, departemen_nm, rekening, tanggal): ...@@ -88,63 +117,74 @@ def validate_parent(tabel, departemen_kd, departemen_nm, rekening, tanggal):
EisDBSession.add(induk) EisDBSession.add(induk)
EisDBSession.flush() EisDBSession.flush()
def import_ap(all=False): def insert_data(row, kode, nama, dep_kode, dep_nama):
query = DBSession.query(Realisasi) # TODO
if not all: eis = EisDBSession.query(EisArPayment).\
query = query.filter_by(tanggal=tanggal) filter_by(tahun = str(tahun),
query = query.filter(Realisasi.kd_rekening.like('5.%')) kode = kode,
departemen_kd = dep_kode,
for row in query.all():
eis = EisDBSession.query(EisApPayment).\
filter_by(tahun = str(row.tahun),
kode = row.kd_rekening.strip(),
departemen_kd = row.kd_opd.strip(),
tanggal = row.tanggal, tanggal = row.tanggal,
).first() ).first()
if not eis: if not eis:
eis = EisApPayment() eis = EisArPayment()
eis.tahun = str(row.tahun) eis.tahun = str(tahun)
eis.kode = row.kd_rekening.strip() eis.kode = kode
eis.departemen_kd = row.kd_opd.strip() eis.departemen_kd = dep_kode
eis.tanggal = row.tanggal eis.tanggal = tanggal
eis.level_id = row.kd_rekening.count('.') eis.level_id = kode.count('.')
eis.nama = row.nm_rekening.strip() eis.nama = nama
eis.departemen_nm = row.nm_opd.strip() eis.departemen_nm = dep_nama
eis.jumlah = row.realisasi eis.jumlah = row.denda
EisDBSession.add(eis) EisDBSession.add(eis)
EisDBSession.flush() EisDBSession.flush()
validate_parent(EisApPayment, eis.departemen_kd, eis.departemen_nm, eis.kode, eis.tanggal) validate_parent(EisArPayment, eis.departemen_kd, eis.departemen_nm, eis.kode, eis.tanggal)
EisDBSession.commit()
def import_by(all=False): def import_pap(all=False):
query = DBSession.query(Realisasi) sql = "SELECT tg_pros_bayar as tanggal, pap as pokok, den_pajak as denda FROM v_rtimepap "\
"WHERE TO_CHAR(tg_pros_bayar, 'YYYY') = '{tahun}' {where} "\
"ORDER BY tg_pros_bayar"
if not all: if not all:
query = query.filter_by(tanggal=tanggal) sql = sql.format(tahun = tahun,
where = '')
else:
sql = sql.format(tahun = tahun,
where = " tg_pros_bayar = '{tanggal}'".\
format(tanggal = tanggal.strftime('%d-%m-%Y')),)
for row in query.filter(Realisasi.kd_rekening.like('6.%')).all(): rows = engine.fetchall(sql)
eis = EisDBSession.query(EisByPayment).\
filter_by(tahun = str(row.tahun), rek_kode = '4.1.1.06.01.'
kode = row.kd_rekening.strip(), rek_nama = 'PAJAK AIR PERMUKAAN'
departemen_kd = row.kd_opd.strip(),
tanggal = tanggal, denda_kode = '4.1.4.07.03.'
denda_nama = 'DENDA PAJAK AIR PERMUKAAN'
dep_kode = '3.03.02.'
dep_nama = 'BADAN PENDAPATAN DAERAH'
for row in query.all():
eis = EisDBSession.query(EisApPayment).\
filter_by(tahun = str(tahun),
kode = rek_kode,
departemen_kd = dep_kode,
tanggal = row.tanggal,
).first() ).first()
if not eis: if not eis:
eis = EisByPayment() eis = EisApPayment()
eis.tahun = str(row.tahun) eis.tahun = str(tahun)
eis.kode = row.kd_rekening.strip() eis.kode = rek_kode
eis.departemen_kd = row.kd_opd.strip() eis.departemen_kd = dep_kode
eis.tanggal = tanggal eis.tanggal = row.tanggal
eis.level_id = row.kd_rekening.count('.') eis.level_id = rek_kode.count('.')
eis.nama = row.nm_rekening.strip() eis.nama = rek_nama
eis.departemen_nm = row.nm_opd.strip() eis.departemen_nm = dep_nama
eis.jumlah = row.realisasi eis.jumlah = row.pokok
EisDBSession.add(eis) EisDBSession.add(eis)
EisDBSession.flush() EisDBSession.flush()
validate_parent(EisByPayment, eis.departemen_kd, eis.departemen_nm, eis.kode) validate_parent(EisApPayment, eis.departemen_kd, eis.departemen_nm, eis.kode, eis.tanggal)
if row.denda:
insert_data(row, denda_kode, denda_nama, dep_kode, dep_nama)
EisDBSession.commit() EisDBSession.commit()
EisDBSession.commit()
#import_ap(True) import_pap(True)
import_by(True) calculate(EisArPayment,True)
calculate(EisApPayment,True)
calculate(EisByPayment,True)
...@@ -21,12 +21,15 @@ now = datetime.now() ...@@ -21,12 +21,15 @@ now = datetime.now()
tanggal = now.date() tanggal = now.date()
tahun = now.strftime('%Y') tahun = now.strftime('%Y')
def calculate(tabel, all=False): def calculate(tabel, all = None, kode = None):
query = EisDBSession.query(tabel).filter_by(tahun = str(tahun)).\ query = EisDBSession.query(tabel).filter_by(tahun = str(tahun)).\
order_by(tabel.departemen_kd, tabel.tanggal, tabel.kode.desc()) order_by(tabel.departemen_kd, tabel.tanggal, tabel.kode.desc())
if not all: if not all:
query = query.filter_by(tanggal=tanggal) query = query.filter_by(tanggal=tanggal)
if kode:
query = query.filter_by(kode=kode)
old_level = 0 old_level = 0
levels = {} levels = {}
jumlahs = {} jumlahs = {}
...@@ -134,6 +137,8 @@ def import_ar(all=False): ...@@ -134,6 +137,8 @@ def import_ar(all=False):
eis.departemen_nm = unit_nm eis.departemen_nm = unit_nm
eis.jumlah = row.bayar - row.bunga eis.jumlah = row.bayar - row.bunga
EisDBSession.add(eis) EisDBSession.add(eis)
validate_parent(EisApPayment, eis.departemen_kd, eis.departemen_nm, eis.kode, eis.tanggal)
EisDBSession.flush()
if row.bunga and row.denda_kode: if row.bunga and row.denda_kode:
# TODO # TODO
eis = EisDBSession.query(EisArPayment).\ eis = EisDBSession.query(EisArPayment).\
...@@ -153,10 +158,9 @@ def import_ar(all=False): ...@@ -153,10 +158,9 @@ def import_ar(all=False):
eis.departemen_nm = row.unit_nama.strip() eis.departemen_nm = row.unit_nama.strip()
eis.jumlah = row.bunga eis.jumlah = row.bunga
EisDBSession.add(eis) EisDBSession.add(eis)
EisDBSession.flush() EisDBSession.flush()
validate_parent(EisArPayment, eis.departemen_kd, eis.departemen_nm, eis.kode, eis.tanggal) validate_parent(EisArPayment, eis.departemen_kd, eis.departemen_nm, eis.kode, eis.tanggal)
EisDBSession.commit() EisDBSession.commit()
import_ar(True) import_pap(True)
calculate(EisArPayment,True) calculate(EisArPayment,True)
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!