Commit ec69c917 by Owo Sugiana

Tambah pengenalan tabel gw_payment di PJDL

1 parent 59cc2ecb
3.1.8 2025-05-20
----------------
- Tambah pengenalan tabel gw_payment di PBB dan BPHTB
- Tambah pengenalan tabel gw_payment di PBB, BPHTB, dan PJDL
3.1.7 2025-02-27
----------------
......
......@@ -443,14 +443,15 @@ class App(BaseApp):
channel_name = get_channel_name_by_row(row)
return channel_id, channel_name, stan, ntb
def get_api(self, psppt):
def get_api(self):
q = self.base_q_api.filter_by(bit_059='1', bit_061=self.invoice_id)
q = q.order_by(ApiLog.id.desc())
row = q.first()
if not row:
return
channel_nama = BIT_18_NAMES[row.bit_018]
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, \
int(row.bit_032)
def get_invoice_cartenz(self, pay):
if pay.no_transaksi_byr in ('KB', 'KBT'):
......@@ -591,7 +592,7 @@ class App(BaseApp):
else:
channel_nama = self.get_va_channel(pay.tanggal) or 'MANUAL'
elif self.api_session:
source = self.get_api(pay)
source = self.get_api()
if source:
channel_id, channel_nama, stan, ntb, bank_id = source
else:
......
......@@ -6,7 +6,10 @@ from opensipkd.iso8583.bjb.pad.structure import PAYMENT_CODE
from opensipkd.iso8583.bjb.pad.doc import Doc as BjbDoc
from opensipkd.iso8583.bjb.pad.models import Log
from opensipkd.iso8583.multi.doc import Doc as MultiDoc
from ..models import Pad
from ..models import (
Pad,
ApiLog,
)
from ..common import (
get_iso,
get_channel_info_by_iso,
......@@ -14,6 +17,7 @@ from ..common import (
BaseApp,
one_day,
BANK_NAMES,
BIT_18_NAMES,
)
......@@ -52,6 +56,12 @@ class App(BaseApp):
except ProgrammingError:
self.prod_session.rollback()
self.base_q_log = None
if 'api_db_url' in self.conf:
factory = self.get_factory('api_db_url')
self.api_session = factory()
self.base_q_api = self.api_session.query(ApiLog)
else:
self.api_session = None
def get_pay_date(self): # Override
return self.last_pay.sspdtgl.date()
......@@ -110,6 +120,16 @@ class App(BaseApp):
return channel_id, channel_nama, row.bit_011, row.bit_048.strip(), \
bank_id
def get_api(self, inv_id):
q = self.base_q_api.filter_by(bit_059='2', bit_061=inv_id)
q = q.order_by(ApiLog.id.desc())
row = q.first()
if not row:
return
channel_nama = BIT_18_NAMES[row.bit_018]
return row.bit_018, channel_nama, row.bit_011, row.bit_037, \
int(row.bit_032)
def create_data(self, pay): # Override
Invoice = self.models.Invoice
q_inv = self.base_q_inv.filter(Invoice.id == pay.spt_id)
......@@ -119,25 +139,36 @@ class App(BaseApp):
invoice_id['SptNo'] = inv.sptno
try:
invoice_id['Prefix'] = getattr(self.service, 'PREFIX')
has_prefix = True
except AttributeError:
pass
has_prefix = False
self.invoice_id = invoice_id.get_raw()
source = self.get_iso_v2()
if source:
channel_id, channel_name, stan, ntb, bank_id = source
if has_prefix:
p = len(invoice_id['Prefix'])
inv_id = self.invoice_id[p:]
else:
inv_id = self.invoice_id
stan = ntb = bank_id = None
channel_id = '0000'
channel_name = 'MANUAL'
if self.api_session:
source = self.get_api(inv_id)
if source:
channel_id, channel_name, stan, ntb, bank_id = source
else:
source = self.get_iso_v1(pay)
source = self.get_iso_v2()
if source:
channel_id, channel_name, stan, ntb, bank_id = source
else:
stan = ntb = bank_id = None
channel_id = '0000'
tgl = pay.sspdtgl.date()
channel_name = self.get_va_channel(tgl)
if not channel_name:
p = len(invoice_id['Prefix'])
inv_id = self.invoice_id[p:]
channel_name = self.get_va_channel(tgl, inv_id) or 'MANUAL'
source = self.get_iso_v1(pay)
if source:
channel_id, channel_name, stan, ntb, bank_id = source
else:
tgl = pay.sspdtgl.date()
channel_name = self.get_va_channel(tgl)
if not channel_name:
channel_name = self.get_va_channel(tgl, inv_id) or \
'MANUAL'
return dict(
id=pay.id, stan=stan, ntb=ntb, tgl=pay.sspdtgl.date(),
jam=pay.sspdtgl.time(), nomor_bayar=invoice_id.get_raw(),
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!