Commit 1ea65b75 by Solo Group

vsi_pln_post

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