Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Owo Sugiana
/
sismiop-models
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit eef8497f
authored
Jun 23, 2020
by
Owo Sugiana
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
Perubahan rumus tangsel
1 parent
b89a16d4
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
106 additions
and
10 deletions
CHANGES.txt
setup.py
sismiop/scripts/available_invoice.py
sismiop/services/base.py
sismiop/services/tangsel/__init__.py
CHANGES.txt
View file @
eef8497
0.1.4 2020-06-23
----------------
- Penambahan Tangerang Selatan
0.1.3 2020-05-15
----------------
- Tambah Kabupaten Tasikmalaya
...
...
setup.py
View file @
eef8497
...
...
@@ -38,6 +38,7 @@ setup(
'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'
,
]
}
...
...
sismiop/scripts/available_invoice.py
View file @
eef8497
import
sys
from
configparser
import
ConfigParser
from
optparse
import
Option
Parser
from
argparse
import
Argument
Parser
from
sqlalchemy
import
create_engine
from
sqlalchemy.orm
import
sessionmaker
import
sismiop.services.base
...
...
@@ -9,17 +9,18 @@ import sismiop.services.base
def
get_option
(
argv
):
default_count
=
10
help_count
=
'default {}'
.
format
(
default_count
)
pars
=
OptionParser
()
pars
.
add_option
(
''
,
'--tahun'
)
pars
.
add_option
(
''
,
'--count'
,
type
=
int
,
default
=
default_count
,
help
=
help_count
)
pars
=
ArgumentParser
()
pars
.
add_argument
(
'conf'
)
pars
.
add_argument
(
'--tahun'
)
pars
.
add_argument
(
'--count'
,
type
=
int
,
default
=
default_count
,
help
=
help_count
)
return
pars
.
parse_args
(
argv
)
def
main
(
argv
=
sys
.
argv
):
option
,
remain
=
get_option
(
argv
[
1
:])
option
=
get_option
(
argv
[
1
:])
count
=
int
(
option
.
count
)
conf_file
=
remain
[
0
]
conf_file
=
option
.
conf
conf
=
ConfigParser
()
conf
.
read
(
conf_file
)
module_name
=
conf
.
get
(
'main'
,
'module'
)
...
...
@@ -33,3 +34,33 @@ def main(argv=sys.argv):
sismiop
.
services
.
base
.
DBSession
=
session_factory
()
a
=
AvailableInvoice
(
persen_denda
,
count
,
option
.
tahun
)
a
.
show
()
def
get_option_tangsel
(
argv
):
default_count
=
10
help_count
=
'default {}'
.
format
(
default_count
)
pars
=
ArgumentParser
()
pars
.
add_argument
(
'conf'
)
pars
.
add_argument
(
'--tahun'
)
pars
.
add_argument
(
'--discount-penuh'
,
action
=
'store_true'
)
pars
.
add_argument
(
'--count'
,
type
=
int
,
default
=
default_count
,
help
=
help_count
)
return
pars
.
parse_args
(
argv
)
def
tangsel
(
argv
=
sys
.
argv
):
option
=
get_option_tangsel
(
argv
[
1
:])
conf_file
=
option
.
conf
conf
=
ConfigParser
()
conf
.
read
(
conf_file
)
module_name
=
conf
.
get
(
'main'
,
'module'
)
module
=
__import__
(
'sismiop.services.'
+
module_name
)
sub_module
=
getattr
(
module
.
services
,
module_name
)
AvailableInvoice
=
sub_module
.
AvailableInvoiceTangsel
db_url
=
conf
.
get
(
'main'
,
'db_url'
)
persen_denda
=
conf
.
getfloat
(
'main'
,
'persen_denda'
)
engine
=
create_engine
(
db_url
)
session_factory
=
sessionmaker
(
bind
=
engine
)
sismiop
.
services
.
base
.
DBSession
=
session_factory
()
a
=
AvailableInvoice
(
persen_denda
,
option
)
a
.
show
()
sismiop/services/base.py
View file @
eef8497
...
...
@@ -295,6 +295,9 @@ class AvailableInvoice(Query):
def
get_inquiry_class
(
self
):
return
Inquiry
def
get_filter
(
self
,
q
):
return
q
def
show
(
self
):
Invoice
=
self
.
get_invoice_model
()
Payment
=
self
.
get_payment_model
()
...
...
@@ -318,6 +321,7 @@ class AvailableInvoice(Query):
q
=
DBSession
.
query
(
Invoice
)
.
filter_by
(
status_pembayaran_sppt
=
'0'
)
if
self
.
tahun
:
q
=
q
.
filter_by
(
thn_pajak_sppt
=
self
.
tahun
)
q
=
self
.
get_filter
(
q
)
q
=
q
.
offset
(
offset
)
.
limit
(
1
)
inv
=
q
.
first
()
if
not
inv
:
...
...
sismiop/services/tangsel/__init__.py
View file @
eef8497
from
datetime
import
date
from
..base
import
thousand
from
sqlalchemy.orm
import
aliased
from
..base
import
(
thousand
,
get_db_session
,
)
from
..default
import
(
Inquiry
as
BaseInquiry
,
Reversal
,
...
...
@@ -8,19 +12,34 @@ from ..default import (
AKHIR_DISC
=
date
(
2020
,
12
,
31
)
THN_AWAL
=
2014
THN_AKHIR
=
2019
THN_DISC
=
[]
for
i
in
range
(
2014
,
2020
):
# 2014 - 2019
for
i
in
range
(
THN_AWAL
,
THN_AKHIR
+
1
):
THN_DISC
.
append
(
str
(
i
))
class
Inquiry
(
BaseInquiry
):
def
belum_lunas_di_periode_discount
(
self
):
DBSession
=
get_db_session
()
Sppt
=
self
.
get_invoice_model
()
q
=
DBSession
.
query
(
Sppt
)
q
=
self
.
get_filter_op
(
q
)
q
=
q
.
filter
(
Sppt
.
thn_pajak_sppt
.
in_
(
THN_DISC
),
Sppt
.
status_pembayaran_sppt
!=
'1'
)
return
q
.
first
()
def
hitung_denda
(
self
):
# Override
BaseInquiry
.
hitung_denda
(
self
)
self
.
denda_sblm_diskon
=
self
.
denda
if
self
.
tgl_bayar
.
date
()
>
AKHIR_DISC
:
return
if
self
.
invoice
.
thn_pajak_sppt
not
in
THN_DISC
:
if
self
.
invoice
.
thn_pajak_sppt
<
str
(
THN_AWAL
):
if
self
.
belum_lunas_di_periode_discount
():
return
self
.
denda
=
0
elif
self
.
invoice
.
thn_pajak_sppt
in
THN_DISC
:
self
.
denda
-=
int
(
0.5
*
self
.
denda
)
def
before_save
(
self
,
bayar
):
# Override
...
...
@@ -37,3 +56,40 @@ class AvailableInvoice(BaseAvailableInvoice):
return
s
return
'{}, Denda Sebelum Discount Rp {}'
.
format
(
s
,
thousand
(
inq
.
denda_sblm_diskon
))
class
AvailableInvoiceTangsel
(
AvailableInvoice
):
def
__init__
(
self
,
persen_denda
,
option
):
AvailableInvoice
.
__init__
(
self
,
persen_denda
,
option
.
count
,
option
.
tahun
)
self
.
option
=
option
def
get_filter
(
self
,
q
):
# Override
if
self
.
option
.
discount_penuh
:
DBSession
=
get_db_session
()
Sppt
=
self
.
get_invoice_model
()
Sppt1
=
aliased
(
Sppt
)
Sppt2
=
aliased
(
Sppt
)
subq1
=
DBSession
.
query
(
Sppt1
)
.
filter
(
Sppt1
.
kd_propinsi
==
Sppt
.
kd_propinsi
,
Sppt1
.
kd_dati2
==
Sppt
.
kd_dati2
,
Sppt1
.
kd_kecamatan
==
Sppt
.
kd_kecamatan
,
Sppt1
.
kd_kelurahan
==
Sppt
.
kd_kelurahan
,
Sppt1
.
kd_blok
==
Sppt
.
kd_blok
,
Sppt1
.
no_urut
==
Sppt
.
no_urut
,
Sppt1
.
kd_jns_op
==
Sppt
.
kd_jns_op
,
Sppt1
.
thn_pajak_sppt
.
in_
(
THN_DISC
))
subq2
=
DBSession
.
query
(
Sppt2
)
.
filter
(
Sppt2
.
kd_propinsi
==
Sppt
.
kd_propinsi
,
Sppt2
.
kd_dati2
==
Sppt
.
kd_dati2
,
Sppt2
.
kd_kecamatan
==
Sppt
.
kd_kecamatan
,
Sppt2
.
kd_kelurahan
==
Sppt
.
kd_kelurahan
,
Sppt2
.
kd_blok
==
Sppt
.
kd_blok
,
Sppt2
.
no_urut
==
Sppt
.
no_urut
,
Sppt2
.
kd_jns_op
==
Sppt
.
kd_jns_op
,
Sppt2
.
thn_pajak_sppt
.
in_
(
THN_DISC
),
Sppt2
.
status_pembayaran_sppt
!=
'1'
)
return
q
.
filter
(
Sppt
.
thn_pajak_sppt
<
str
(
THN_AWAL
),
subq1
.
exists
(),
~
subq2
.
exists
())
return
q
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment