pkbbbnkb.py
3.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
import colander
from deform import widget
from opensipkd.base.widgets import widget_os
from pyramid.view import view_config
from ..models.payment import UploadRealisasiOpsen
from . import BaseView
from ..models import Targets
from ..models.payment import PCDBSession
from datetime import date
items = (("Opsen PKB", "Opsen PKB"), ('Opsen BBNKB', 'Opsen BBNKB'),)
class ListSchema(colander.Schema):
id = colander.SchemaNode(
colander.Integer(),
title="Action")
no_urut = colander.SchemaNode(
colander.Integer(),
oid="no_urut", )
kode_rekening = colander.SchemaNode(
colander.String(),
title="Kode Rekening")
nama_rekening = colander.SchemaNode(
colander.String(),
title="Nama Rekening")
keterangan = colander.SchemaNode(
colander.String(),
title="Keterangan")
nilai_realisasi = colander.SchemaNode(
colander.String(),
thousand={"separator":"."},
title="Nilai Realisasi")
class AddSchema(colander.Schema):
nama_rekening = colander.SchemaNode(
colander.String(),
widget=widget.SelectWidget(values=items),
title="Jenis",
oid="nama_rekening",
)
keterangan = colander.SchemaNode(
colander.String(),
title="Keterangan")
nilai_realisasi = colander.SchemaNode(
colander.Integer(),
widget=widget.TextInputWidget(min = 0, attributes={'type':'number','max':max,'min':min}),
validator=colander.Range(min=0),
title="Nilai Realisasi")
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-pkbbbnkb'
self.table = UploadRealisasiOpsen
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:
value['no_urut'] = UploadRealisasiOpsen.get_no_urut()
value['tanggal'] = date.today().strftime("%Y-%m-%d")
value['kode_rekening'] = '4.1.01.20.01.0001'
if value["nama_rekening"] == 'Opsen BBNKB':
value['kode_rekening'] = '4.1.01.20.02.0001'
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()