Commit 7c8c468c by Owo Sugiana

Tambah kode nominal pada PKB

1 parent 01afbd29
[main]
module = payment_report.pkb.bb_api
url = https://opsen.bankbanten.co.id/api/stsopsen/03
key = YOUR-API-KEY
kd_lokasi = *
# Denda Opsen BBNKB
kode = 4
report_db_url = postgresql://user:pass@localhost/db
pid_file = /home/pcpd/tmp/denda-opsen-bbnkb.pid
[formatter_generic]
format = %(asctime)s %(levelname)s %(name)s %(message)s
[formatter_simple]
format = %(asctime)s %(levelname)s %(message)s
[handler_console]
class = StreamHandler
stream = sys.stdout
formatter = generic
[handler_file]
class = FileHandler
filename = /home/pcpd/logs/denda-opsen-bbnkb.log
formatter = simple
[logger_root]
handlers = console, file
level = INFO
[main]
module = payment_report.pkb.bb_api
url = https://opsen.bankbanten.co.id/api/stsopsen/03
key = YOUR-API-KEY
kd_lokasi = *
# Denda Opsen PKB
kode = 3
report_db_url = postgresql://user:pass@localhost/db
pid_file = /home/pcpd/tmp/denda-opsen-pkb.pid
[formatter_generic]
format = %(asctime)s %(levelname)s %(name)s %(message)s
[formatter_simple]
format = %(asctime)s %(levelname)s %(message)s
[handler_console]
class = StreamHandler
stream = sys.stdout
formatter = generic
[handler_file]
class = FileHandler
filename = /home/pcpd/logs/denda-opsen-pkb.log
formatter = simple
[logger_root]
handlers = console, file
level = INFO
[main]
module = payment_report.pkb.bb_api
url = https://opsen.bankbanten.co.id/api/stsopsen/03
key = YOUR-API-KEY
kd_lokasi = *
# Opsen BBNKB
kode = 2
report_db_url = postgresql://user:pass@localhost/db
pid_file = /home/pcpd/tmp/opsen-bbnkb.pid
[formatter_generic]
format = %(asctime)s %(levelname)s %(name)s %(message)s
[formatter_simple]
format = %(asctime)s %(levelname)s %(message)s
[handler_console]
class = StreamHandler
stream = sys.stdout
formatter = generic
[handler_file]
class = FileHandler
filename = /home/pcpd/logs/opsen-bbnkb.log
formatter = simple
[logger_root]
handlers = console, file
level = INFO
[main]
module = payment_report.pkb.bb_api
url = https://opsen.bankbanten.co.id/api/stsopsen/03
key = YOUR-API-KEY
kd_lokasi = *
# Opsen PKB
kode = 1
report_db_url = postgresql://user:pass@localhost/db
pid_file = /home/pcpd/tmp/opsen-pkb.pid
[formatter_generic]
format = %(asctime)s %(levelname)s %(name)s %(message)s
[formatter_simple]
format = %(asctime)s %(levelname)s %(message)s
[handler_console]
class = StreamHandler
stream = sys.stdout
formatter = generic
[handler_file]
class = FileHandler
filename = /home/pcpd/logs/opsen-pkb.log
formatter = simple
[logger_root]
handlers = console, file
level = INFO
...@@ -8,6 +8,7 @@ from sqlalchemy import ( ...@@ -8,6 +8,7 @@ from sqlalchemy import (
Time, Time,
DateTime, DateTime,
UniqueConstraint, UniqueConstraint,
ForeignKey,
) )
from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.ext.declarative import declarative_base
...@@ -234,6 +235,12 @@ class PbbInvoice(Base): ...@@ -234,6 +235,12 @@ class PbbInvoice(Base):
) )
class PkbKodeNominal(Base):
__tablename__ = 'pkb_kode_nominal'
id = Column(Integer, primary_key=True)
nama = Column(String(32), nullable=False)
class Pkb(Base, Common): class Pkb(Base, Common):
__tablename__ = 'pkb_report' __tablename__ = 'pkb_report'
id = Column(Integer, primary_key=True) id = Column(Integer, primary_key=True)
...@@ -241,12 +248,17 @@ class Pkb(Base, Common): ...@@ -241,12 +248,17 @@ class Pkb(Base, Common):
tgl = Column(Date, nullable=False) tgl = Column(Date, nullable=False)
no_polisi = Column(String(9), nullable=False) no_polisi = Column(String(9), nullable=False)
nominal = Column(Float, nullable=False) nominal = Column(Float, nullable=False)
kode_nominal = Column(
Integer, ForeignKey(PkbKodeNominal.id), nullable=False)
channel = Column(String(32), nullable=False) channel = Column(String(32), nullable=False)
pemilik = Column(String(128), nullable=False) pemilik = Column(String(128), nullable=False)
merek = Column(String(32), nullable=False) merek = Column(String(32), nullable=False)
jenis_kb = Column(String(32), nullable=False) jenis_kb = Column(String(32), nullable=False)
jenis_trx = Column(String(32), nullable=False) jenis_trx = Column(String(32), nullable=False)
kasir = Column(String(32)) kasir = Column(String(32))
lokasi = Column(String(64), nullable=False) kode_lokasi = Column(String(3), nullable=False)
nama_lokasi = Column(String(64), nullable=False)
kode_kabupaten = Column(String(2), nullable=False)
nama_kabupaten = Column(String(64), nullable=False)
__table_args__ = ( __table_args__ = (
UniqueConstraint(waktu, no_polisi),) UniqueConstraint(waktu, no_polisi),)
...@@ -32,13 +32,17 @@ def create_data(d): ...@@ -32,13 +32,17 @@ def create_data(d):
tgl=waktu.date(), tgl=waktu.date(),
no_polisi=d['no_polisi'], no_polisi=d['no_polisi'],
nominal=float(d['nominal']), nominal=float(d['nominal']),
kode_nominal=int(d['kode']),
channel=channel, channel=channel,
pemilik=d['nm_pemilik'], pemilik=d['nm_pemilik'],
merek=d['nm_merek_kb'], merek=d['nm_merek_kb'],
jenis_kb=d['nm_jenis_kb'], jenis_kb=d['nm_jenis_kb'],
jenis_trx=d['nm_jen_trans'], jenis_trx=d['nm_jen_trans'],
kasir=d['nm_kasir'], kasir=d['nm_kasir'],
lokasi=d['nm_lokasi']) kode_lokasi=d['kd_lokasi'],
nama_lokasi=d['nm_lokasi'],
kode_kabupaten=d['kd_kabkota'],
nama_kabupaten=d['wilayah_nm'])
class App(BaseApp): class App(BaseApp):
...@@ -56,7 +60,8 @@ class App(BaseApp): ...@@ -56,7 +60,8 @@ class App(BaseApp):
headers = {'X-Authorization': self.conf['key']} headers = {'X-Authorization': self.conf['key']}
data = dict( data = dict(
tanggal=tgl.strftime('%d/%m/%Y'), tanggal=tgl.strftime('%d/%m/%Y'),
kd_lokasi=self.conf['kd_lokasi'], kode=self.conf['kode']) kd_lokasi=self.conf['kd_lokasi'],
kode=self.conf['kode'])
r = requests.post(self.conf['url'], headers=headers, json=data) r = requests.post(self.conf['url'], headers=headers, json=data)
if r.status_code != 200: if r.status_code != 200:
print('HTTP error', r.status_code) print('HTTP error', r.status_code)
...@@ -71,6 +76,11 @@ class App(BaseApp): ...@@ -71,6 +76,11 @@ class App(BaseApp):
if not trx['flagging']: if not trx['flagging']:
continue continue
for key, value in trx['flagging'].items(): for key, value in trx['flagging'].items():
value['kode'] = self.conf['kode']
value['kd_lokasi'] = trx['kd_lokasi']
value['nm_lokasi'] = trx['nm_lokasi']
value['kd_kabkota'] = trx['kd_kabkota']
value['wilayah_nm'] = trx['wilayah_nm'].rstrip()
rows.append(value) rows.append(value)
self.count = len(rows) self.count = len(rows)
for value in rows: for value in rows:
...@@ -114,11 +124,15 @@ class App(BaseApp): ...@@ -114,11 +124,15 @@ class App(BaseApp):
if 'tgl_awal' in self.conf: if 'tgl_awal' in self.conf:
self.last = None self.last = None
self.tgl_awal = self.conf['tgl_awal'] self.tgl_awal = self.conf['tgl_awal']
if isinstance(self.tgl_awal, datetime):
self.tgl_awal = self.tgl_awal.date()
else: else:
self.last = self.get_last_id(self.conf_name) self.last = self.get_last_id(self.conf_name)
self.tgl_awal = self.last.as_date() self.tgl_awal = self.last.as_date()
if 'tgl_akhir' in self.conf: if 'tgl_akhir' in self.conf:
self.tgl_akhir = self.conf['tgl_akhir'] self.tgl_akhir = self.conf['tgl_akhir']
if isinstance(self.tgl_akhir, datetime):
self.tgl_akhir = self.tgl_akhir.date()
else: else:
self.tgl_akhir = date.today() self.tgl_akhir = date.today()
......
id,nama
1,Opsen PKB
2,Opsen BBNKB
3,Denda Opsen PKB
4,Denda Opsen BBNKB
...@@ -5,7 +5,10 @@ from sqlalchemy.orm import sessionmaker ...@@ -5,7 +5,10 @@ from sqlalchemy.orm import sessionmaker
from zope.sqlalchemy import register from zope.sqlalchemy import register
import transaction import transaction
from opensipkd.views.models import Conf as BaseConf from opensipkd.views.models import Conf as BaseConf
from ..models import Base from ..models import (
Base,
PkbKodeNominal,
)
from ..common import ( from ..common import (
my_registry, my_registry,
append_csv, append_csv,
...@@ -25,3 +28,4 @@ def main(argv=sys.argv[1:]): ...@@ -25,3 +28,4 @@ def main(argv=sys.argv[1:]):
register(db_session) register(db_session)
with transaction.manager: with transaction.manager:
append_csv(BaseConf, 'conf.csv', ['nama']) append_csv(BaseConf, 'conf.csv', ['nama'])
append_csv(PkbKodeNominal, 'pkb_kode_nominal.csv', ['id'])
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!