Commit dcb896f9 by Owo Sugiana

PBB ISO8583 v2 juga memperhatikan tanggal

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