Commit 78e0a6bf by Owo Sugiana

do_payment() tambah nominal dan denda

1 parent e5ff437d
0.3.14 2024-08-06
-----------------
- do_payment() tambah nominal dan denda untuk memudahkan rekonsiliasi melalui
bin/pbb_inquiry
- bin/pbb_inquiry tambah pilihan --nominal saat --payment
- bin/pbb_inquiry tambah pilihan --update-denda
0.3.13 2024-07-31
-----------------
- bin/pbb_inquiry tambah opsi --update-tp untuk memperbarui tempat pembayaran.
......
[build-system]
requires = ['setuptools >= 64']
[project]
name = 'sismiop-models'
version = '0.3.13'
dependencies = [
'sqlalchemy',
'zope.sqlalchemy',
'transaction',
'psycopg2-binary',
'opensipkd-hitung @ git+https://git.opensipkd.com/sugiana/opensipkd-hitung.git',
]
requires-python = '>= 3.6'
authors = [
{name='Owo Sugiana', email='sugiana@gmail.com'},
]
description = 'Struktur tabel SISMIOP'
readme = 'README.rst'
license = {text='PostgreSQL License'}
classifiers = [
'Programming Language :: Python :: 3',
'Operating System :: OS Independent',
]
[project.scripts]
pbb_init_db = 'sismiop.scripts.init_db:main'
pbb_available_invoice = 'sismiop.scripts.available_invoice:main'
pbb_available_invoice_tangsel = 'sismiop.scripts.available_invoice:tangsel'
pbb_inquiry = 'sismiop.scripts.inquiry:main'
import os
from setuptools import (
setup,
find_packages,
)
here = os.path.abspath(os.path.dirname(__file__))
with open(os.path.join(here, 'README.rst')) as f:
README = f.read()
with open(os.path.join(here, 'CHANGES.txt')) as f:
CHANGES = f.read()
line = CHANGES.splitlines()[0]
version = line.split()[0]
requires = [
'sqlalchemy',
'transaction',
'zope.sqlalchemy',
'psycopg2-binary',
'opensipkd-hitung @ '
'git+https://git.opensipkd.com/sugiana/opensipkd-hitung.git',
]
import setuptools
setup(
name='sismiop-models',
version=version,
description='Struktur tabel SISMIOP',
long_description=README + '\n\n' + CHANGES,
author='Owo Sugiana',
author_email='sugiana@gmail.com',
license='PostgreSQL License',
packages=find_packages(),
install_requires=requires,
zip_safe=False,
entry_points={
'console_scripts': [
'pbb_init_db = sismiop.scripts.init_db:main',
'pbb_available_invoice = sismiop.scripts.available_invoice:main',
'pbb_available_invoice_tangsel = '
'sismiop.scripts.available_invoice:tangsel',
'pbb_inquiry = sismiop.scripts.inquiry:main',
]
}
setuptools.setup(
packages=setuptools.find_packages(),
)
......@@ -42,6 +42,7 @@ def date_from_str(s):
help_tgl = 'butuh --payment'
help_nominal = 'butuh --payment'
help_status_bayar = 'Field status_pembayaran_sppt = 1 jika lunas'
help_payment_file = 'File CSV rekonsiliasi'
......@@ -52,11 +53,13 @@ def get_option(argv):
pars.add_argument('--invoice-id')
pars.add_argument('--payment', action='store_true')
pars.add_argument('--tgl-bayar', help=help_tgl)
pars.add_argument('--nominal', type=int, help=help_nominal)
pars.add_argument('--reversal', action='store_true')
pars.add_argument('--payment-file', help=help_payment_file)
pars.add_argument(
'--update-status-bayar', action='store_true', help=help_status_bayar)
pars.add_argument('--update-tp')
pars.add_argument('--update-denda', type=int)
pars.add_argument('--sql-debug', action='store_true')
return pars.parse_args(argv)
......@@ -274,7 +277,7 @@ def main(argv=sys.argv):
print('Tagihan tidak diperkenankan dibayar melalui jalur ini.')
return
tp = get_tp(cf)
pay = inq.do_payment(tp, cf['nip_pencatat'])
pay = inq.do_payment(tp, cf['nip_pencatat'], option.nominal)
show_payment(inq, pay)
if option.reversal:
rev = Reversal(invoice_id)
......@@ -318,3 +321,23 @@ def main(argv=sys.argv):
pay.kd_tp = option.update_tp
DBSession.add(pay)
print(msg)
if option.update_denda is not None:
if not inq.is_paid():
print(
'Statusnya belum dibayar, field denda_sppt tidak bisa '
'diperbarui.')
return
pay = inq.invoice2payment()
if not pay:
print(
'Meski statusnya lunas tapi tidak ditemukan di '
'tabel pembayaran_sppt.')
return
if pay.denda_sppt == option.update_denda:
print('Field denda_sppt yang baru masih sama.')
return
msg = f'Pembayaran terakhir field denda_sppt {pay.denda_sppt} '\
f'sudah diubah menjadi {option.update_denda}'
pay.denda_sppt = option.update_denda
DBSession.add(pay)
print(msg)
......@@ -298,12 +298,15 @@ class Inquiry(Query):
if self.is_paid():
self.total = 0
def do_payment(self, bank_fields, nip_pencatat):
def do_payment(self, bank_fields, nip_pencatat, nominal=None, denda=0):
bayar = self.invoice2payment()
if bayar:
ke = bayar.pembayaran_sppt_ke + 1
else:
ke = 1
if nominal is not None:
self.total = nominal
self.denda = denda
inv = self.invoice
d = dict(
kd_propinsi=inv.kd_propinsi, kd_dati2=inv.kd_dati2,
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!