Commit a8eec3e2 by Solo Group

advice

1 parent 838b9d62
...@@ -187,11 +187,11 @@ def purchase(request, data, **kwargs): ...@@ -187,11 +187,11 @@ def purchase(request, data, **kwargs):
r_data = [] r_data = []
log.info("%s Payment Request: %s" % (customer.kode, data)) log.info("%s Payment Request: %s" % (customer.kode, data))
for dat in data: for dat in data:
if "inv_no" not in dat or "produk" not in dat or not dat["produk"]: if "invoice_no" not in dat or "produk" not in dat or not dat["produk"]:
dat["status"] = "FAILED" dat["status"] = "FAILED"
dat["message"] = "Parameter tidak lengkap" dat["message"] = "Parameter tidak lengkap"
else: else:
inv_no = dat["inv_no"] inv_no = dat["invoice_no"]
produk = dat["produk"] produk = dat["produk"]
# todo cek apakah invoice sudah ada atau belum # todo cek apakah invoice sudah ada atau belum
ar_invoice = H2hArInvoice.query().filter_by(cust_inv_no=inv_no).first() ar_invoice = H2hArInvoice.query().filter_by(cust_inv_no=inv_no).first()
...@@ -288,31 +288,47 @@ def advice(request, token, data): ...@@ -288,31 +288,47 @@ def advice(request, token, data):
customer = Partner.query_user(user) customer = Partner.query_user(user)
r_data = [] r_data = []
for dat in data: for dat in data:
cust_inv = dat["inv_no"] if "inv_no" not in dat:
partner_log = PartnerLog.query().filter( dat["status"] = "FAILED"
PartnerLog.cust_inv == cust_inv dat["message"] = "Parameter tidak lengkap"
).all() else:
r_prod = [] inv_no = dat["invoice_no"]
for p in partner_log: invoice = H2hArInvoice.query()\
produk = PartnerProduk.query(). \ .filter_by(cust_inv_no = inv_no,
filter(PartnerProduk.partner_id == p.vendor_id, customer_id = customer.id).first()
PartnerProduk.produk_id == p.produk_id).first() if not invoice:
dat["status"] = "FAILED"
status = p.status == 0 and 'PENDING' or p.status == 1 and 'SUCCESS' \ dat["message"] = "Invoice %s Tidak Ditemukan" % inv_no
or p.status == 2 and 'FAILED' else:
qry = H2hArInvoiceDet.query().filter_by(ar_invoice_id=invoice.id)
r_prod.append(dict(denom=produk.kode, if "produk" in dat:
id_pel=partner_log["id_pel"], # for p in dat["produk"]:
subtotal=partner_log["amt_sell"] + partner_log["discount"], # prods.append(p["denom"])
discount=partner_log["discount"], # invoice_det = produk.q
total=partner_log["amt_sell"], pass
status=status, # else:
serial_number=partner_log.serial_number, ) # qry.filter(H2hArInvoiceDet.status!=1)
)
r_prod = []
dat["produk"] = r_prod for p in qry.all():
r_data.append(dat) produk = Produk.query(). \
i += 1 filter(Produk.id == p.produk_id).first()
status = p.status == -1 and 'PENDING' or p.status == 1 and 'SUCCESS' \
or p.status == -2 and 'PENDING'
r_prod.append(dict(denom=produk.kode,
id_pel=p["id_pel"],
subtotal=p["amt_sell"] + p["discount"],
discount=p["discount"],
total=p["amt_sell"],
status=status,
serial_number=p.serial_number, )
)
dat["produk"] = r_prod
r_data.append(dat)
i += 1
data = is_list and r_data or r_data[0] data = is_list and r_data or r_data[0]
return data return data
......
...@@ -49,7 +49,7 @@ class VendorClass(object): ...@@ -49,7 +49,7 @@ class VendorClass(object):
self.status = invoice_det and invoice_det.status or 0 self.status = invoice_det and invoice_det.status or 0
self.serial_number = invoice_det and hasattr(invoice_det, 'serial_number') \ self.serial_number = invoice_det and hasattr(invoice_det, 'serial_number') \
and invoice_det.serial_number or None and invoice_det.serial_number or None
self.amt_buy = 0 self.amt_buy = 0
def save_log(self, typ): def save_log(self, typ):
...@@ -75,20 +75,19 @@ class VendorClass(object): ...@@ -75,20 +75,19 @@ class VendorClass(object):
if self.amt_buy: if self.amt_buy:
self.invoice_det.amt_buy = self.amt_buy self.invoice_det.amt_buy = self.amt_buy
if typ == 'inquiry': if typ == 'inquiry':
self.invoice_det.inquiry = dict(request=self.request, self.invoice_det.inquiry = dict(request=self.request,
response=self.response) response=self.response)
elif typ == 'payment': elif typ == 'payment':
self.invoice_det.payment = dict(request=self.request, self.invoice_det.payment = dict(request=self.request,
response=self.response, response=self.response,
result=self.result) result=self.result)
elif typ == 'advice': elif typ == 'advice':
self.invoice_det.advice = dict(request=self.request, self.invoice_det.advice = dict(request=self.request,
response=self.response) response=self.response)
elif typ == 'info': elif typ == 'info':
self.invoice_det.info = dict(request=self.request, self.invoice_det.info = dict(request=self.request,
response=self.response) response=self.response)
flush_row(self.invoice_det) flush_row(self.invoice_det)
...@@ -123,7 +122,6 @@ class Other(object): ...@@ -123,7 +122,6 @@ class Other(object):
# cust_trx_id = cust_trx_id, row = row, # cust_trx_id = cust_trx_id, row = row,
# #
def get_product(self): def get_product(self):
pass pass
...@@ -194,12 +192,14 @@ def proses_odeo(request): ...@@ -194,12 +192,14 @@ def proses_odeo(request):
else: else:
order.status = -2 order.status = -2
order.notify = dict(post=data) order.notify = dict(post=data)
if "sn" in "data" and data["sn"]:
order.serial_number = data["sn"]
flush_row(order) flush_row(order)
#todo: add to customer notify table # todo: add to customer notify table
#todo: create cron for notify # todo: create cron for notify
#proses jika status 1 notify ada isinya tapi belum ada field result # proses jika status 1 notify ada isinya tapi belum ada field result
#todo: create cron torecurring order to other vendor # todo: create cron torecurring order to other vendor
#jika status = -2 proses vendor yang lain # jika status = -2 proses vendor yang lain
# #
# customer = Partner.query_id(order.customer_id).first() # customer = Partner.query_id(order.customer_id).first()
# if customer and customer.website: # if customer and customer.website:
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!