pdl.py 2.54 KB
import logging
from datetime import datetime
from opensipkd.base.tools import get_random_number
from .pajak import Vendor as VendorClass
import urllib3

log = logging.getLogger(__name__)
urllib3.disable_warnings()

"""
PJDL
http://103.66.86.115:8989/interface-tangerang-1.0.0/pjdlJson/inq
http://103.66.86.115:8989/interface-tangerang-1.0.0/pjdlJson/pay

PBB
http://103.66.86.115:8989/interface-tangerang-1.0.0/pbbJson/inq
http://103.66.86.115:8989/interface-tangerang-1.0.0/pbbJson/pay

BPHTB
http://103.66.86.115:8989/interface-tangerang-1.0.0/bphtbJson/inq
http://103.66.86.115:8989/interface-tangerang-1.0.0/bphtbJson/pay


"""


class Vendor(VendorClass):
    def __init__(self, vendor_produk, invoice_det):
        VendorClass.__init__(self, vendor_produk, invoice_det=invoice_det)
        self.inq_url = '{0}/pjdlJson/inq'.format(self.url)
        self.pay_url = '{0}/pjdlJson/pay'.format(self.url)

    def inquiry_field(self):
        kini = datetime.now()
        date_settlement = kini.strftime("%m%d")
        no_bayar = self.id_pel

        return \
            {
                "noRef": get_random_number(6),
                "dateSettlement": date_settlement,
                "merchantType": "6014",
                "accountCurrency": "360",
                "terminalId": "02W001",
                "terminalName": "02A001",
                "terminalLoc": "Tangerang Selatan",
                "kodeBayar": no_bayar,

            }

    def response_field(self):
        resp = self.response
        if resp["responseCode"] == "00":
            pokok = int(resp["billAmount"] or '0')
            denda = int(resp["chargeAmount"] or '0')
            disc_biller = 0
            sub_total = pokok + denda - disc_biller
            result = self.get_price(sub_total)
            admin = int(self.vendor_produk.produk.harga)
            rincian = dict(
                pokok=pokok,
                denda=denda,
                discount=disc_biller,
                subtotal=sub_total,
                admin=admin,
                total=sub_total + admin,
                npwpd=resp['npwpd'],
                nama=resp['namaWp'],
                masa_awal=resp['masaAwal'],
                masa_akhir=resp['masaAkhir'],
                jns_pajak=resp['jenisPajak'],
                kd_pajak=resp['kodeRekening'],
                nm_pajak=resp['namaRekening'],
                alamat1=resp['alamat1'],
                alamat2=resp['alamat2'],
            )
            result.update(dict(rincian=rincian))
            return result

        else:
            return self.inquiry_error(resp)