webr_update_deleted_payment.py 1.05 KB
import sys
from argparse import ArgumentParser
from configparser import ConfigParser
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from opensipkd.webr.models.default import Payment
from payment_report.models import Webr


pars = ArgumentParser()
pars.add_argument('conf')
option = pars.parse_args(sys.argv[1:])

conf = ConfigParser()
conf.read(option.conf)
cf = dict(conf.items('main'))

engine_prod = create_engine(cf['db_url'])
engine_rpt = create_engine(cf['report_db_url'])

factory_prod = sessionmaker(bind=engine_prod)
factory_rpt = sessionmaker(bind=engine_rpt)

db_session_prod = factory_prod()
db_session_rpt = factory_rpt()

q_rpt = db_session_rpt.query(Webr)
q_rpt = q_rpt.filter(Webr.id)
for rpt in q_rpt.order_by(Webr.id):
    q_prod = db_session_prod.query(Payment).filter_by(id=rpt.id)
    prod = q_prod.first()
    if prod:
        continue
    print(f'webr.ar_payment.id = {rpt.id} sudah tidak ada')
    rpt.pokok = rpt.denda = rpt.jml_bayar = 0
    db_session_rpt.add(rpt)
    db_session_rpt.flush()
    db_session_rpt.commit()