Commit 7a297605 by Solo Group

script test dan log db

1 parent 5fe6e6e8
[alembic]
script_location = ziggurat_foundations:migrations
sqlalchemy.url = {{db_url}}
[loggers]
keys = root,sqlalchemy,alembic
[handlers]
keys = console
[formatters]
keys = generic
[logger_root]
level = WARN
handlers = console
qualname =
[logger_sqlalchemy]
level = WARN
handlers =
qualname = sqlalchemy.engine
[logger_alembic]
level = INFO
handlers =
qualname = alembic
[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic
[formatter_generic]
format = %(levelname)-5.5s [%(name)s] %(message)s
datefmt = %H:%M:%S
# A generic, single database configuration.
[alembic]
# path to migration scripts
script_location = alembic
# template used to generate migration files
# file_template = %%(rev)s_%%(slug)s
# max length of characters to apply to the
# "slug" field
#truncate_slug_length = 40
# set to 'true' to run the environment during
# the 'revision' command, regardless of autogenerate
# revision_environment = false
# set to 'true' to allow .pyc and .pyo files without
# a source .py file to be detected as revisions in the
# versions/ directory
# sourceless = false
# version location specification; this defaults
# to alembic/versions. When using multiple version
# directories, initial revisions must be specified with --version-path
# version_locations = %(here)s/bar %(here)s/bat alembic/versions
# the output encoding used when revision files
# are written from script.py.mako
# output_encoding = utf-8
sqlalchemy.url = {{db_url}}
# Logging configuration
[loggers]
keys = root,sqlalchemy,alembic
[handlers]
keys = console
[formatters]
keys = generic
[logger_root]
level = WARN
handlers = console
qualname =
[logger_sqlalchemy]
level = WARN
handlers =
qualname = sqlalchemy.engine
[logger_alembic]
level = INFO
handlers =
qualname = alembic
[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic
[formatter_generic]
format = %(levelname)-5.5s [%(name)s] %(message)s
datefmt = %H:%M:%S
...@@ -36,4 +36,3 @@ def get_header(userid, password, time_stamp=None): ...@@ -36,4 +36,3 @@ def get_header(userid, password, time_stamp=None):
# signature = hmac.new(key=password, msg=value, digestmod=hashlib.sha256).digest() # signature = hmac.new(key=password, msg=value, digestmod=hashlib.sha256).digest()
return dict(userid=userid, signature=encoded_signature, key=time_stamp) return dict(userid=userid, signature=encoded_signature, key=time_stamp)
import json import json
# from opensipkd.iso8583.base.modules.network import models # from opensipkd.iso8583.base.modules.network import models
import transaction
import re import re
import sys import sys
import traceback import traceback
from opensipkd.string import FixLength
import requests import requests
from opensipkd.iso8583.bjb.samsat.structure import ( from opensipkd.iso8583.bjb.samsat.structure import (
...@@ -37,7 +39,7 @@ from opensipkd.string import FixLength ...@@ -37,7 +39,7 @@ from opensipkd.string import FixLength
# todo: harusnya diimport daro opensipkd.tools.rpc # todo: harusnya diimport daro opensipkd.tools.rpc
from ..api import get_header, get_jsonrpc from ..api import get_header, get_jsonrpc
from ..models import SamsatPayment, SamsatReversal, Base, DBSession
if sys.version < '3': if sys.version < '3':
from StringIO import StringIO from StringIO import StringIO
else: else:
...@@ -47,6 +49,17 @@ CODE_54 = ['05', '23'] ...@@ -47,6 +49,17 @@ CODE_54 = ['05', '23']
CODE_55 = ['01', '02', '03', '04', '06', '09', '10', '11', '12', '15', '99', CODE_55 = ['01', '02', '03', '04', '06', '09', '10', '11', '12', '15', '99',
'24', '22'] '24', '22']
from datetime import date
class DateVar(FixLength):
def __init__(self):
FixLength.__init__(self, [
['year', 4, 'N'],
['month', 2, 'N'],
['day', 2, 'N'],
])
def get_value(self, year=None):
return date(self.get('year'), self.get('month'), self.get('day'))
def date2str(d): def date2str(d):
return d and d.strftime('%Y%m%d') or None return d and d.strftime('%Y%m%d') or None
...@@ -92,21 +105,22 @@ class Doc(Transaction): ...@@ -92,21 +105,22 @@ class Doc(Transaction):
return INVOICE_PROFILE return INVOICE_PROFILE
def is_allowed(self): def is_allowed(self):
return True # return True
# todo: to be updated # todo: to be updated
# if 'allowed id' not in self.conf.host: # if 'allowed id' not in self.conf.host:
# return True # return True
# #
# bank_id = int(self.from_iso.get_value(32)) bank_id = self.from_iso.getBit(32)
# return bank_id in self.conf['allowed id'] return bank_id in self.conf['banks']
########### ###########
# Inquiry # # Inquiry #
########### ###########
def inquiry_request(self, data): def inquiry_request(self, data={}):
for p in data: for p in data:
self.setBit(int(p), data[p]) self.setBit(int(p), data[p])
self.setMTI('0200') self.setMTI('0200')
self.set_transmission()
self.set_stan() self.set_stan()
def inquiry_response_(self): def inquiry_response_(self):
...@@ -136,7 +150,7 @@ class Doc(Transaction): ...@@ -136,7 +150,7 @@ class Doc(Transaction):
if len(invoice_id_raw) == 10: if len(invoice_id_raw) == 10:
invoice_id_raw = invoice_id_raw.ljust(16, ' ') invoice_id_raw = invoice_id_raw.ljust(16, ' ')
invoice_id_raw = invoice_id_raw.ljust(32, '0') invoice_id_raw = invoice_id_raw.ljust(32, '0')
self.log_info(invoice_id_raw) # self.log_info(invoice_id_raw)
r = self.invoice_id.set_raw(invoice_id_raw) r = self.invoice_id.set_raw(invoice_id_raw)
if not r: if not r:
return self.ack_invalid_number_2(invoice_id_raw) return self.ack_invalid_number_2(invoice_id_raw)
...@@ -275,11 +289,12 @@ class Doc(Transaction): ...@@ -275,11 +289,12 @@ class Doc(Transaction):
########### ###########
# Payment # # Payment #
########### ###########
def payment_request(self, data): def payment_request(self, data=()):
for p in data: for p in data:
self.setBit(int(p), data[p]) self.setBit(int(p), data[p])
self.setMTI('0200') self.setMTI('0200')
self.set_stan() self.set_stan()
self.set_transmission()
def payment_response(self): def payment_response(self):
self.payment_response_() self.payment_response_()
...@@ -351,44 +366,58 @@ class Doc(Transaction): ...@@ -351,44 +366,58 @@ class Doc(Transaction):
return return
def save_payment(self, ntpd): def save_payment(self, ntpd):
channel_id = self.from_iso.get_channel_id()
# todo: save payment ntb = self.from_iso.get_ntb()
# total_bayar = self.from_iso.get_amount()
#channel_id = self.from_iso.get_channel_id() profile = self.from_iso.getBit(61)
#ntb = self.from_iso.get_ntb() self.invoice_profile.set_raw(profile)
#total_bayar = self.from_iso.get_amount() data = dict()
#pay = models.IsoPayment() for f in INVOICE_PROFILE:
#pay.ntb = ntb field = f[0].replace(" ","_").lower()
#pay.ntp = ntpd if field in ["tgl_akhir_pajak_lama", "tgl_akhir_pajak_baru"]:
#pay.invoice_no = self.invoice_id_raw[:16].strip() v = str(self.invoice_profile[f[0]])
#pay.nik = self.invoice_id_raw[16:32].strip() tgl = DateVar()
## pay.tgl_bayar = self.from_iso.get_transaction_date() tgl.set_raw(v)
#pay.amount = total_bayar v = tgl.get_value()
#pay.channel_id = channel_id else:
#pay.channel_nm = self.from_iso.getBit(43) v = self.invoice_profile[f[0]]
#pay.bank_ip = self.get_bank_ip() data[field] = v
#pay.biller_id = self.mod_conf['kd_biller']
## todo: mustbe transaction_date_time pay = SamsatPayment()
#pay.tgl = self.from_iso.get_transaction_date() pay.from_dict(data)
pay.ntb = ntb
#if 'id' in self.mod_conf: pay.ntp = ntpd
pay.nomor_bayar = self.invoice_id_raw[:16].strip()
pay.nik = self.invoice_id_raw[16:32].strip()
# pay.tgl_bayar = self.from_iso.get_transaction_date()
pay.jumlah = total_bayar
pay.channel_id = channel_id
pay.channel_name = self.from_iso.getBit(43)
pay.bank_ip = self.get_bank_ip()
# pay.biller_id = self.mod_conf['kd_biller']
# todo: mustbe transaction_date_time
pay.tgl = self.from_iso.get_transaction_datetime()
# if 'id' in self.mod_conf:
# pay.bank_id = self.mod_conf.get('id') # pay.bank_id = self.mod_conf.get('id')
#else: # else:
# pay.bank_id = int(self.from_iso.get_value(32)) pay.bank_id = int(self.from_iso.getBit(32))
## pay.iso_request = self.from_iso.raw.upper() # pay.iso_request = self.from_iso.raw.upper()
## pay.transmission = self.from_iso.get_transmission_datetime() pay.transmission = self.from_iso.get_transmission_datetime()
## pay.stan = self.from_iso.get_value(11) pay.stan = self.from_iso.get_value(11)
## pay.kd_wil = self.invoice_profile['Kode Wilayah'] pay.kd_wil = self.invoice_profile['Kode Wilayah']
## pay.settlement = self.from_iso.get_settlement_date() pay.settlement = self.from_iso.get_settlement_date()
## pay.bit_inv_profile = self.from_iso.get_invoice_id_raw() pay.bit_inv_profile = self.from_iso.get_invoice_id_raw()
#self.db_profile.commit(pay) DBSession.add(pay)
DBSession.flush()
transaction.commit()
self.ack() self.ack()
############ ############
# Reversal # # Reversal #
############ ############
def reversal_request(self, data): def reversal_request(self, data=()):
for p in data: for p in data:
self.setBit(int(p), data[p]) self.setBit(int(p), data[p])
self.setMTI('0400') self.setMTI('0400')
......
...@@ -5,7 +5,6 @@ from datetime import time ...@@ -5,7 +5,6 @@ from datetime import time
class Job(NetworkJob): class Job(NetworkJob):
# pass # pass
def get_iso_class(self): def get_iso_class(self):
return Doc return Doc
......
...@@ -5,20 +5,11 @@ import locale ...@@ -5,20 +5,11 @@ import locale
import importlib import importlib
from datetime import datetime from datetime import datetime
import imp import imp
from opensipkd.forwarder.base.iso8583_forwarder import conf from iso8583_web.read_conf import read_conf, name_conf, ip_conf
from opensipkd.forwarder.base.modules.ws_tools import send_rpc from .doc import Doc
from .job import Job
def main(argv=sys.argv): def main(argv=sys.argv):
# global listen_ports
# global ip_conf
# global allowed_ips
# global hosts
# global logs
# global stop_dir
# global running
# global log
##############
# Blok Utama # # Blok Utama #
############## ##############
global conf global conf
...@@ -29,7 +20,7 @@ def main(argv=sys.argv): ...@@ -29,7 +20,7 @@ def main(argv=sys.argv):
host = 'bjb' host = 'bjb'
no_rangka = "" no_rangka = ""
no_ktp = "" no_ktp = ""
no_invoice = "" no_invoice = conf_file = ""
amount = 0 amount = 0
pars = OptionParser() pars = OptionParser()
pars.add_option('-p', '--no-pol') pars.add_option('-p', '--no-pol')
...@@ -53,7 +44,10 @@ def main(argv=sys.argv): ...@@ -53,7 +44,10 @@ def main(argv=sys.argv):
no_invoice = option.invoice no_invoice = option.invoice
amount = option.amount amount = option.amount
read_conf(conf_file)
_host = conf.host _host = conf.host
job = Job(conf=ip_conf[''])
rpc = _host[host]['samsat_banten'] rpc = _host[host]['samsat_banten']
kini = datetime.now() kini = datetime.now()
tgl_transaksi = kini.strftime("%Y%m%d") tgl_transaksi = kini.strftime("%Y%m%d")
......
...@@ -2,11 +2,10 @@ from datetime import datetime ...@@ -2,11 +2,10 @@ from datetime import datetime
from pprint import pprint from pprint import pprint
from time import sleep from time import sleep
from optparse import OptionParser from optparse import OptionParser
from opensipkd.forwarder.bjb.samsat.structure import INQUIRY_CODE from opensipkd.iso8583.bjb.samsat.structure import INQUIRY_CODE
from .DbTransaction import DbTransaction from .doc import Doc
import os import os
import imp from iso8583_web.scripts.forwarder import iso_to_dict
def inquiry_request(iso, invoice_id, bank_id=None): def inquiry_request(iso, invoice_id, bank_id=None):
bank_id = bank_id and bank_id or '110' bank_id = bank_id and bank_id or '110'
...@@ -19,46 +18,26 @@ def inquiry_request(iso, invoice_id, bank_id=None): ...@@ -19,46 +18,26 @@ def inquiry_request(iso, invoice_id, bank_id=None):
iso.setBit(18, '6010') iso.setBit(18, '6010')
iso.setBit(22, '021') iso.setBit(22, '021')
iso.setBit(32, bank_id) iso.setBit(32, bank_id)
iso.setBit(33, '00110') iso.setBit(33, bank_id.rjust(5,'0')) #forwarder
# iso.setBit(35, '')
iso.setBit(37, kini.strftime('%H%M%S')) iso.setBit(37, kini.strftime('%H%M%S'))
iso.setBit(41, '000') iso.setBit(41, '000')
iso.setBit(42, '000000000000000') iso.setBit(42, '000000000000000')
iso.setBit(43, 'Nama Bank') iso.setBit(43, 'Nama Bank')
iso.setBit(49, '390') iso.setBit(49, '390')
# iso.setBit(59, 'PAY')
# iso.setBit(60, '142')
iso.setBit(61, invoice_id) iso.setBit(61, invoice_id)
# iso.setBit(63, '')
# iso.setBit(102, '')
# iso.setBit(107, '')
# test_not_found = False
# name = '.'.join(['bppt', 'test'])
# try:
# module = __import__(name)
# except ImportError, test_not_found:
# name = '.'.join(['bppt', conf.module_name])
# module = __import__(name)
# area_module = getattr(module, conf.module_name)
# DbTransaction = area_module.DbTransaction
#
# if test_not_found:
# inquiry_request = default_inquiry_request
# else:
# inquiry_request = area_module.test.inquiry_request
from iso8583_web.read_conf import (read_conf, get_str, name_conf)
class TestInquiry(object): class TestInquiry(object):
def __init__(self, argv): def __init__(self, argv):
self.option = get_option(argv) self.option = get_option(argv)
if not self.option: if not self.option:
return return
self.invoice_id = self.option.invoice_id.replace('-', '') self.invoice_id = self.option.invoice_id.replace('-', '')
conf_file = self.option.conf_file self.bank_id = self.option.bank_id
# conf_file = self.option.conf_file
self.host = self.option.host self.host = self.option.host
conf = imp.load_source('conf', conf_file) # conf = imp.load_source('conf', conf_file)
self.conf = conf.host[self.host] self.conf = name_conf[self.host]
# dict(name=streamer_name, ip='127.0.0.1', bank_id=bank_id) # dict(name=streamer_name, ip='127.0.0.1', bank_id=bank_id)
def run(self): def run(self):
...@@ -66,17 +45,17 @@ class TestInquiry(object): ...@@ -66,17 +45,17 @@ class TestInquiry(object):
return return
print('\nBank kirim inquiry request') print('\nBank kirim inquiry request')
req_iso = DbTransaction(conf=self.conf) req_iso = Doc(conf=self.conf)
req_iso.set_transaction_request() req_iso.inquiry_request()
inquiry_request(req_iso, self.invoice_id) inquiry_request(req_iso, self.invoice_id, self.bank_id)
raw = self.get_raw(req_iso) raw = self.get_raw(req_iso)
print('\nPemda terima inquiry request') print('\nPemda terima inquiry request')
from_iso = DbTransaction(conf=self.conf) from_iso = Doc(conf=self.conf)
from_iso.setIsoContent(raw) from_iso.setIsoContent(raw)
print('\nPemda kirim inquiry response') print('\nPemda kirim inquiry response')
resp_iso = DbTransaction(from_iso=from_iso, conf=self.conf) resp_iso = Doc(from_iso=from_iso, conf=self.conf)
func = getattr(resp_iso, from_iso.get_func_name()) func = getattr(resp_iso, from_iso.get_func_name())
func() func()
self.get_raw(resp_iso) self.get_raw(resp_iso)
...@@ -85,7 +64,7 @@ class TestInquiry(object): ...@@ -85,7 +64,7 @@ class TestInquiry(object):
def get_raw(self, iso): def get_raw(self, iso):
msg = 'MTI {mti}'.format(mti=iso.getMTI()) msg = 'MTI {mti}'.format(mti=iso.getMTI())
print(msg) print(msg)
pprint(iso.getBitsAndValues()) pprint(iso_to_dict(iso)) # getBitsAndValues())
raw = iso.getRawIso() raw = iso.getRawIso()
sleep(1) sleep(1)
print([raw]) print([raw])
...@@ -100,6 +79,7 @@ def get_option(argv): ...@@ -100,6 +79,7 @@ def get_option(argv):
pars.add_option('-o', '--host', default=host_name, help='default ' + host_name) pars.add_option('-o', '--host', default=host_name, help='default ' + host_name)
pars.add_option('-i', '--invoice-id') pars.add_option('-i', '--invoice-id')
pars.add_option('-c', '--conf-file', default=conf_file, help='default ' + conf_file) pars.add_option('-c', '--conf-file', default=conf_file, help='default ' + conf_file)
pars.add_option('-b', '--bank-id', default='001', help='default BI 001')
option, remain = pars.parse_args(argv) option, remain = pars.parse_args(argv)
if not option.invoice_id: if not option.invoice_id:
print('--invoice-id harus diisi.') print('--invoice-id harus diisi.')
......
from datetime import datetime from datetime import datetime
from opensipkd.forwarder.bjb.samsat.structure import ( from opensipkd.iso8583.bjb.samsat.structure import (
PAYMENT_CODE, PAYMENT_CODE,
REQUEST_BITS, TRANSACTION_BITS as REQUEST_BITS,
) )
from .test_inquiry import ( from .test_inquiry import (
DbTransaction, Doc,
TestInquiry, TestInquiry,
# test_not_found,
# area_module,
) )
...@@ -30,16 +28,17 @@ class TestPayment(TestInquiry): ...@@ -30,16 +28,17 @@ class TestPayment(TestInquiry):
resp_iso = TestInquiry.run(self) resp_iso = TestInquiry.run(self)
if not resp_iso.is_ok_response(): if not resp_iso.is_ok_response():
return resp_iso, None return resp_iso, None
print('\nBank kirim payment request') print('\nBank kirim payment request')
req_iso = DbTransaction(conf=self.conf) req_iso = Doc(conf=self.conf)
req_iso.set_transaction_request() req_iso.payment_request()
payment_request(req_iso, resp_iso) # , self.conf['bank_id'] payment_request(req_iso, resp_iso) # , self.conf['bank_id']
raw = self.get_raw(req_iso) raw = self.get_raw(req_iso)
print('\nPemda terima payment request') print('\nPemda terima payment request')
from_iso = DbTransaction(conf=self.conf) from_iso = Doc(conf=self.conf)
from_iso.setIsoContent(raw) from_iso.setIsoContent(raw)
print('\nPemda kirim payment response') print('\nPemda kirim payment response')
resp_iso = DbTransaction(from_iso=from_iso, conf=self.conf) # , conf=self.conf resp_iso = Doc(from_iso=from_iso, conf=self.conf) # , conf=self.conf
func = getattr(resp_iso, from_iso.get_func_name()) func = getattr(resp_iso, from_iso.get_func_name())
func() func()
self.get_raw(resp_iso) self.get_raw(resp_iso)
......
from datetime import datetime from datetime import datetime
from test_payment import ( from .test_payment import (
DbTransaction, Doc,
TestPayment, TestPayment,
) )
def reversal_request(iso, pay_req_iso): def reversal_request(iso, pay_req_iso):
iso.copy(from_iso=pay_req_iso) iso.copy(from_iso=pay_req_iso)
iso.set_reversal_request() iso.reversal_request()
class TestReversal(TestPayment): class TestReversal(TestPayment):
...@@ -16,14 +16,14 @@ class TestReversal(TestPayment): ...@@ -16,14 +16,14 @@ class TestReversal(TestPayment):
if not pay_resp_iso.is_ok_response(): if not pay_resp_iso.is_ok_response():
return return
print('Bank kirim reversal request') print('Bank kirim reversal request')
req_iso = DbTransaction(conf=self.conf) req_iso = Doc(conf=self.conf)
reversal_request(req_iso, pay_req_iso) reversal_request(req_iso, pay_req_iso)
raw = self.get_raw(req_iso) raw = self.get_raw(req_iso)
print('Pemda terima reversal request') print('Pemda terima reversal request')
from_iso = DbTransaction(conf=self.conf) from_iso = Doc(conf=self.conf)
from_iso.setIsoContent(raw) from_iso.setIsoContent(raw)
print('Pemda kirim reversal response') print('Pemda kirim reversal response')
resp_iso = DbTransaction(from_iso=from_iso, conf=self.conf) resp_iso = Doc(from_iso=from_iso, conf=self.conf)
func = getattr(resp_iso, from_iso.get_func_name()) func = getattr(resp_iso, from_iso.get_func_name())
func() func()
self.get_raw(resp_iso) self.get_raw(resp_iso)
......
from iso8583_web.models import (
BaseModel, Base, DBSession
)
from sqlalchemy import (
Column,
String,
DateTime,
Integer,
ForeignKey,
Text
)
class SamsatPayment(Base, BaseModel):
__tablename__ = 'samsat_payment'
nomor_bayar = Column(String(16), nullable=False)
nomor_rangka = Column(String(25))
nomor_mesin = Column(String(25))
nomor_identitas = Column(String(18))
nama_pemilik = Column(String(25))
alamat_pemilik = Column(String(40))
nomor_polisi = Column(String(9))
warna_plat = Column(String(6))
milik_ke = Column(String(3))
nama_jenis_kb = Column(String(15))
nama_merk_kb = Column(String(15))
nama_model_kb = Column(String(30))
tahun_buatan = Column(String(4))
tgl_akhir_pajak_lama = Column(DateTime(timezone=False))
tgl_akhir_pajak_baru = Column(DateTime(timezone=False))
pokok_bbn = Column(Integer)
denda_bbn = Column(Integer)
pokok_pkb = Column(Integer)
denda_pkb = Column(Integer)
pokok_swd = Column(Integer)
denda_swd = Column(Integer)
pokok_adm_stnk = Column(Integer)
pokok_adm_tnkb = Column(Integer)
jumlah = Column(Integer)
keterangan = Column(Integer)
kode_wilayah = Column(Integer)
ntb = Column(String(32), nullable=False)
ntp = Column(String(32), nullable=False)
tgl = Column(DateTime(timezone=False))
channel_id = Column(Integer, nullable=False)
channel_name = Column(String(128))
bank_id = Column(Integer, nullable=False)
bank_ip = Column(String(64), nullable=False)
transmission = Column(DateTime(timezone=False))
stan = Column(String(32))
kd_wil = Column(String(32))
settlement = Column(DateTime(timezone=False))
bit_inv_profile = Column(Text)
class SamsatReversal(Base, BaseModel):
__tablename__ = 'samsat_reversal'
id = Column(Integer, ForeignKey(SamsatPayment.id), nullable=False,
primary_key=True)
ntp = Column(String(32), nullable=False)
tgl_reversal = Column(DateTime(timezone=False))
import os
import sys
import csv
import subprocess
import transaction
from getpass import getpass
from sqlalchemy import engine_from_config
from ziggurat_foundations.models.services.user import UserService
from pyramid.paster import (
get_appsettings,
setup_logging,
)
from pyramid.i18n import (
Localizer,
TranslationStringFactory,
Translations,
)
from iso8583_web.models import (
DBSession,
Base,
)
from ..models import (
SamsatPayment,
SamsatReversal,
)
from iso8583_web.scripts.initialize_db import (
usage, read_file, my_registry, restore_csv, append_csv)
def alembic_run(ini_file, url):
bin_path = os.path.split(sys.executable)[0]
alembic_bin = os.path.join(bin_path, 'alembic')
command = (alembic_bin, 'upgrade', 'head')
s = read_file(ini_file)
s = s.replace('{db_url}', url)
f = open('alembic.ini', 'w')
f.write(s)
f.close()
subprocess.call(command)
os.remove('alembic.ini')
def get_file(filename):
base_dir = os.path.split(__file__)[0]
fullpath = os.path.join(base_dir, 'data', filename)
return open(fullpath)
def main(argv=sys.argv):
if len(argv) != 2:
usage(argv)
config_uri = argv[1]
setup_logging(config_uri)
settings = get_appsettings(config_uri)
my_registry['settings'] = settings
engine = engine_from_config(settings, 'sqlalchemy.')
Base.metadata.bind = engine
Base.metadata.create_all()
#alembic_run('alembic.ini.tpl', settings['sqlalchemy.url'])
# with transaction.manager:
# append_csv(Group, 'groups.csv', ['group_name'])
# restore_csv(UserGroup, 'users_groups.csv')
# restore_csv(Bank, 'bank.csv')
# restore_csv(Method, 'iso_method.csv')
# restore_csv(Jenis, 'jenis.csv')
# restore_csv(Kategori, 'kategori.csv')
...@@ -126,7 +126,7 @@ INVOICE_PROFILE = [ ...@@ -126,7 +126,7 @@ INVOICE_PROFILE = [
ERR_INVALID_NUMBER = 'Invoice ID {invoice_id} tidak benar' ERR_INVALID_NUMBER = 'Invoice ID {invoice_id} tidak benar'
ERR_INVALID_BANK = 'Bank ID {id} tidak diperkenankan' ERR_INVALID_BANK = 'Bank ID {bank_id} tidak diperkenankan'
ERR_SETTLEMENT_DATE = 'Settlement date {raw} tidak benar' ERR_SETTLEMENT_DATE = 'Settlement date {raw} tidak benar'
ERR_TRANSACTION_DATETIME = 'Transaction datetime {raw} tidak benar' ERR_TRANSACTION_DATETIME = 'Transaction datetime {raw} tidak benar'
ERR_TRANSACTION_DATE = 'Transaction date {raw} tidak benar' ERR_TRANSACTION_DATE = 'Transaction date {raw} tidak benar'
......
...@@ -259,4 +259,5 @@ class Transaction(BaseTransaction, Log): ...@@ -259,4 +259,5 @@ class Transaction(BaseTransaction, Log):
self.setBit(62, msg) self.setBit(62, msg)
BaseTransaction.ack_other(self, msg) BaseTransaction.ack_other(self, msg)
def set_transaction_code(self, code):
self.setBit(3, code)
...@@ -33,4 +33,9 @@ setup( ...@@ -33,4 +33,9 @@ setup(
packages=packages, packages=packages,
install_requires=requires, install_requires=requires,
zip_safe=False, zip_safe=False,
) entry_points={
'console_scripts': [
'initialize_bjb_samsat_db = opensipkd.iso8583.bjb.samsat.scripts.initialize_db:main',
]
}
)
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!