Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
aa.gusti
/
eis
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 b3d77e48
authored
Sep 23, 2025
by
Ari Agung Prasetiyo
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
penambahan menu target dan penyesuaian realisasi, target
1 parent
19007dbf
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
229 additions
and
55 deletions
eispajak/models/payment.py
eispajak/scripts/data/routes.csv
eispajak/views/pcpd.py
eispajak/views/penerimaan.py
eispajak/views/target.py
eispajak/views/templates/realtime_realisasi.pt
eispajak/views/templates/trend_penerimaan.pt
eispajak/models/payment.py
View file @
b3d77e4
...
@@ -292,6 +292,49 @@ class Targets(PCBase, DefaultModel):
...
@@ -292,6 +292,49 @@ class Targets(PCBase, DefaultModel):
return
query
return
query
class
TargetsBangbadil
(
PCBase
,
DefaultModel
):
__tablename__
=
'targets_bangbadil'
__table_args__
=
{
'schema'
:
'public'
}
id
=
Column
(
Integer
,
primary_key
=
True
)
created
=
Column
(
Date
,
nullable
=
False
)
updated
=
Column
(
Date
,
nullable
=
False
)
kode
=
Column
(
String
(
32
))
nama
=
Column
(
String
(
128
))
tahun
=
Column
(
Integer
)
jenis
=
Column
(
Integer
)
t_anggaran
=
Column
(
BigInteger
)
t_perubahan
=
Column
(
BigInteger
)
m01
=
Column
(
BigInteger
)
m02
=
Column
(
BigInteger
)
m03
=
Column
(
BigInteger
)
m04
=
Column
(
BigInteger
)
m05
=
Column
(
BigInteger
)
m06
=
Column
(
BigInteger
)
m07
=
Column
(
BigInteger
)
m08
=
Column
(
BigInteger
)
m09
=
Column
(
BigInteger
)
m10
=
Column
(
BigInteger
)
m11
=
Column
(
BigInteger
)
m12
=
Column
(
BigInteger
)
status
=
Column
(
SmallInteger
)
@classmethod
def
query_from
(
cls
,
columns
=
None
,
filters
=
None
,
db_session
=
PCDBSession
):
query
=
db_session
.
query
()
.
select_from
(
cls
)
if
columns
:
for
c
in
columns
:
query
=
query
.
add_columns
(
c
)
if
filters
:
filter_expressions
=
[]
for
d
in
filters
:
field
=
getattr
(
cls
,
d
[
0
])
operator
=
d
[
1
]
value
=
d
[
2
]
filter_expressions
.
append
(
field
.
op
(
operator
)(
value
))
query
=
query
.
filter
(
*
[
e
for
i
,
e
in
enumerate
(
filter_expressions
)
if
e
is
not
None
])
return
query
class
UploadRealisasiOpsen
(
PCBase
,
DefaultModel
):
class
UploadRealisasiOpsen
(
PCBase
,
DefaultModel
):
__tablename__
=
'upload_realisasi_opsen'
__tablename__
=
'upload_realisasi_opsen'
__table_args__
=
{
'schema'
:
'public'
}
__table_args__
=
{
'schema'
:
'public'
}
...
...
eispajak/scripts/data/routes.csv
View file @
b3d77e4
...
@@ -52,14 +52,19 @@ eis-slide-act,EIS Slide Act,/eis/slide/{act}/act,1,0
...
@@ -52,14 +52,19 @@ eis-slide-act,EIS Slide Act,/eis/slide/{act}/act,1,0
eis-slide-add,EIS Slide Add,/eis/slide/add,1,0
eis-slide-add,EIS Slide Add,/eis/slide/add,1,0
eis-slide-edit,EIS Slide Edit,/eis/slide/{id}/edit,1,0
eis-slide-edit,EIS Slide Edit,/eis/slide/{id}/edit,1,0
eis-slide-delete,EIS Slide Delete,/eis/slide/{id}/delete,1,0
eis-slide-delete,EIS Slide Delete,/eis/slide/{id}/delete,1,0
eis-pkbbbnkb,EIS PKB BBNKB,/eis/pkbbbnkb,1,0,1,,pkbbbnkb,Views,view_list,eis,form.pt
eis-pkbbbnkb,Opsen PKB BBNKB,/eis/pkbbbnkb,1,0,1,,pkbbbnkb,Views,view_list,eis,form.pt
eis-pkbbbnkb-act,EIS PKB BBNKB Act,/eis/pkbbbnkb/{act}/act,1,0,,,pkbbbnkb,Views,,eis
eis-pkbbbnkb-act,Opsen PKB BBNKB Act,/eis/pkbbbnkb/{act}/act,1,0,,,pkbbbnkb,Views,,eis
eis-pkbbbnkb-add,EIS PKB BBNKB Add,/eis/pkbbbnkb/add,1,0,,,pkbbbnkb,Views,,eis
eis-pkbbbnkb-add,Opsen PKB BBNKB Add,/eis/pkbbbnkb/add,1,0,,,pkbbbnkb,Views,,eis
eis-pkbbbnkb-edit,EIS PKB BBNKB Edit,/eis/pkbbbnkb/{id}/edit,1,0,,,pkbbbnkb,Views,,eis
eis-pkbbbnkb-edit,Opsen PKB BBNKB Edit,/eis/pkbbbnkb/{id}/edit,1,0,,,pkbbbnkb,Views,,eis
eis-pkbbbnkb-delete,EIS PKB BBNKB Delete,/eis/pkbbbnkb/{id}/delete,1,0,,,pkbbbnkb,Views,,eis
eis-pkbbbnkb-delete,Opsen PKB BBNKB Delete,/eis/pkbbbnkb/{id}/delete,1,0,,,pkbbbnkb,Views,,eis
eis-penerimaan,EIS PKB BBNKB,/eis/penerimaan,1,0,0,,penerimaan,Views,view_list,eis,form.pt
eis-penerimaan,EIS penerimaan,/eis/penerimaan,1,0,0,,penerimaan,Views,view_list,eis,form.pt
eis-penerimaan-act,EIS PKB BBNKB Act,/eis/penerimaan/{act}/act,1,0,,,penerimaan,Views,,eis
eis-penerimaan-act,EIS penerimaan Act,/eis/penerimaan/{act}/act,1,0,,,penerimaan,Views,,eis
eis-penerimaan-add,EIS PKB BBNKB Add,/eis/penerimaan/add,1,0,,,penerimaan,Views,,eis
eis-penerimaan-add,EIS penerimaan Add,/eis/penerimaan/add,1,0,,,penerimaan,Views,,eis
eis-penerimaan-edit,EIS PKB BBNKB Edit,/eis/penerimaan/{id}/edit,1,0,,,penerimaan,Views,,eis
eis-penerimaan-edit,EIS penerimaan Edit,/eis/penerimaan/{id}/edit,1,0,,,penerimaan,Views,,eis
eis-penerimaan-delete,EIS PKB BBNKB Delete,/eis/penerimaan/{id}/delete,1,0,,,penerimaan,Views,,eis
eis-penerimaan-delete,EIS penerimaan Delete,/eis/penerimaan/{id}/delete,1,0,,,penerimaan,Views,,eis
eis-target,Target,/eis/target,1,0,1,,target,Views,view_list,eis,form.pt
eis-target-act,Target Act,/eis/target/{act}/act,1,0,,,target,Views,,eis
eis-target-add,Target Add,/eis/target/add,1,0,,,target,Views,,eis
eis-target-edit,Target Edit,/eis/target/{id}/edit,1,0,,,target,Views,,eis
eis-target-delete,Target Delete,/eis/target/{id}/delete,1,0,,,target,Views,,eis
eispajak/views/pcpd.py
View file @
b3d77e4
...
@@ -8,26 +8,25 @@ from ..models.eis import Eis, Chart, ChartItem, Slide
...
@@ -8,26 +8,25 @@ from ..models.eis import Eis, Chart, ChartItem, Slide
from
datatables
import
ColumnDT
,
DataTables
from
datatables
import
ColumnDT
,
DataTables
from
sqlalchemy
import
func
,
and_
,
String
from
sqlalchemy
import
func
,
and_
,
String
from
sqlalchemy.sql.expression
import
cast
from
sqlalchemy.sql.expression
import
cast
from
..models.payment
import
PaymentPBB
,
PaymentPAD
,
PaymentBPHTB
,
PaymentWEBR
,
Targets
,
UploadRealisasiOpsen
from
..models.payment
import
PaymentPBB
,
PaymentPAD
,
PaymentBPHTB
,
PaymentWEBR
,
Targets
Bangbadil
,
UploadRealisasiOpsen
from
opensipkd.pbb.monitoring.models
import
PembayaranSppt
,
Kecamatan
,
Kelurahan
,
Sppt
from
opensipkd.pbb.monitoring.models
import
PembayaranSppt
,
Kecamatan
,
Kelurahan
,
Sppt
from
opensipkd.pjdl.models
import
Sspd
,
Pajak
,
Usaha
from
datetime
import
timedelta
from
datetime
import
timedelta
from
..models.payment
import
PCDBSession
from
..models.payment
import
PCDBSession
log
=
logging
.
getLogger
(
__name__
)
log
=
logging
.
getLogger
(
__name__
)
PAD_TYP
=
{
PAD_TYP
=
{
"hotel"
:
[
"PBJT - JASA PERHOTELAN"
],
"hotel"
:
[
"1"
],
"resto"
:
[
"RESTORAN"
,
"PBJT - MAKANAN DAN/ATAU MINUMAN"
],
"resto"
:
[
"2"
],
"hiburan"
:
[
"PBJT - JASA KESENIAN DAN HIBURAN"
],
"hiburan"
:
[
"3"
],
"ppju"
:
[
"PBJT - TENAGA LISTRIK"
],
"ppju"
:
[
"7"
],
"minerba"
:
[
"MINERAL BUKAN LOGAM DAN BATUAN"
],
"minerba"
:
[
"9"
],
"opsen_pkb"
:
[
"OPSEN PKB"
],
"parkir"
:
[
"5"
],
"opsen_bbnkb"
:
[
"OPSEN BBNKB"
],
"walet"
:
[
"10"
],
"parkir"
:
[
"PBJT - JASA PARKIR"
],
"atd"
:
[
"6"
],
"walet"
:
[
"PENGELOLAAN SARANG BURUNG WALET DAN SEJENISNYA"
],
"reklame"
:
[
"4"
],
"atd"
:
[
"AIR TANAH"
],
"pbb"
:
[
"0"
],
"reklame"
:
[
"REKLAME"
],
"pbb"
:
[
"PBB"
,
"BPHTB"
]
}
}
jenis_pajak
=
{
jenis_pajak
=
{
...
@@ -149,9 +148,9 @@ class Views(BaseView):
...
@@ -149,9 +148,9 @@ class Views(BaseView):
opsen
=
[
"opsen_pkb"
,
"opsen_bbnkb"
]
opsen
=
[
"opsen_pkb"
,
"opsen_bbnkb"
]
if
typ
!=
None
and
typ
not
in
opsen
:
if
typ
!=
None
and
typ
not
in
opsen
:
if
typ
==
"pajak"
:
if
typ
==
"pajak"
:
qry
=
qry
.
filter
(
table
.
jenis_pajak
.
notin_
(
PAD_TYP
[
'pbb'
]))
qry
=
qry
.
filter
(
Usaha
.
id
.
notin_
(
PAD_TYP
[
'pbb'
]))
else
:
else
:
qry
=
qry
.
filter
(
table
.
jenis_pajak
.
in_
(
PAD_TYP
[
typ
]))
qry
=
qry
.
filter
(
Usaha
.
id
.
in_
(
PAD_TYP
[
typ
]))
daily
=
[]
daily
=
[]
dailyTrx
=
[]
dailyTrx
=
[]
...
@@ -165,7 +164,7 @@ class Views(BaseView):
...
@@ -165,7 +164,7 @@ class Views(BaseView):
step
=
mapped
.
get
(
"step"
,
""
)
step
=
mapped
.
get
(
"step"
,
""
)
bayar
=
mapped
.
get
(
"bayar"
,
0
)
bayar
=
mapped
.
get
(
"bayar"
,
0
)
denda
=
mapped
.
get
(
"denda"
,
0
)
denda
=
mapped
.
get
(
"denda"
,
0
)
pokok
=
bayar
-
denda
pokok
=
float
(
bayar
)
-
denda
tx
=
mapped
.
get
(
"trx"
,
0
)
tx
=
mapped
.
get
(
"trx"
,
0
)
daily
.
append
((
step
,
pokok
))
daily
.
append
((
step
,
pokok
))
dailyTrx
.
append
((
step
,
tx
))
dailyTrx
.
append
((
step
,
tx
))
...
@@ -179,24 +178,24 @@ class Views(BaseView):
...
@@ -179,24 +178,24 @@ class Views(BaseView):
return
amt
,
trx
,
daily
,
dailyTrx
,
dailyAcc
,
dailyAccTrx
return
amt
,
trx
,
daily
,
dailyTrx
,
dailyAcc
,
dailyAccTrx
def
get_targets
(
self
,
kode
=
None
):
def
get_targets
(
self
,
kode
=
None
):
targets
=
Targets
.
query_from
([
targets
=
Targets
Bangbadil
.
query_from
([
func
.
sum
(
Targets
.
t_anggaran
)
.
label
(
"murni"
),
func
.
sum
(
Targets
Bangbadil
.
t_anggaran
)
.
label
(
"murni"
),
func
.
sum
(
Targets
.
t_perubahan
)
.
label
(
"perubahan"
),])
\
func
.
sum
(
Targets
Bangbadil
.
t_perubahan
)
.
label
(
"perubahan"
),])
\
.
filter
(
.
filter
(
Targets
.
tahun
==
self
.
ses
[
'tahun'
],
Targets
Bangbadil
.
tahun
==
self
.
ses
[
'tahun'
],
)
)
if
kode
:
if
kode
:
if
kode
==
"pajak"
:
if
kode
==
"pajak"
:
return
0
return
0
elif
kode
==
'opsen_pkb'
:
elif
kode
==
'opsen_pkb'
:
targets
=
targets
.
filter
(
targets
=
targets
.
filter
(
Targets
.
kode
.
ilike
(
'4.1.1.10
%
'
))
Targets
Bangbadil
.
kode
.
ilike
(
'4.1.1.10
%
'
))
elif
kode
==
'opsen_bbnkb'
:
elif
kode
==
'opsen_bbnkb'
:
targets
=
targets
.
filter
(
targets
=
targets
.
filter
(
Targets
.
kode
.
ilike
(
'4.1.1.11
%
'
))
Targets
Bangbadil
.
kode
.
ilike
(
'4.1.1.11
%
'
))
else
:
else
:
targets
=
targets
.
filter
(
targets
=
targets
.
filter
(
Targets
.
kode
.
ilike
(
jenis_pajak
[
kode
][
"kode"
]
+
'
%
'
))
Targets
Bangbadil
.
kode
.
ilike
(
jenis_pajak
[
kode
][
"kode"
]
+
'
%
'
))
targets
=
targets
.
first
()
targets
=
targets
.
first
()
if
targets
:
if
targets
:
target
=
targets
.
perubahan
or
targets
.
murni
or
0
target
=
targets
.
perubahan
or
targets
.
murni
or
0
...
@@ -338,39 +337,39 @@ class Views(BaseView):
...
@@ -338,39 +337,39 @@ class Views(BaseView):
}
}
def
get_pad_data
(
self
,
typ
=
None
):
def
get_pad_data
(
self
,
typ
=
None
):
if
log
.
root
.
level
==
logging
.
DEBUG
:
#
if log.root.level == logging.DEBUG:
today
=
datetime
.
strptime
(
'2025-06-05'
,
"
%
Y-
%
m-
%
d"
)
#
today = datetime.strptime('2025-06-05', "%Y-%m-%d")
else
:
#
else:
today
=
datetime
.
now
()
.
date
()
today
=
datetime
.
now
()
.
date
()
filter_ex
=
[]
filter_ex
=
[]
#Harian
#Harian
field
=
func
.
to_char
(
PaymentPAD
.
tgl
,
'yyyy-mm-dd'
)
field
=
func
.
to_char
(
Sspd
.
sspd
tgl
,
'yyyy-mm-dd'
)
filter_exp
=
PaymentPAD
.
tgl
.
between
(
today
-
timedelta
(
days
=
6
),
today
)
filter_exp
=
Sspd
.
sspd
tgl
.
between
(
today
-
timedelta
(
days
=
6
),
today
)
amt
,
trx
,
daily
,
dailyTrx
,
dailyAcc
,
dailyAccTrx
=
\
amt
,
trx
,
daily
,
dailyTrx
,
dailyAcc
,
dailyAccTrx
=
\
self
.
get_daily_data
(
PaymentPAD
,
field
,
self
.
get_daily_data
(
Sspd
,
field
,
today
.
strftime
(
"
%
Y-
%
m-
%
d"
),
filter_exp
,
typ
)
today
.
strftime
(
"
%
Y-
%
m-
%
d"
),
filter_exp
,
typ
)
#Total Tahun Berjalan
#Total Tahun Berjalan
field
=
func
.
to_char
(
PaymentPAD
.
tgl
,
'IYYY'
)
field
=
func
.
to_char
(
Sspd
.
sspd
tgl
,
'IYYY'
)
filter_exp
=
PaymentPAD
.
tgl
.
between
(
filter_exp
=
Sspd
.
sspd
tgl
.
between
(
datetime
.
strptime
(
f
"{today.year}-01-01"
,
"
%
Y-
%
m-
%
d"
),
today
)
datetime
.
strptime
(
f
"{today.year}-01-01"
,
"
%
Y-
%
m-
%
d"
),
today
)
ytd
,
ytdTrx
,
yearly
,
yearlyTrx
,
yearlyAcc
,
yearlyAccTrx
=
\
ytd
,
ytdTrx
,
yearly
,
yearlyTrx
,
yearlyAcc
,
yearlyAccTrx
=
\
self
.
get_daily_data
(
PaymentPAD
,
field
,
str
(
self
.
get_daily_data
(
Sspd
,
field
,
str
(
today
.
year
),
filter_exp
,
typ
)
today
.
year
),
filter_exp
,
typ
)
#Bulanan
#Bulanan
field
=
func
.
to_char
(
PaymentPAD
.
tgl
,
'MM'
)
field
=
func
.
to_char
(
Sspd
.
sspd
tgl
,
'MM'
)
month
,
monthTrx
,
monthly
,
monthlyTrx
,
monthlyAcc
,
monthlyAccTrx
=
\
month
,
monthTrx
,
monthly
,
monthlyTrx
,
monthlyAcc
,
monthlyAccTrx
=
\
self
.
get_daily_data
(
PaymentPAD
,
field
,
None
,
filter_exp
,
typ
)
self
.
get_daily_data
(
Sspd
,
field
,
None
,
filter_exp
,
typ
)
#Mingguan
#Mingguan
field
=
func
.
to_char
(
PaymentPAD
.
tgl
,
'WW'
)
field
=
func
.
to_char
(
Sspd
.
sspd
tgl
,
'WW'
)
filter_exp
=
PaymentPAD
.
tgl
.
between
(
filter_exp
=
Sspd
.
sspd
tgl
.
between
(
today
-
timedelta
(
weeks
=
6
),
today
)
today
-
timedelta
(
weeks
=
6
),
today
)
week
,
weekTrx
,
weekly
,
weeklyTrx
,
weeklyAcc
,
weeklyAccTrx
=
\
week
,
weekTrx
,
weekly
,
weeklyTrx
,
weeklyAcc
,
weeklyAccTrx
=
\
self
.
get_daily_data
(
PaymentPAD
,
field
,
None
,
filter_exp
,
typ
)
self
.
get_daily_data
(
Sspd
,
field
,
None
,
filter_exp
,
typ
)
#Target
#Target
ytd_target
=
float
(
self
.
get_targets
(
typ
))
ytd_target
=
float
(
self
.
get_targets
(
typ
))
...
...
eispajak/views/penerimaan.py
View file @
b3d77e4
...
@@ -14,8 +14,22 @@ from ..models import Targets
...
@@ -14,8 +14,22 @@ from ..models import Targets
from
..models.payment
import
PCDBSession
from
..models.payment
import
PCDBSession
from
datetime
import
timedelta
from
datetime
import
timedelta
from
sqlalchemy
import
func
,
and_
,
String
from
sqlalchemy
import
func
,
and_
,
String
from
opensipkd.pjdl.models
import
Sspd
,
Pajak
,
Usaha
PAD_TYP
=
{
PAD_TYP
=
{
"hotel"
:
[
"1"
],
"resto"
:
[
"2"
],
"hiburan"
:
[
"3"
],
"ppju"
:
[
"7"
],
"minerba"
:
[
"9"
],
"parkir"
:
[
"5"
],
"walet"
:
[
"10"
],
"atd"
:
[
"6"
],
"reklame"
:
[
"4"
],
"pbb"
:
[
"0"
],
}
PAD_TYPX
=
{
"hotel"
:
[
"HOTEL"
,
"PBJT - JASA PERHOTELAN"
],
"hotel"
:
[
"HOTEL"
,
"PBJT - JASA PERHOTELAN"
],
"resto"
:
[
"RESTORAN"
,
"PBJT - MAKANAN DAN/ATAU MINUMAN"
],
"resto"
:
[
"RESTORAN"
,
"PBJT - MAKANAN DAN/ATAU MINUMAN"
],
"hiburan"
:
[
"HIBURAN"
,
"PBJT - JASA KESENIAN DAN HIBURAN"
],
"hiburan"
:
[
"HIBURAN"
,
"PBJT - JASA KESENIAN DAN HIBURAN"
],
...
@@ -207,11 +221,11 @@ class Views(BaseView):
...
@@ -207,11 +221,11 @@ class Views(BaseView):
def
get_pad_data
(
self
,
typ
=
None
,
tahun
=
None
):
def
get_pad_data
(
self
,
typ
=
None
,
tahun
=
None
):
#Total Tahun Berjalan
#Total Tahun Berjalan
field
=
func
.
to_char
(
PaymentPAD
.
tgl
,
'IYYY'
)
field
=
func
.
to_char
(
Sspd
.
sspd
tgl
,
'IYYY'
)
filter_exp
=
PaymentPAD
.
tgl
.
between
(
filter_exp
=
Sspd
.
sspd
tgl
.
between
(
datetime
.
strptime
(
f
"{tahun}-01-01"
,
"
%
Y-
%
m-
%
d"
),
datetime
.
strptime
(
f
"{tahun}-12-31"
,
"
%
Y-
%
m-
%
d"
))
datetime
.
strptime
(
f
"{tahun}-01-01"
,
"
%
Y-
%
m-
%
d"
),
datetime
.
strptime
(
f
"{tahun}-12-31"
,
"
%
Y-
%
m-
%
d"
))
ytd
,
ytdTrx
,
yearly
,
yearlyTrx
,
yearlyAcc
,
yearlyAccTrx
=
\
ytd
,
ytdTrx
,
yearly
,
yearlyTrx
,
yearlyAcc
,
yearlyAccTrx
=
\
self
.
get_daily_data
(
PaymentPAD
,
field
,
str
(
self
.
get_daily_data
(
Sspd
,
field
,
str
(
tahun
),
filter_exp
,
typ
)
tahun
),
filter_exp
,
typ
)
return
{
return
{
...
@@ -283,9 +297,9 @@ class Views(BaseView):
...
@@ -283,9 +297,9 @@ class Views(BaseView):
opsen
=
[
"opsen_pkb"
,
"opsen_bbnkb"
]
opsen
=
[
"opsen_pkb"
,
"opsen_bbnkb"
]
if
typ
!=
None
and
typ
not
in
opsen
:
if
typ
!=
None
and
typ
not
in
opsen
:
if
typ
==
"pajak"
:
if
typ
==
"pajak"
:
qry
=
qry
.
filter
(
table
.
jenis_pajak
.
notin_
(
PAD_TYP
[
'pbb'
]))
qry
=
qry
.
filter
(
Usaha
.
id
.
notin_
(
PAD_TYP
[
'pbb'
]))
else
:
else
:
qry
=
qry
.
filter
(
table
.
jenis_pajak
.
in_
(
PAD_TYP
[
typ
]))
qry
=
qry
.
filter
(
Usaha
.
id
.
in_
(
PAD_TYP
[
typ
]))
daily
=
[]
daily
=
[]
dailyTrx
=
[]
dailyTrx
=
[]
...
...
eispajak/views/target.py
0 → 100644
View file @
b3d77e4
import
colander
from
deform
import
widget
from
opensipkd.base.widgets
import
widget_os
from
pyramid.view
import
view_config
from
..models.payment
import
UploadRealisasiOpsen
,
TargetsBangbadil
from
.
import
BaseView
from
..models.payment
import
PCDBSession
from
datetime
import
date
class
ListSchema
(
colander
.
Schema
):
id
=
colander
.
SchemaNode
(
colander
.
Integer
(),
title
=
"Action"
)
kode
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Kode Rekening"
)
nama
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Nama Pajak"
)
tahun
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Tahun"
)
t_anggaran
=
colander
.
SchemaNode
(
colander
.
Integer
(),
thousand
=
{
"separator"
:
"."
},
title
=
"Nilai Anggaran"
)
t_perubahan
=
colander
.
SchemaNode
(
colander
.
Integer
(),
thousand
=
{
"separator"
:
"."
},
title
=
"Nilai Perubahan"
)
class
AddSchema
(
colander
.
Schema
):
kode
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Kode"
,
oid
=
"kode"
,
)
nama
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Nama Pajak"
,
oid
=
"nama"
,
)
tahun
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"tahun"
)
t_anggaran
=
colander
.
SchemaNode
(
colander
.
Integer
(),
widget
=
widget
.
TextInputWidget
(
min
=
0
,
attributes
=
{
'type'
:
'number'
,
'max'
:
max
,
'min'
:
min
}),
validator
=
colander
.
Range
(
min
=
0
),
title
=
"Nilai Anggaran"
)
t_perubahan
=
colander
.
SchemaNode
(
colander
.
Integer
(),
widget
=
widget
.
TextInputWidget
(
min
=
0
,
attributes
=
{
'type'
:
'number'
,
'max'
:
max
,
'min'
:
min
}),
validator
=
colander
.
Range
(
min
=
0
),
title
=
"Nilai Perubahan"
)
class
EditSchema
(
AddSchema
):
id
=
colander
.
SchemaNode
(
colander
.
String
(),
missing
=
colander
.
drop
,
widget
=
widget
.
HiddenWidget
(
readonly
=
True
))
class
Views
(
BaseView
):
def
__init__
(
self
,
request
):
super
()
.
__init__
(
request
)
self
.
list_schema
=
ListSchema
self
.
add_schema
=
AddSchema
self
.
edit_schema
=
EditSchema
self
.
list_route
=
'eis-target'
self
.
table
=
TargetsBangbadil
self
.
db_session
=
PCDBSession
# def view_list(self):
# return super().view_list()
# def view_act(self):
# return super().view_act()
# def view_view(self):
# return super().view_view()
def
form_validator
(
self
,
form
,
value
):
exc
=
colander
.
Invalid
(
form
,
''
)
if
'id'
in
form
.
request
.
matchdict
:
uid
=
int
(
form
.
request
.
matchdict
[
'id'
])
q
=
UploadRealisasiOpsen
.
query_id
(
uid
)
current
=
q
.
first
()
else
:
pass
def
view_add
(
self
):
return
super
()
.
view_add
()
# def get_values(self, row, istime=False, null=False):
# d = super().get_values(row, istime, null)
# d["kiri"] = d
# d["kanan"] = d
# return d
# def view_edit(self):
# return super().view_edit()
# def view_delete(self):
# return super().view_delete()
\ No newline at end of file
\ No newline at end of file
eispajak/views/templates/realtime_realisasi.pt
View file @
b3d77e4
...
@@ -13,7 +13,7 @@
...
@@ -13,7 +13,7 @@
<!-- Main Title -->
<!-- Main Title -->
<div
class=
"row"
>
<div
class=
"row"
>
<div
class=
"col-md-2"
>
<div
class=
"col-md-2"
>
<img
src=
"${home}/eis/static/bapend.png"
class=
"icon-rounded"
alt=
""
style=
"margin-top:9px; margin-left:
8
0px;"
align=
"left"
>
<img
src=
"${home}/eis/static/bapend.png"
class=
"icon-rounded"
alt=
""
style=
"margin-top:9px; margin-left:
1
0px;"
align=
"left"
>
</div>
</div>
<div
class=
"col-md-8"
>
<div
class=
"col-md-8"
>
<div
class=
"text-center"
style=
"margin-bottom: 20px; padding: 15px 0;"
>
<div
class=
"text-center"
style=
"margin-bottom: 20px; padding: 15px 0;"
>
...
...
eispajak/views/templates/trend_penerimaan.pt
View file @
b3d77e4
...
@@ -36,7 +36,7 @@
...
@@ -36,7 +36,7 @@
<!-- Main Title -->
<!-- Main Title -->
<div
class=
"row"
>
<div
class=
"row"
>
<div
class=
"col-md-2"
>
<div
class=
"col-md-2"
>
<img
src=
"${home}/eis/static/bapend.png"
class=
"icon-rounded"
alt=
""
style=
"margin-top:9px; margin-left:
11
0px;"
align=
"left"
>
<img
src=
"${home}/eis/static/bapend.png"
class=
"icon-rounded"
alt=
""
style=
"margin-top:9px; margin-left:
5
0px;"
align=
"left"
>
</div>
</div>
<div
class=
"col-md-8"
>
<div
class=
"col-md-8"
>
<div
class=
"text-center"
style=
"margin-bottom: 20px; padding: 15px 0;"
>
<div
class=
"text-center"
style=
"margin-bottom: 20px; padding: 15px 0;"
>
...
...
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