Commit 42227c16 by Solo Group

odeo inq

1 parent 43664213
...@@ -18,6 +18,8 @@ from . import notify ...@@ -18,6 +18,8 @@ from . import notify
urllib3.disable_warnings() urllib3.disable_warnings()
timeout = 30 timeout = 30
class Vendor(VendorClass): class Vendor(VendorClass):
def __init__(self, vendor_produk, invoice_det): def __init__(self, vendor_produk, invoice_det):
VendorClass.__init__(self, vendor_produk, invoice_det=invoice_det) VendorClass.__init__(self, vendor_produk, invoice_det=invoice_det)
...@@ -59,9 +61,14 @@ class Vendor(VendorClass): ...@@ -59,9 +61,14 @@ class Vendor(VendorClass):
except Exception as e: except Exception as e:
log.info(e) log.info(e)
return return
return resp
def inquiry(self):
if not self.v_produk_kd or not self.id_pel:
return self.set_response(message='Parameter tidak lengkap')
resp = self._inquiry()
if not resp.text: if not resp.text:
log.info("Resp Tidak Ada, {} {}".format(resp)) log.info("Resp Tidak Ada, {}".format(resp))
return return
try: try:
...@@ -74,21 +81,28 @@ class Vendor(VendorClass): ...@@ -74,21 +81,28 @@ class Vendor(VendorClass):
if resp.status_code == 200: if resp.status_code == 200:
self.status = 1 # sukses self.status = 1 # sukses
data = "data" in result and result["data"] or None data = "data" in result and result["data"] or None
return self.pars_data(data) parsd = self.pars_data(data)
else: return self.set_success(parsd) # parsd
return
elif resp.status_code == 400:
data = "data" in result and result["data"] or None
message = ""
if data and "errors" in data:
msg = data["errors"][0]
pos = msg.find("Sisa saldo")
message = pos > -1 and msg[:pos] or msg
parsd = self.pars_data(data)
return self.set_failed(parsd, message=message, typ="payment")
def inquiry(self): return
if not self.v_produk_kd or not self.id_pel:
return self.set_response(message='Parameter tidak lengkap')
parsd = self._inquiry() # parsd = self._inquiry()
if not parsd: # if not parsd:
return self.set_failed() # parsd # return self.set_failed() # parsd
return self.set_success(parsd) # parsd
def payment(self): def payment(self):
#Jika kategory bukan e-pulsa Call Inquiry First # Jika kategory bukan e-pulsa Call Inquiry First
parsd = None parsd = None
if self.vendor_produk.produk.kategori.kode != "e-pulsa": if self.vendor_produk.produk.kategori.kode != "e-pulsa":
parsd = self._inquiry() parsd = self._inquiry()
...@@ -206,7 +220,7 @@ class Vendor(VendorClass): ...@@ -206,7 +220,7 @@ class Vendor(VendorClass):
self.status = 1 # sukses self.status = 1 # sukses
data = "data" in result and result["data"] or None data = "data" in result and result["data"] or None
parsd = self.pars_data(data) parsd = self.pars_data(data)
return self.set_success(parsd,"payment") return self.set_success(parsd, "payment")
elif resp.status_code == 400: elif resp.status_code == 400:
self.status = -3 self.status = -3
parsd = dict(code=resp.status_code, parsd = dict(code=resp.status_code,
...@@ -239,21 +253,21 @@ class Vendor(VendorClass): ...@@ -239,21 +253,21 @@ class Vendor(VendorClass):
if "power" in data: if "power" in data:
rincian['power'] = data["power"] rincian['power'] = data["power"]
if self.v_produk_kd[:3] == "PLN" and self.v_produk_kd != "PLNPASCA": if self.v_produk_kd[:3] == "PLN" and self.v_produk_kd != "PLNPASCA":
#harga = "price" in data and data["price"] or 0 # harga = "price" in data and data["price"] or 0
#pokok = harga and int(re.sub("\D","", self.v_produk_kd))*1000 or 0 # pokok = harga and int(re.sub("\D","", self.v_produk_kd))*1000 or 0
pokok = int(self.vendor_produk.produk.harga) pokok = int(self.vendor_produk.produk.harga)
admin = 0 admin = 0
rincian["pokok"] = pokok rincian["pokok"] = pokok
rincian["admin"] = admin rincian["admin"] = admin
rincian["denda"] = 0 rincian["denda"] = 0
rincian["total"] = pokok+admin rincian["total"] = pokok + admin
rincian["token"] = "token" in data and data["token"] or "" rincian["token"] = "token" in data and data["token"] or ""
log.info(">Rincian: {}".format(rincian)) log.info(">Rincian: {}".format(rincian))
elif self.v_produk_kd == "PLNPASCA": elif self.v_produk_kd == "PLNPASCA":
if 'tarif' in rincian and rincian['tarif']: if 'tarif' in rincian and rincian['tarif']:
p = rincian['tarif'].split('/') p = rincian['tarif'].split('/')
if len(p)>1: if len(p) > 1:
rincian["power"] = p[1][:-2] rincian["power"] = p[1][:-2]
if "subscriber_id" in data and data["subscriber_id"]: if "subscriber_id" in data and data["subscriber_id"]:
rincian['no_meter'] = data["subscriber_id"] rincian['no_meter'] = data["subscriber_id"]
...@@ -274,7 +288,7 @@ class Vendor(VendorClass): ...@@ -274,7 +288,7 @@ class Vendor(VendorClass):
i = 0 i = 0
log.info(inquirieses) log.info(inquirieses)
for inquiries in inquirieses: for inquiries in inquirieses:
#odeo ngerubah data inquiry # odeo ngerubah data inquiry
if "tariff" in inquiries and inquiries["tariff"]: if "tariff" in inquiries and inquiries["tariff"]:
rincian['tarif'] = inquiries["tariff"] rincian['tarif'] = inquiries["tariff"]
if "number" in inquiries: if "number" in inquiries:
...@@ -360,7 +374,7 @@ class Vendor(VendorClass): ...@@ -360,7 +374,7 @@ class Vendor(VendorClass):
rincian["denda"] = denda rincian["denda"] = denda
admin = int(self.vendor_produk.produk.harga * i) admin = int(self.vendor_produk.produk.harga * i)
rincian["admin"] = admin rincian["admin"] = admin
rincian["total"] = pokok+denda+admin rincian["total"] = pokok + denda + admin
rincian["period"] = period rincian["period"] = period
if not 'jml_bulan' in rincian: if not 'jml_bulan' in rincian:
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!