bphtb.py
3.12 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
82
83
84
85
86
import logging
import re
from datetime import datetime
import urllib3
from opensipkd.base.tools import get_random_number
from .pajak import Vendor as VendorClass
log = logging.getLogger(__name__)
urllib3.disable_warnings()
"""
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}/bphtbJson/inq'.format(self.url)
self.pay_url = '{0}/bphtbJson/pay'.format(self.url)
def inquiry_field(self):
kini = datetime.now()
date_settlement = kini.strftime("%m%d")
nop = self.id_pel[:18]
no_bayar = self.id_pel[18:]
return \
{
"noRef": get_random_number(6),
"dateSettlement": date_settlement,
"merchantType": "6014",
"accountCurrency": "360",
"terminalId": "02W001",
"terminalName": "Mobile POS Tangsel",
"terminalLoc": "Tangerang Selatan",
"nop": nop,
"nomerPermohonan": no_bayar,
}
def response_field(self):
resp = self.response
if resp["responseCode"] == "00":
pokok = int(resp["jumlahBPHTBYangDibayar"] or '0')
denda = int(resp["denda"] 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,
harga_pasar=int(resp["nilaiPasarObjekPajak"]),
luas_bumi=int(resp["luasTanah"]),
luas_bng=int(resp["luasBangunan"]),
jenis_perolehan=resp["jenisPerolehanHak"],
npwp=re.sub(r"\D", "", resp["nPWP"]),
nm_wp=resp["namaWajibPajak"],
alamat_wp=resp["alamatWajibPajak"],
rt_wp=resp["rTWajibPajak"],
rw_wp=resp["rWWajibPajak"],
kelurahan_wp=resp["kelurahanWajibPajak"],
kecamatan_wp=resp["kecamatanWajibPajak"],
kota_wp=resp["kotaWajibPajak"],
kode_pos_wp=re.sub(r"\D", "", resp["kodePosWajibPajak"]),
alamat_op=resp["alamatObjekPajak"],
kelurahan_op=resp["kelurahanObjekPajak"],
kecamatan_op=resp["kecamatanObjekPajak"],
jenis_sspd=resp["jenisSetoran"],
thn_pajak=resp["tahunPajak"],
nm_notaris=resp["namaNotaris"],
# = resp["namaKCPBank": "",
# = resp["nomorTransaksi": "",
# = resp["responseDesc": "SUCCESS",
)
result.update(dict(rincian=rincian))
return result
else:
return self.inquiry_error(resp)