pdl.py
2.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
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)