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 (
Time,
DateTime,
UniqueConstraint,
ForeignKey,
)
from sqlalchemy.ext.declarative import declarative_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):
__tablename__ = 'pkb_report'
id = Column(Integer, primary_key=True)
......@@ -241,12 +248,17 @@ class Pkb(Base, Common):
tgl = Column(Date, nullable=False)
no_polisi = Column(String(9), nullable=False)
nominal = Column(Float, nullable=False)
kode_nominal = Column(
Integer, ForeignKey(PkbKodeNominal.id), nullable=False)
channel = Column(String(32), nullable=False)
pemilik = Column(String(128), nullable=False)
merek = Column(String(32), nullable=False)
jenis_kb = Column(String(32), nullable=False)
jenis_trx = Column(String(32), nullable=False)
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__ = (
UniqueConstraint(waktu, no_polisi),)
......@@ -32,13 +32,17 @@ def create_data(d):
tgl=waktu.date(),
no_polisi=d['no_polisi'],
nominal=float(d['nominal']),
kode_nominal=int(d['kode']),
channel=channel,
pemilik=d['nm_pemilik'],
merek=d['nm_merek_kb'],
jenis_kb=d['nm_jenis_kb'],
jenis_trx=d['nm_jen_trans'],
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):
......@@ -56,7 +60,8 @@ class App(BaseApp):
headers = {'X-Authorization': self.conf['key']}
data = dict(
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)
if r.status_code != 200:
print('HTTP error', r.status_code)
......@@ -71,6 +76,11 @@ class App(BaseApp):
if not trx['flagging']:
continue
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)
self.count = len(rows)
for value in rows:
......@@ -114,11 +124,15 @@ class App(BaseApp):
if 'tgl_awal' in self.conf:
self.last = None
self.tgl_awal = self.conf['tgl_awal']
if isinstance(self.tgl_awal, datetime):
self.tgl_awal = self.tgl_awal.date()
else:
self.last = self.get_last_id(self.conf_name)
self.tgl_awal = self.last.as_date()
if 'tgl_akhir' in self.conf:
self.tgl_akhir = self.conf['tgl_akhir']
if isinstance(self.tgl_akhir, datetime):
self.tgl_akhir = self.tgl_akhir.date()
else:
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
from zope.sqlalchemy import register
import transaction
from opensipkd.views.models import Conf as BaseConf
from ..models import Base
from ..models import (
Base,
PkbKodeNominal,
)
from ..common import (
my_registry,
append_csv,
......@@ -25,3 +28,4 @@ def main(argv=sys.argv[1:]):
register(db_session)
with transaction.manager:
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!