Commit 754ea334 by Owo Sugiana

Tambah tangsel

1 parent fb375ce2
0.2.2 2020-07-15
----------------
- Tambah tangsel
0.2.1 2020-05-27 0.2.1 2020-05-27
---------------- ----------------
- Tidak perlu lagi tabel bphtb_config karena opsi Invoice ID 16 digit juga - Tidak perlu lagi tabel bphtb_config karena opsi Invoice ID 16 digit juga
......
import sys import sys
from configparser import ConfigParser from configparser import ConfigParser
from argparse import ArgumentParser from argparse import ArgumentParser
from optparse import OptionParser
def get_option(argv): def get_option(argv):
......
import sys import sys
from datetime import datetime from datetime import datetime
from configparser import ConfigParser from configparser import ConfigParser
from optparse import OptionParser from argparse import ArgumentParser
from sqlalchemy import create_engine from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker from sqlalchemy.orm import sessionmaker
import transaction import transaction
...@@ -17,10 +17,11 @@ def show_rp(label, value): ...@@ -17,10 +17,11 @@ def show_rp(label, value):
def get_option(argv): def get_option(argv):
pars = OptionParser() pars = ArgumentParser()
pars.add_option('-i', '--invoice-id') pars.add_argument('conf', help='File konfigurasi')
pars.add_option('', '--payment', action='store_true') pars.add_argument('--invoice-id', required=True)
pars.add_option('', '--reversal', action='store_true') pars.add_argument('--payment', action='store_true')
pars.add_argument('--reversal', action='store_true')
return pars.parse_args(argv) return pars.parse_args(argv)
...@@ -63,8 +64,8 @@ def show_pkey_values(row): ...@@ -63,8 +64,8 @@ def show_pkey_values(row):
def main(argv=sys.argv): def main(argv=sys.argv):
option, remain = get_option(argv[1:]) option = get_option(argv[1:])
conf_file = remain[0] conf_file = option.conf
invoice_id = option.invoice_id invoice_id = option.invoice_id
conf = ConfigParser() conf = ConfigParser()
conf.read(conf_file) conf.read(conf_file)
......
...@@ -38,8 +38,26 @@ class Common: ...@@ -38,8 +38,26 @@ class Common:
self.invoice_struct.set_raw(invoice_id) self.invoice_struct.set_raw(invoice_id)
self.tahun = self.invoice_struct['Tahun'] self.tahun = self.invoice_struct['Tahun']
self.tahun = int(self.tahun) self.tahun = int(self.tahun)
q = self.query_invoice() if self.invoice_struct['Kode']:
self.invoice = q.first() 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): def get_db_session(self):
return DBSession return DBSession
...@@ -48,6 +66,7 @@ class Common: ...@@ -48,6 +66,7 @@ class Common:
kode = int(self.invoice_struct['Kode']) kode = int(self.invoice_struct['Kode'])
kode = str(kode) kode = str(kode)
DBSession = self.get_db_session() DBSession = self.get_db_session()
Invoice = self.get_invoice_model()
return DBSession.query(Invoice).filter_by( return DBSession.query(Invoice).filter_by(
tahun=self.tahun, kode=kode, no_sspd=self.invoice_struct['SSPD No']) tahun=self.tahun, kode=kode, no_sspd=self.invoice_struct['SSPD No'])
...@@ -132,6 +151,7 @@ class Inquiry(Common): ...@@ -132,6 +151,7 @@ class Inquiry(Common):
def get_kecamatan(self): def get_kecamatan(self):
DBSession = self.get_db_session() DBSession = self.get_db_session()
Kecamatan = self.get_kecamatan_model()
q = DBSession.query(Kecamatan).filter_by( q = DBSession.query(Kecamatan).filter_by(
kd_propinsi=self.invoice.kd_propinsi, kd_propinsi=self.invoice.kd_propinsi,
kd_dati2=self.invoice.kd_dati2, kd_dati2=self.invoice.kd_dati2,
...@@ -140,6 +160,7 @@ class Inquiry(Common): ...@@ -140,6 +160,7 @@ class Inquiry(Common):
def get_kelurahan(self): def get_kelurahan(self):
DBSession = self.get_db_session() DBSession = self.get_db_session()
Kelurahan = self.get_kelurahan_model()
q = DBSession.query(Kelurahan).filter_by( q = DBSession.query(Kelurahan).filter_by(
kd_propinsi=self.invoice.kd_propinsi, kd_propinsi=self.invoice.kd_propinsi,
kd_dati2=self.invoice.kd_dati2, kd_dati2=self.invoice.kd_dati2,
...@@ -149,6 +170,7 @@ class Inquiry(Common): ...@@ -149,6 +170,7 @@ class Inquiry(Common):
def get_notaris(self): def get_notaris(self):
DBSession = self.get_db_session() DBSession = self.get_db_session()
Customer = self.get_customer_model()
q = DBSession.query(Customer).filter_by(id=self.invoice.ppat_id) q = DBSession.query(Customer).filter_by(id=self.invoice.ppat_id)
return q.first() return q.first()
...@@ -300,8 +322,12 @@ class AvailableInvoice(BaseAvailableInvoice): ...@@ -300,8 +322,12 @@ class AvailableInvoice(BaseAvailableInvoice):
def get_inquiry_class(self): def get_inquiry_class(self):
return Inquiry return Inquiry
def get_invoice_model(self):
return Invoice
def get_query(self): def get_query(self):
DBSession = self.get_db_session() DBSession = self.get_db_session()
Invoice = self.get_invoice_model()
q = DBSession.query(Invoice).filter_by(status_pembayaran=0) q = DBSession.query(Invoice).filter_by(status_pembayaran=0)
if self.option.tahun: if self.option.tahun:
q = q.filter_by(tahun=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!