perizinan.py
2.16 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
import sys
from argparse import ArgumentParser
from configparser import ConfigParser
from pprint import pprint
from datetime import datetime
from opensipkd.string.money import thousand
from ..perizinan import Inquiry
default_base_url = 'https://dtoptimis.bogorkab.go.id/api/v2/intg'
help_base_url = 'default ' + default_base_url
def get_option(argv):
parser = ArgumentParser()
parser.add_argument('conf')
parser.add_argument('--invoice-id', required=True)
parser.add_argument('--payment', action='store_true')
parser.add_argument('--reversal', action='store_true')
parser.add_argument('--ntb')
parser.add_argument('--debug', action='store_true')
return parser.parse_args(argv)
def show(label, value):
print(f'{label}: {value}')
def show_money(label, value):
v = thousand(value)
s = f'Rp {v}'
show(label, s)
def error(s):
print(s)
sys.exit()
def main(argv=sys.argv[1:]):
option = get_option(argv)
conf = ConfigParser()
conf.read(option.conf)
do_inquiry = not option.reversal
inq = Inquiry(
conf.get('main', 'base_url'), conf.get('main', 'username'),
conf.get('main', 'password'), option.invoice_id, option.debug,
do_inquiry=do_inquiry)
if do_inquiry:
if not inq.invoice:
error(inq.resp)
if option.debug:
pprint(inq.resp)
show('Nama Izin', inq.nama_izin())
show('Kode Izin', inq.kode_izin())
show('Jenis Layanan', inq.jenis_layanan())
show('No Resi', inq.nomor_resi())
show('Pemohon', inq.nama_wp())
show('Lokasi', inq.lokasi())
show_money('Tagihan', inq.tagihan)
show_money('Denda', inq.denda)
show_money('Total', inq.total)
if option.payment:
if option.ntb:
ntb = option.ntb
else:
ntb = datetime.now().strftime('%Y%m%d%H%M%S')
r = inq.do_payment(ntb)
print('Payment Response:')
pprint(r)
show('NTP', inq.ntp())
elif option.reversal:
if not option.ntb:
error('--ntb harus diisi')
r = inq.do_reversal(option.ntb)
print('Reversal Response:')
pprint(r)