callback.py 938 Bytes
import logging

from opensipkd.pasar.models.produk import PartnerPay, PartnerProduk

log = logging.getLogger(__name__)

from . import Vendor

def proses(data):
    code = "resultCd" in data and data["resultCd"] and int(data["resultCd"]) or 0
    message = "resultMsg" in data and data["resultMsg"] or ""
    if code!=0:
        return dict(form="Error in NV CALLBACK {}, {}".format(code, message), code=code, message=message)

    vend_inv_no = data["tXid"]
    cus_inv_no = data["referenceNo"]

    invoice_det = PartnerPay.query_vend_inv_no(vend_inv_no)\
        .filter_by(cust_inv_no=cus_inv_no).first()
    if not invoice_det:
        return

    vendor_produk = PartnerProduk.query()\
        .filter_by(partner_id=invoice_det.vendor_id,
                  produk_id=invoice_det.produk_id).first()

    vendor = Vendor(vendor_produk, invoice_det)
    result = vendor.callback(data)
    print("callback.py", result)
    return result