Commit b65bcf77 by Owo Sugiana

Tambah PBB VA & QRIS Only

1 parent d2fe1a80
3.1.3 2023-08-21
----------------
- Tambah PBB VA & QRIS Only
3.1.2 2023-07-26
----------------
- POSPBB tidak lagi dikenali dari field nip_rekam_byr_sppt melainkan dari field
......
......@@ -14,6 +14,7 @@ from sqlalchemy import (
Column,
String,
Integer,
BigInteger,
ForeignKey,
create_engine,
)
......@@ -91,6 +92,9 @@ class VaPayment(Base):
id = Column(Integer, primary_key=True)
va_invoice_id = Column(Integer, ForeignKey(VaInvoice.id))
transaction_date = Column(String(32))
transaction_amount = Column(BigInteger)
rrn = Column(String(32))
customer_name = Column(String(64))
def humanize_time(secs):
......
import sys
from datetime import (
datetime,
date,
timedelta,
)
from sqlalchemy import (
Column,
......@@ -16,17 +14,8 @@ from sqlalchemy.exc import (
ProgrammingError,
)
from ISO8583.ISO8583 import BitNotSet
import transaction
from sismiop.services.base import get_id
from opensipkd.string import (
FixLength,
DateTimeVar,
to_str,
)
from opensipkd.waktu import (
dmyhms,
create_datetime,
)
from opensipkd.waktu import dmyhms
from opensipkd.iso8583.bjb.pbb.default import Doc
from opensipkd.iso8583.bjb.pbb.structure import PAYMENT_CODE
from opensipkd.iso8583.bjb.pbb.models import Log
......
from datetime import datetime
from sqlalchemy import func
from opensipkd.string import FixLength
from opensipkd.waktu import dmyhms
from sismiop.services.base import INVOICE_ID
from ..models import Pbb
from ..common import (
BaseApp,
one_day,
VaInvoice,
VaPayment,
)
class App(BaseApp):
conf_name = 'pbb va payment last date'
report_orm = Pbb
va_product_code = '02'
def filter_query(self, q):
tgl_awal = self.tgl_awal.strftime('%Y-%m-%d %H:%M:%S')
tgl_akhir = self.tgl_akhir + one_day
tgl_akhir = tgl_akhir.strftime('%Y-%m-%d %H:%M:%S')
return q.filter(
VaPayment.va_invoice_id == VaInvoice.id,
VaInvoice.product_code == self.va_product_code,
VaPayment.transaction_date >= tgl_awal,
VaPayment.transaction_date < tgl_akhir)
def get_payment_query(self): # Override
q = self.va_session.query(
VaInvoice.invoice_no,
VaInvoice.va_type,
VaPayment.id,
VaPayment.rrn,
VaPayment.customer_name,
VaPayment.transaction_date,
VaPayment.transaction_amount)
q = self.filter_query(q)
return q.order_by(VaPayment.id)
def get_count(self): # Override
q = self.va_session.query(func.count())
q = self.filter_query(q)
return q.scalar()
def create_data(self, pay): # Override
self.invoice_id = pay.invoice_no
if pay.va_type == 'a':
channel_nama = 'VA'
elif pay.va_type == 'q':
channel_nama = 'QRIS'
else:
raise Exception(
f'Invoice ID {self.invoice_id} va_type {pay.va_type} '
'belum dipahami, perbaiki script')
inv_id = FixLength(INVOICE_ID)
inv_id.set_raw(pay.invoice_no)
tgl = datetime.strptime(pay.transaction_date, '%Y-%m-%d %H:%M:%S')
rpt_id = - pay.id
return dict(
id=rpt_id,
kd_propinsi=inv_id['Propinsi'], kd_dati2=inv_id['Kabupaten'],
kd_kecamatan=inv_id['Kecamatan'], kd_kelurahan=inv_id['Kelurahan'],
kd_blok=inv_id['Blok'], no_urut=inv_id['Urut'],
kd_jns_op=inv_id['Jenis'], thn_pajak_sppt=inv_id['Tahun'],
pembayaran_sppt_ke=1, ntb=pay.rrn,
jml_sppt_yg_dibayar=pay.transaction_amount, denda_sppt=0,
discount=0, tgl_pembayaran_sppt=tgl.date(),
tgl_rekam_byr_sppt=tgl,
nm_wp_sppt=pay.customer_name, channel_kode='0000',
channel_nama=channel_nama, bank_id='110',
pbb_yg_harus_dibayar_sppt=pay.transaction_amount)
def get_report(self, pay): # Override
inv_id = FixLength(INVOICE_ID)
inv_id.set_raw(pay.invoice_no)
q = self.rpt_session.query(Pbb).filter_by(
kd_propinsi=inv_id['Propinsi'], kd_dati2=inv_id['Kabupaten'],
kd_kecamatan=inv_id['Kecamatan'],
kd_kelurahan=inv_id['Kelurahan'],
kd_blok=inv_id['Blok'], no_urut=inv_id['Urut'],
kd_jns_op=inv_id['Jenis'], thn_pajak_sppt=inv_id['Tahun'],
pembayaran_sppt_ke=1)
return q.first()
def get_last_time(self): # Override
tgl = datetime.strptime(
self.last_pay.transaction_date, '%Y-%m-%d %H:%M:%S')
return dmyhms(tgl)
......@@ -3,3 +3,4 @@ pad payment last date,1-1-2000 00:00:00,pad.pad_sspd.sspdtgl terakhir yang dipro
webr payment last date,1-1-2000 00:00:00,webr.ar_payment.created terakhir yang diproses
bphtb payment last date,01-01-2000 00:00:00,bphtb.bphtb_bank.tanggal terakhir yang diproses
pbb payment last date,1-1-2000 00:00:00,pembayaran_sppt.tgl_rekam_byr_sppt terakhir yang diproses
pbb va payment last date,1-1-2000 00:00:00,bjb_va_payment.transaction_date terakhir yang diproses
......@@ -6,7 +6,6 @@ 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
kd_tp =
41:POSPBB
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!