Commit dcb896f9 by Owo Sugiana

PBB ISO8583 v2 juga memperhatikan tanggal

1 parent dac35c7c
......@@ -2,6 +2,7 @@ from datetime import (
datetime,
date,
)
from logging import getLogger
from sqlalchemy import (
Column,
Integer,
......@@ -200,15 +201,14 @@ class App(BaseApp):
q = self.get_iso_query(psppt)
row = q.first()
if row:
log = getLogger('get_iso_v1()')
pay, inq = row
msg = f'Invoice ID {self.invoice_id} berbeda tanggal dengan '\
f'ISO8583 yaitu {psppt.tgl_rekam_byr_sppt.date()} vs '\
f'{inq.tgl}'
self.log.warning(msg)
log.warning(msg)
def get_iso_v1(self, psppt):
if self.h2h_session:
return
row = self.get_iso_row(psppt)
if not row:
self.warning_date(psppt)
......@@ -227,11 +227,11 @@ class App(BaseApp):
return channel_id, info['channel'], iso.get_stan(), \
iso.get_ntb(), str(iso.get_bank_id()), user_id, row_inq.tgl
def get_iso_v2(self):
if not self.h2h_session:
return
def get_iso_v2(self, tgl):
Log = self.get_log_model()
q = self.base_q_log
akhir = tgl + one_day
q = q.filter(Log.created >= tgl, Log.created < akhir)
if self.is_universal_log:
q = q.filter(Log.bits.op('->>')('61') == self.invoice_id)
else:
......@@ -274,8 +274,6 @@ class App(BaseApp):
return kode, nama, d['bit_011'], row.ntb, kode
def get_api(self, psppt):
if not self.api_session:
return
q = self.base_q_api.filter_by(bit_059='4', bit_061=self.invoice_id)
q = q.order_by(ApiLog.id.desc())
row = q.first()
......@@ -285,10 +283,14 @@ class App(BaseApp):
return row.bit_018, channel_nama, row.bit_011, row.bit_037, row.bit_032
def get_source(self, psppt):
source = self.get_iso_v2()
tgl_inquiry = user_id = stan = ntb = bank_id = None
channel_kode = '0000'
tgl = psppt.tgl_rekam_byr_sppt.date()
tgl_inquiry = user_id = stan = ntb = bank_id = channel_nama = None
if self.h2h_session:
source = self.get_iso_v2(tgl)
if source:
channel_kode, channel_nama, stan, ntb, bank_id, user_id = source
channel_kode, channel_nama, stan, ntb, bank_id, user_id = \
source
else:
source = self.get_iso_v1(psppt)
if source:
......@@ -298,13 +300,11 @@ class App(BaseApp):
source = self.get_json(psppt)
if source:
channel_kode, channel_nama, stan, ntb, bank_id = source
else:
elif self.api_session:
source = self.get_api(psppt)
if source:
channel_kode, channel_nama, stan, ntb, bank_id = source
else:
channel_kode = '0000'
tgl = psppt.tgl_rekam_byr_sppt.date()
channel_nama = self.get_va_channel(tgl)
if not channel_nama:
kd_tp = psppt.kd_tp.strip()
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!