Commit 754ea334 by Owo Sugiana

Tambah tangsel

1 parent fb375ce2
0.2.2 2020-07-15
----------------
- Tambah tangsel
0.2.1 2020-05-27
----------------
- Tidak perlu lagi tabel bphtb_config karena opsi Invoice ID 16 digit juga
......
import sys
from configparser import ConfigParser
from argparse import ArgumentParser
from optparse import OptionParser
def get_option(argv):
......
import sys
from datetime import datetime
from configparser import ConfigParser
from optparse import OptionParser
from argparse import ArgumentParser
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
import transaction
......@@ -17,10 +17,11 @@ def show_rp(label, value):
def get_option(argv):
pars = OptionParser()
pars.add_option('-i', '--invoice-id')
pars.add_option('', '--payment', action='store_true')
pars.add_option('', '--reversal', action='store_true')
pars = ArgumentParser()
pars.add_argument('conf', help='File konfigurasi')
pars.add_argument('--invoice-id', required=True)
pars.add_argument('--payment', action='store_true')
pars.add_argument('--reversal', action='store_true')
return pars.parse_args(argv)
......@@ -63,8 +64,8 @@ def show_pkey_values(row):
def main(argv=sys.argv):
option, remain = get_option(argv[1:])
conf_file = remain[0]
option = get_option(argv[1:])
conf_file = option.conf
invoice_id = option.invoice_id
conf = ConfigParser()
conf.read(conf_file)
......
......@@ -38,8 +38,26 @@ class Common:
self.invoice_struct.set_raw(invoice_id)
self.tahun = self.invoice_struct['Tahun']
self.tahun = int(self.tahun)
q = self.query_invoice()
self.invoice = q.first()
if self.invoice_struct['Kode']:
q = self.query_invoice()
self.invoice = q.first()
else:
self.invoice = None
def get_kelurahan_model(self):
return Kelurahan
def get_kecamatan_model(self):
return Kecamatan
def get_invoice_model(self):
return Invoice
def get_payment_model(self):
return Payment
def get_customer_model(self):
return Customer
def get_db_session(self):
return DBSession
......@@ -48,6 +66,7 @@ class Common:
kode = int(self.invoice_struct['Kode'])
kode = str(kode)
DBSession = self.get_db_session()
Invoice = self.get_invoice_model()
return DBSession.query(Invoice).filter_by(
tahun=self.tahun, kode=kode, no_sspd=self.invoice_struct['SSPD No'])
......@@ -132,6 +151,7 @@ class Inquiry(Common):
def get_kecamatan(self):
DBSession = self.get_db_session()
Kecamatan = self.get_kecamatan_model()
q = DBSession.query(Kecamatan).filter_by(
kd_propinsi=self.invoice.kd_propinsi,
kd_dati2=self.invoice.kd_dati2,
......@@ -140,6 +160,7 @@ class Inquiry(Common):
def get_kelurahan(self):
DBSession = self.get_db_session()
Kelurahan = self.get_kelurahan_model()
q = DBSession.query(Kelurahan).filter_by(
kd_propinsi=self.invoice.kd_propinsi,
kd_dati2=self.invoice.kd_dati2,
......@@ -149,6 +170,7 @@ class Inquiry(Common):
def get_notaris(self):
DBSession = self.get_db_session()
Customer = self.get_customer_model()
q = DBSession.query(Customer).filter_by(id=self.invoice.ppat_id)
return q.first()
......@@ -300,8 +322,12 @@ class AvailableInvoice(BaseAvailableInvoice):
def get_inquiry_class(self):
return Inquiry
def get_invoice_model(self):
return Invoice
def get_query(self):
DBSession = self.get_db_session()
Invoice = self.get_invoice_model()
q = DBSession.query(Invoice).filter_by(status_pembayaran=0)
if self.option.tahun:
q = q.filter_by(tahun=self.option.tahun)
......
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from zope.sqlalchemy import register
import opensipkd.bphtb.tangsel.services
def set_conf(conf, name, default=None):
func = type(default)
if name in conf:
conf[name] = func(conf.get(name))
else:
conf[name] = 2
def init(conf):
set_conf(conf, 'persen_denda', 2.0)
engine = create_engine(conf['db_url'])
session_factory = sessionmaker(bind=engine)
DBSession = session_factory()
register(DBSession)
opensipkd.bphtb.tangsel.services.DBSession = DBSession
from ..tangerang_kabupaten.services import (
Inquiry as BaseInquiry,
Reversal as BaseReversal,
AvailableInvoice as BaseAvailableInvoice,
)
from .models import (
Kecamatan,
Kelurahan,
Customer,
Invoice,
Payment,
)
DBSession = None # override, please
def get_db_session():
return DBSession
class Inquiry(BaseInquiry):
def get_kelurahan_model(self): # Override
return Kelurahan
def get_kecamatan_model(self): # Override
return Kecamatan
def get_invoice_model(self): # Override
return Invoice
def get_payment_model(self): # Override
return Payment
def get_customer_model(self): # Override
return Customer
def get_db_session(self): # Override
return DBSession
class Reversal(BaseReversal):
def get_db_session(self): # Override
return DBSession
def get_invoice_model(self): # Override
return Invoice
def get_payment_model(self): # Override
return Payment
class AvailableInvoice(BaseAvailableInvoice):
def get_db_session(self): # Override
return DBSession
def get_inquiry_class(self): # Override
return Inquiry
def get_invoice_model(self): # Override
return Invoice
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!