available_invoice.py 1.22 KB
import sys
from configparser import ConfigParser
from argparse import ArgumentParser
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker


default_count = 10
help_count = f'default {default_count}'


def get_option(argv):
    pars = ArgumentParser()
    pars.add_argument('conf')
    pars.add_argument('--tahun', type=int)
    pars.add_argument('--jatuh-tempo-min')
    pars.add_argument('--jatuh-tempo-max')
    pars.add_argument('--nominal-min', type=int)
    pars.add_argument('--nominal-max', type=int)
    pars.add_argument(
        '--count', type=int, default=default_count, help=help_count)
    return pars.parse_args(argv)


def main(argv=sys.argv):
    option = get_option(argv[1:])
    conf = ConfigParser()
    conf.read(option.conf)
    module_name = 'services'
    module = __import__('opensipkd.webr.' + module_name)
    services = getattr(module.webr, module_name)
    AvailableInvoice = services.AvailableInvoice
    db_url = conf.get('main', 'db_url')
    persen_denda = conf.getfloat('main', 'persen_denda')
    engine = create_engine(db_url)
    session_factory = sessionmaker(bind=engine)
    module.webr.services.DBSession = session_factory()
    a = AvailableInvoice(persen_denda, option)
    a.show()