Commit d2fe1a80 by Owo Sugiana

POSPBB dikenali dari field kd_tp

1 parent a5cb1e40
3.1.2 2023-07-26
----------------
- POSPBB tidak lagi dikenali dari field nip_rekam_byr_sppt melainkan dari field
kd_tp. Ini dikarenakan ada daerah yang menggunakan NIP yang sama untuk POSPBB
maupun QRIS.
3.1.1 2023-07-21
----------------
- Bug fixed PAD QRIS
......
......@@ -222,6 +222,16 @@ def create_session(db_url, debug=False):
return factory()
def str2dict(s):
r = dict()
for line in s.split():
t = line.split(':')
key = t[0]
val = t[1]
r[key] = val
return r
class BaseApp:
conf_name = None # Override, please
report_orm = None # Override, please
......
......@@ -11,7 +11,10 @@ from sqlalchemy import (
UniqueConstraint,
func,
)
from sqlalchemy.exc import DatabaseError
from sqlalchemy.exc import (
DatabaseError,
ProgrammingError,
)
from ISO8583.ISO8583 import BitNotSet
import transaction
from sismiop.services.base import get_id
......@@ -43,6 +46,7 @@ from ..common import (
VaInvoice,
VaPayment,
InvalidSource,
str2dict,
)
......@@ -103,7 +107,6 @@ class App(BaseApp):
def __init__(self, argv):
super().__init__(argv)
self.kd_tp_kasda = self.kd_tp_va = self.kd_tp_qris = None
self.set_other_db()
if self.prod_session:
d = Doc()
......@@ -121,10 +124,7 @@ class App(BaseApp):
self.Psppt = self.models.PembayaranSppt
self.Sppt = self.models.Sppt
self.base_q_sppt = self.prod_session.query(self.Sppt)
self.nip_pospbb = self.conf.get('nip_pospbb')
self.kd_tp_kasda = self.conf.get('kd_tp_kasda')
self.kd_tp_va = self.conf.get('kd_tp_va')
self.kd_tp_qris = self.conf.get('kd_tp_qris')
self.kd_tp = str2dict(self.conf.get('kd_tp', ''))
def set_other_db(self):
if 'h2h_db_url' in self.conf:
......@@ -291,32 +291,11 @@ class App(BaseApp):
channel_kode, channel_nama, stan, ntb, bank_id = source
else:
channel_kode = '0000'
if self.nip_pospbb and \
psppt.nip_rekam_byr_sppt.strip() == \
self.nip_pospbb:
channel_nama = 'POSPBB'
else:
channel_kode = '0001'
if self.kd_tp_kasda and \
psppt.kd_tp.strip() == \
self.kd_tp_kasda:
channel_nama = 'KASDA'
else:
channel_kode = '0002'
if self.kd_tp_va and \
psppt.kd_tp.strip() == \
self.kd_tp_va:
channel_nama = 'VA'
else:
channel_kode = '0003'
if self.kd_tp_qris and \
psppt.kd_tp.strip() == \
self.kd_tp_qris:
channel_nama = 'QRIS'
else:
tgl = psppt.tgl_rekam_byr_sppt.date()
channel_nama = self.get_va_channel(tgl) \
or 'MANUAL'
channel_nama = self.get_va_channel(tgl)
if not channel_nama:
kd_tp = psppt.kd_tp.strip()
channel_nama = self.kd_tp.get(kd_tp, 'MANUAL')
return channel_kode, channel_nama, stan, ntb, bank_id, user_id, \
tgl_inquiry
......
......@@ -2,12 +2,13 @@
module = payment_report.pbb.default
models = sismiop.models.default
db_url = postgresql://user:pass@localhost/db
#h2h_db_url = postgresql://user:pass@localhost/db
#va_db_url = postgresql://user:pass@localhost/db
h2h_db_url = postgresql://user:pass@localhost/db
va_db_url = postgresql://user:pass@localhost/db
report_db_url = postgresql://user:pass@localhost/db
pid_file = /home/sugiana/tmp/pbb-report.pid
log_file = /home/sugiana/log/pbb-report.log
nip_pospbb = 888888888
kd_tp =
41:POSPBB
[formatter_generic]
format = %(asctime)s %(levelname)s %(name)s %(message)s
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!