Commit 1ea65b75 by Solo Group

vsi_pln_post

1 parent f2168af1
......@@ -48,16 +48,21 @@ def build_request(typ, values):
cust_trx_id = 'cust_trx_id' in values and values['cust_trx_id'] or None
vendor_product = PartnerProduk.query() \
.join(Produk, PartnerProduk.produk_id==Produk.id)\
.join(Produk, PartnerProduk.produk_id==Produk.id) \
.filter(PartnerProduk.partner_id == vendor_id,
PartnerProduk.produk_id == produk_id).first()
if not vendor_product:
return dict(error='Data Tidak Ditemukan')
row = None
if "trx_id" in values and values['trx_id']:
trx_id = int(values['trx_id'])
row = PartnerLog.query().filter_by(id=trx_id).first()
modules = import_module('.'+vendor_product.modules, 'agratek.api.merchant.views')
cls_module = modules.Vendor(vendor_id, produk_id, bill_no, customer_id,
cust_trx_id)
cls_module = modules.Vendor(vendor_product, bill_no, customer_id,
cust_trx_id, row)
if typ=='inquiry':
return cls_module.inquiry()
......@@ -298,29 +303,27 @@ class ViewHome(BaseView):
return dict(form=form, params=form_params_edit)
class VendorClass(object):
def __init__(self, vendor_id, produk_id, bill_no, customer_id=None,
cust_trx_id=None, ):
def __init__(self, vendor_produk, bill_no, customer_id=None,
cust_trx_id=None, row=None):
"""
:param cid:
merupakan customer id seperti MSN dan atu id pelanggaan
"""
self.settings = get_settings()
self.vendor_id = vendor_id
self.produk_id = produk_id
self.vendor_id = vendor_produk.id
self.produk_id = vendor_produk.produk_id
self.bill_no = bill_no
self.customer_id = customer_id
self.cust_trx_id = cust_trx_id
self.response = None
self.request = None
self.partner_log = row
self.partner_log_id = None
row = PartnerProduk.query()\
.filter_by(partner_id=self.vendor_id,
produk_id=self.produk_id).first()
self.v_produk_kd = row and row.kode or None
def save_log(self, typ, row=None):
if not row:
row = PartnerLog()
self.v_produk_kd = vendor_produk.kode
def save_log(self, typ):
# if not self.partner_log:
row = self.partner_log and self.partner_log or PartnerLog()
row.vendor_id = self.vendor_id
row.produk_id = self.produk_id
row.bill_no = self.bill_no
......@@ -340,6 +343,7 @@ class VendorClass(object):
response=self.response)
flush_row(row)
self.partner_log = row
self.partner_log_id = row.id
def get_product(self):
......
......@@ -13,8 +13,8 @@ from .vendor import VendorClass
class Vendor(VendorClass):
def __init__(self, vendor_id, produk_id, bill_no, customer_id=None,
cust_trx_id=None):
def __init__(self, vendor_produk, bill_no, customer_id=None,
cust_trx_id=None, row=None):
"""
:param produk_kd:
merupakan kode produk versi vendor
......@@ -24,8 +24,8 @@ class Vendor(VendorClass):
:param cid:
merupakan customer id seperti MSN dan atu id pelanggaan
"""
VendorClass.__init__(self, vendor_id, produk_id, bill_no, customer_id,
cust_trx_id)
VendorClass.__init__(self, vendor_produk, bill_no, customer_id,
cust_trx_id, row)
settings = self.settings
self.mid = 'vsi_mid' in settings and settings['vsi_mid'] or None
self.key = 'vsi_key' in settings and settings['vsi_key'] or None
......
......@@ -13,8 +13,6 @@ from .vsi import Vendor as VendorClass
class Vendor(VendorClass):
# def __init__(self, product_kd, trx_id=None, cid=None):
# VendorClass.__init__(self, product_kd, cid)
def pars_data(self, data):
return {
"bill_no": "subid" in data and data["subid"] or self.bill_no,
......@@ -98,7 +96,7 @@ class Vendor(VendorClass):
params["idpel"] = self.bill_no
# params["voucherid"] = self.v_produk_kd
self.request = params
row = self.save_log('inquiry')
self.save_log('inquiry')
params['trxid'] = self.partner_log_id
result = requests.get(self.url, params=params)
if result.ok:
......@@ -108,7 +106,7 @@ class Vendor(VendorClass):
code=result.status_code)
self.response = data
self.save_log('inquiry', row)
self.save_log('inquiry')
if "status" in data and data["status"] and data["status"] == "SUCCESS":
data = self.pars_data(data)
......@@ -175,7 +173,7 @@ class Vendor(VendorClass):
# params["voucherid"] = self.v_produk_kd
self.request = params
# todo: apakah harus di cek dulu data inquirynya
row = self.save_log('payment')
self.save_log('payment')
params['trxid'] = self.partner_log_id
result = requests.get(self.url, params=params)
if result.ok:
......@@ -183,7 +181,7 @@ class Vendor(VendorClass):
else:
data = dict(error=result.status_code)
self.response = data
self.save_log('payment', row)
self.save_log('payment')
if "status" in data and data["status"] and data["status"] == "SUCCESS":
data = self.pars_data(data)
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!