Commit fdf95065 by aagusti

wp

1 parent ce0b07d1
......@@ -90,7 +90,7 @@ class DefaultModel(CommonModel):
cls.query_id(id).delete()
class KodeModel(DefaultModel):
kode = Column(String(64), unique=True)
kode = Column(String(64))
@classmethod
def query_kode(cls, kode):
return cls.query().filter_by(kode=kode)
......
......@@ -12,15 +12,16 @@ from sqlalchemy import (
ForeignKey,
UniqueConstraint
)
from sqlalchemy.orm import relationship
from sqlalchemy.orm import relationship, backref
from ..models import(
DBSession,
DefaultModel,
KodeModel,
NamaModel,
Base,
User
)
#####################
###########################
#
###########################
class Pkb(DefaultModel,Base):
......@@ -65,6 +66,7 @@ class UnitRekening(Base):
class Jabatan(NamaModel, Base):
__tablename__ = 'jabatans'
status = Column(Integer, default=1)
UniqueConstraint('kode')
#nama = Column(String(128))
class Pegawai(NamaModel, Base):
......@@ -73,7 +75,8 @@ class Pegawai(NamaModel, Base):
status = Column(Integer, default=1)
jabatan_id = Column(Integer,ForeignKey("jabatans.id"))
unit_id = Column(Integer,ForeignKey("units.id"))
user_id = Column(Integer,ForeignKey("users.id"), nullable=True)
UniqueConstraint('kode')
class PegawaiLogin(Base):
__tablename__ = 'pegawai_users'
user_id = Column(Integer,ForeignKey("users.id"), primary_key=True)
......@@ -98,15 +101,27 @@ class Wilayah(NamaModel,Base):
parent = relationship("Wilayah",
backref="child",
remote_side=[id])
class SubjekPajak(NamaModel, Base):
__tablename__ = 'subjekpajaks'
#nama = Column(String(128))
status = Column(Integer, default=1)
alamat_1 = Column(String(128))
alamat_2 = Column(String(128))
kelurahan = Column(String(128))
kecamatan = Column(String(128))
kota = Column(String(128))
user_id = Column(Integer, ForeignKey('users.id'), nullable=True)
user = relationship(User,backref=backref('subjekpajak'))
UniqueConstraint('kode')
@classmethod
def get_by_user(cls, user_id):
return DBSession.query(cls).filter(cls.user_id==user_id).first()
class ObjekPajak(NamaModel, Base):
__tablename__ = 'objekpajaks'
__table_args__ = (UniqueConstraint('subjekpajak_id', 'kode',
name='objekpajak_kode_uq'),
)
status = Column(Integer, default=1)
alamat_1 = Column(String(128))
alamat_2 = Column(String(128))
......@@ -114,10 +129,15 @@ class ObjekPajak(NamaModel, Base):
unit_id = Column(Integer,ForeignKey("units.id"))
pajak_id = Column(Integer, ForeignKey("pajaks.id"))
subjekpajak_id = Column(Integer, ForeignKey("subjekpajaks.id"))
subjekpajak = relationship(SubjekPajak, backref=backref('objekpajak'))
pajak = relationship(Pajak, backref=backref('objekpajak'))
wilayah = relationship(Wilayah, backref=backref('objekpajak'))
class Sptpd(Base):
__tablename__ = 'sptpds'
id = Column(Integer, primary_key=True)
kode = Column(String, unique=True)
unit_id = Column(Integer)
subjek_pajak_id = Column(Integer, ForeignKey("subjekpajaks.id"))
objek_pajak_id = Column(Integer, ForeignKey("objekpajaks.id"))
......@@ -155,7 +175,7 @@ class Sts(Base):
class StsItem(Base):
__tablename__ = 'sts_item'
sts_id = Column(Integer, primary_key=True)
sptpd_id = Column(Integer, primary_key=True)
sspd_id = Column(Integer, primary_key=True)
class SSPD(Base):
__tablename__ = 'sspd'
......
id,kode,nama,rekening_id,tarif,tahun,status
1,4.1.1.01.01.,Pajak Kendaraan Bermotor,5,100,2015,1
2,4.1.1.01.02.,"A-2 Sedan, Jeep, Station Wagon (Umum)",6,100,2015,1
3,4.1.1.01.04.,"B-1 Bus, Micro Bus (Pribadi)",8,100,2015,1
4,4.1.1.01.05.,"B-2 Bus, Micro Bus (Umum)",9,100,2015,1
5,4.1.1.01.07.,"C-1 Truck, Pick Up (Pribadi)",11,100,2015,1
6,4.1.1.01.08.,"C-2 Truck, Pick Up (Umum)",12,100,2015,1
7,4.1.1.01.10.,D-1 Kendaraan Khusus (Pribadi),14,100,2015,1
8,4.1.1.01.11.,D-2 Kendaraan Khusus (Umum),15,100,2015,1
9,4.1.1.01.13.,"E-1 Sepeda Motor, Scooter (Pribadi)",17,100,2015,1
10,4.1.1.02.01.,Pajak Kendaraan Di Atas Air,20,100,2015,1
11,4.1.1.03.01.,Bea Balik Nama Kendaraan Bermotor,22,100,2015,1
12,4.1.1.03.02.,"A-2 Sedan, Jeep, Station Wagon (Umum)",23,100,2015,1
13,4.1.1.03.03.,"A-3 Sedan, Jeep, Station Wagon (Dinas)",24,100,2015,1
14,4.1.1.03.04.,"B-1 Bus, Micro Bus (Pribadi)",25,100,2015,1
15,4.1.1.03.05.,"B-2 Bus, Micro Bus (Umum)",26,100,2015,1
16,4.1.1.03.06.,"B-3 Bus, Micro Bus (Dinas)",27,100,2015,1
17,4.1.1.03.07.,"C-1 Truck, Pick Up (Pribadi)",28,100,2015,1
18,4.1.1.03.08.,"C-2 Truck, Pick Up (Umum)",29,100,2015,1
19,4.1.1.03.09.,"C-3 Truck, Pick Up (Dinas)",30,100,2015,1
20,4.1.1.03.10.,D-1 Kendaraan Khusus (Pribadi),31,100,2015,1
21,4.1.1.03.11.,D-2 Kendaraan Khusus (Umum),32,100,2015,1
22,4.1.1.03.12.,D-3 Kendaraan Khusus (Dinas),33,100,2015,1
23,4.1.1.03.13.,"E-1 Sepeda Motor, Scooter (Pribadi)",34,100,2015,1
24,4.1.1.03.14.,"E-2 Sepeda Motor, Scooter (Dinas)",35,100,2015,1
25,4.1.1.04.01.,Bea Balik nama Kendaraan Di atas Air,37,100,2015,1
26,4.1.1.05.01.,Pajak Bahan Bakar Kendaraan Bermotor,39,100,2015,1
27,4.1.1.05.02.,Pertamax,40,100,2015,1
28,4.1.1.05.03.,Pertamax Plus,41,100,2015,1
29,4.1.1.05.04.,Solar,42,100,2015,1
30,4.1.1.05.05.,Gas,43,100,2015,1
31,4.1.1.06.01.,Pajak Pengambilan Pemanfaatan Air Permukaan,45,100,2015,1
32,4.1.1.07.01.,Pajak Rokok,48,100,2015,1
33,4.1.2.03.01.,Retribusi Izin Trayek,80,100,2015,1
34,4.1.4.01.01.,Pelepasan Hak Atas Tanah,101,100,2015,1
35,4.1.4.01.02.,Penjualan Peralatan/Perlengkapan Kantor Tidak Terpakai,102,100,2015,1
36,4.1.4.01.03.,Penjualan Mesin/Alat-alat Berat Tidak Terpakai,103,100,2015,1
37,4.1.4.01.04.,Penjualan Rumah Jabatan/Rumah Dinas,104,100,2015,1
38,4.1.4.01.05.,Penjualan Kendaraan Dinas Roda Dua,105,100,2015,1
39,4.1.4.01.06.,Penjualan Kendaraan Dinas Roda Empat,106,100,2015,1
40,4.1.4.01.07.,Penjualan Drum Bekas,107,100,2015,1
41,4.1.4.01.08.,Penjualan Hasil Penebangan Pohon,108,100,2015,1
42,4.1.4.01.09.,Penjualan Lampu Hias Bekas,109,100,2015,1
43,4.1.4.01.10.,Penjualan Bahan-bahan Bekas Bangunan,110,100,2015,1
44,4.1.4.01.11.,Penjualan Perlengkapan Lalu Lintas,111,100,2015,1
45,4.1.4.01.12.,Penjualan Obat-obatan dan Hasil Farmasi,112,100,2015,1
46,4.1.4.01.13.,Penjualan Hasil Pertanian,113,100,2015,1
47,4.1.4.01.14.,Penjualan Hasil Kehutanan,114,100,2015,1
48,4.1.4.01.15.,Penjualan Hasil Perkebunan,115,100,2015,1
49,4.1.4.01.16.,Penjualan Hasil Peternakan,116,100,2015,1
50,4.1.4.01.17.,Penjualan Hasil Perikanan,117,100,2015,1
51,4.1.4.01.18.,Penjualan Hasil Sitaan,118,100,2015,1
52,4.1.4.02.01.,Jasa Giro Kas Daerah,120,100,2015,1
53,4.1.4.02.02.,Jasa Giro Pemegang Kas,121,100,2015,1
54,4.1.4.02.03.,Jasa Giro Dana Cadangan,122,100,2015,1
55,4.1.4.03.01.,Rekening Deposito pada BankPembangunan Daerah (Bank Jabar)-PAD,124,100,2015,1
56,4.1.4.03.02.,Rekening Deposito pada BankPembangunan Daerah (Bank Jabar)-DCD,125,100,2015,1
57,4.1.4.04.01.,Kerugian Uang Daerah,127,100,2015,1
58,4.1.4.04.02.,Kerugian Barang Daerah,128,100,2015,1
59,4.1.4.05.01.,Penerimaan Komisi,130,100,2015,1
60,4.1.4.05.02.,Penerimaan Potongan,131,100,2015,1
61,4.1.4.05.03.,Penerimaan Keuntungan Selisih Nilai Tukar Rupiah,132,100,2015,1
62,4.1.4.06.01.,Bidang Pendidikan,134,100,2015,1
63,4.1.4.06.02.,Bidang Kesehatan,135,100,2015,1
64,4.1.4.06.03.,Bidang Pekerjaan Umum,136,100,2015,1
65,4.1.4.06.04.,Bidang Perumahan Rakyat,137,100,2015,1
66,4.1.4.06.05.,Bidang Penataan Ruang,138,100,2015,1
67,4.1.4.06.06.,Bidang Perencanaan Pembangunan,139,100,2015,1
68,4.1.4.06.07.,Bidang Perhubungan,140,100,2015,1
69,4.1.4.06.08.,Bidang Lingkungan Hidup,141,100,2015,1
70,4.1.4.06.09.,Bidang Pertanahan,142,100,2015,1
71,4.1.4.07.01.,Pendapatan Denda Pajak Kendaraan Bermotor,144,100,2015,1
72,4.1.4.07.02.,Pendapatan Denda Pajak Bea Balik Nama Kendaraan Bermotor,145,100,2015,1
73,4.1.4.07.03.,Pendapatan Denda Pajak Kendaraan di Air,146,100,2015,1
74,4.1.4.07.04.,Pendapatan Denda Pajak Bea Balik Nama Kendaraan di Air,147,100,2015,1
75,4.1.4.07.05.,Pendapatan Denda Pajak Air Permukaan,148,100,2015,1
76,4.1.4.08.01.,Pendapatan Denda Retribusi Jasa Umum,151,100,2015,1
77,4.1.4.08.02.,Pendapatan Denda Retribusi Jasa Usaha,152,100,2015,1
78,4.1.4.08.03.,Pendapatan Denda Retribusi Perizinan Tertentu,153,100,2015,1
79,4.1.4.09.01.,Hasil Eksekusi Jaminan Atas Pelaksanaan Pekerjaan,156,100,2015,1
80,4.1.4.09.02.,Hasil Eksekusi Jaminan Atas Pembongkaran Reklame,157,100,2015,1
81,4.1.4.10.01.,Pendapatan dan Pengembalian Pajak Penghasilan Pasal 21,160,100,2015,1
82,4.1.4.10.02.,Pendapatan dari Pengembalian Kelebihan Pembayaran Asuransi Kesehatan,161,100,2015,1
83,4.1.4.10.03.,Pendapatan dari Pengembalian Kelebihan Pembayaran Gaji dan Tunjangan,162,100,2015,1
84,4.1.4.10.04.,Pendapatan dari Pengembalian Kelebihan Pembayaran Perjalanan Dinas,163,100,2015,1
85,4.1.4.10.05.,Pendapatan dari Pengembalian Uang Muka,164,100,2015,1
86,4.1.4.10.06.,Pendapatan dari Pengembalian TASPEN,165,100,2015,1
87,4.1.4.10.07.,Pendapatan dari Pengembalian Dana Operasional Siswa (BOS),166,100,2015,1
88,4.1.4.11.01.,Fasilitas Sosial,168,100,2015,1
89,4.1.4.11.02.,Fasilitas Umum,169,100,2015,1
90,4.1.4.12.01.,Uang Pendaftaran/Ujian Masuk,171,100,2015,1
91,4.1.4.12.02.,Uang Sekolah/Pendidikan dan Pelatihan,172,100,2015,1
92,4.1.4.12.03.,Uang Ujian Kenaikan Tingkat/Kelas,173,100,2015,1
93,4.1.4.13.01.,Angsuran/Cicilan Penjualan Rumah Dinas,175,100,2015,1
94,4.1.4.13.02.,Angsuran/Cicilan Penjualan Kendaraan Perorangan Dinas,176,100,2015,1
95,4.1.4.15.01.,Sewa Tanah dan Bangunan,179,100,2015,1
96,4.1.4.15.02.,Sewa Alat-alat Berat,180,100,2015,1
97,4.1.4.15.03.,Sewa Gedung/Ruangan/Aula/Asrama/Mess,181,100,2015,1
98,4.1.4.15.04.,"Sewa Lahan ( Tanah, Tambak dan sejenisnya)",182,100,2015,1
99,4.1.4.15.05.,Sewa Tempat Olah Raga,183,100,2015,1
100,4.1.4.15.06.,Sewa Tempat Rekreasi,184,100,2015,1
101,4.1.4.16.01.,Pendapatan BLUD Rumah Sakit Daerah,186,100,2015,1
102,4.2.1.01.01.,Bagi Hasil dari Pajak Bumi dan Bangunan,191,100,2015,1
103,4.2.1.01.02.,Bagi Hasil dari Bea Perolehan Hak Atas Tanah dan Bangunan,192,100,2015,1
104,4.2.1.01.03.,Bagi Hasil dari Pajak Penghasilan (PPh) Pasal 25 dan Pasal 29 Wajib Pajak Orang Pribadi Dalam Negeri dan PPh Pasal 21,193,100,2015,1
105,4.2.1.02.01.,Bagi Hasil dari Iuran Hak Pengusahaan Hutan,195,100,2015,1
106,4.2.1.02.02.,Bagi Hasil dari Provisi Sumber Daya Hutan,196,100,2015,1
107,4.2.1.02.03.,Bagi Hasil dari Dana Reboisasi,197,100,2015,1
108,4.2.1.02.04.,Bagi Hasil dari Iuran Tetap (Land-Rent),198,100,2015,1
109,4.2.1.02.05.,Bagi Hasil dari Iuran Eksplorasi dan Iuran Eksploitasi (Royalti),199,100,2015,1
110,4.2.1.02.06.,Bagi Hasil dari Pungutan Pengusahaan Perikanan,200,100,2015,1
111,4.2.1.02.07.,Bagi Hasil dari Pungutan Hasil Perikanan,201,100,2015,1
112,4.2.1.02.08.,Bagi Hasil dari Pertambangan Minyak Bumi,202,100,2015,1
113,4.2.1.02.09.,Bagi Hasil dari Pertambangan Gas Bumi/Alam,203,100,2015,1
114,4.2.1.02.10.,Bagi Hasil dari Pertambangan Panas Bumi,204,100,2015,1
115,4.2.1.01.04.,Bagi Hasil Cukai Hasil Tembakau,205,100,2015,1
116,4.2.2.01.01.,Dana Alokasi Umum,208,100,2015,1
117,4.2.3.01.01.,Dana Alokasi Khusus,211,100,2015,1
118,4.3.1.01.01.,Pendapatan Hibah dari Pemerintah,215,100,2015,1
119,4.3.1.02.01.,Pemerintah Daerah dari Pemerintah Daerah lainya,217,100,2015,1
120,4.3.1.03.01.,Badan/Lembaga/Organisasi Swasta,219,100,2015,1
121,4.3.1.04.01.,Kelompok Masyarakat/Perorangan,221,100,2015,1
122,4.3.1.05.01.,Pendapatan Hibah dari Bilateral,223,100,2015,1
123,4.3.1.05.02.,Pendapatan Hibah dari Multilateral,224,100,2015,1
124,4.3.1.05.03.,Pendapatan Hibah dari Donor Lainnya,225,100,2015,1
125,4.3.2.01.01.,Korban/Kerusakan Akibat Bencana Alam,228,100,2015,1
126,4.3.3.01.01.,Dana Bagi Hasil Pajak dari Provinsi,231,100,2015,1
127,4.3.3.02.01.,Dana Bagi Hasil Pajak dari Kabupaten,233,100,2015,1
128,4.3.3.03.01.,Dana Bagi Hasil Pajak dari Kota,235,100,2015,1
129,4.3.4.01.01.,Dana Penyesuaian,238,100,2015,1
130,4.3.4.02.01.,Dana Otonomi Khusus,240,100,2015,1
131,4.3.5.01.01.,Bantuan Keuangan dari Provinsi,243,100,2015,1
132,4.3.5.02.01.,Bantuan Keuangan dari Kabupaten,245,100,2015,1
133,4.3.5.03.01.,Bantuan Keuangan dari Kota,247,100,2015,1
134,4.3.1.03.02.01.,Bantuan PT.Jasa Raharja (Persero),249,100,2015,1
135,4.3.1.03.02.02.,I P E P (Iuran Pembiayaan Ekspoitasi dan Pemeliharaan Prasarana Pengairan),250,100,2015,1
136,4.1.4.17.01.,Dari Kelompok Masyarakat,256,100,2015,1
137,4.3.6.01.01.,Lain-lain Penerimaan...,261,100,2015,1
138,4.3.1.03.02.,Bantuan Pihak Ketiga,333,100,2015,1
139,4.1.2.01.01.01.,1. Rumah Sakit Jiwa,502,100,2015,1
140,4.1.2.01.01.02.,2. Rumah Sakit Paru,503,100,2015,1
141,4.1.2.01.01.03.,3. Balai Kesehatan Paru Masyarakat Cirebon,504,100,2015,1
142,4.1.2.01.03.,Retribusi Pelayanan Pendidikan,505,100,2015,1
143,4.1.2.01.02.01.,1. Balai Kemeterologian Bogor,508,100,2015,1
144,4.1.2.01.02.02.,2. Balai Kemeterologian Karawang,509,100,2015,1
145,4.1.2.01.02.03.,3. Balai Kemeterologian Cirebon,510,100,2015,1
146,4.1.2.01.02.04.,4. Balai Kemeterologian Bandung,511,100,2015,1
147,4.1.2.01.02.05.,5. Balai Kemeterologian Tasikmalaya,512,100,2015,1
148,4.1.2.02.01.01.,1. Sewa Tanah dan Bangunan Dinas Bina Marga,515,100,2015,1
149,4.1.2.02.01.02.,2. Sewa Alat Berat,516,100,2015,1
150,4.1.2.02.01.03.,3. Sewa Gedung/Ruangan/Aula/Asrama,517,100,2015,1
151,4.1.2.02.02.,Retribusi Pelayanan Kepelabuhan,518,100,2015,1
152,4.1.2.02.03.01.,a. Dinas Kehutanan,522,100,2015,1
153,4.1.2.02.03.02.,b. Dinas Pemuda dan Olah Raga,523,100,2015,1
154,4.1.2.02.04.,Retribusi Penyebrangan di Air,524,100,2015,1
155,4.1.2.02.05.01.,1. Dinas Pertanian dan Tanaman Pangan,526,100,2015,1
156,4.1.2.02.05.02.,2. Dinas Peternakan,527,100,2015,1
157,4.1.2.02.05.03.,3. Dinas Perikanan,528,100,2015,1
158,4.1.2.02.05.04.,4. Dinas Perkebunan,529,100,2015,1
159,4.1.2.03.02.,Retribusi Izin Usaha Perikanan,532,100,2015,1
160,4.1.3.01.01.01.,1. Bagian Laba Atas Penyertaan Modal pada PD. Agribisnis dan Pertambangan,534,100,2015,1
161,4.1.3.01.01.02.,2. Bagian Laba Atas Penyertaan Modal pada PD. Jasa dan Kepariwisataan,535,100,2015,1
162,4.1.3.01.01.03.,3. Bagian Laba Atas Penyertaan Modal pada PT. Agronesia,536,100,2015,1
163,4.1.3.01.01.04.,4. Bagian Laba Atas Penyertaan Modal pada PT. Jasa Sarana,537,100,2015,1
164,4.1.3.01.02.01.,1. Bagian Laba Keuangan Bank PT. Bank Pembangunan Daerah,539,100,2015,1
165,4.1.3.01.02.02.,2. Bagian Laba Keuangan Bank Bank Perkreditan Rakyat,540,100,2015,1
166,4.1.3.01.02.03.,3. Bagian Laba Keuangan Bank Lembaga Perkreditan Kecamatan,541,100,2015,1
167,4.1.3.02.01.,Bagian Laba Atas Penyertaan modal pada Perusahaan Milik Pemerintah/BUMN,542,100,2015,1
168,4.1.3.03.01.,Perusahaan Patungan,543,100,2015,1
169,4.1.4.06.10.,Bidang Pertanian,581,100,2015,1
170,4.1.4.06.11.,Bidang Perdagangan,582,100,2015,1
171,4.1.4.06.12.,Bidang Perindustrian,583,100,2015,1
172,4.1.4.06.13.,Bidang Pariwisata,584,100,2015,1
173,4.1.4.06.14.,Bidang Kebudayaan,585,100,2015,1
174,4.1.4.06.15.,Bidang Pemerintahan,586,100,2015,1
175,4.1.2.02.01.04.,Sewa Peralatan Laboratorium/Jasa Pengujian,587,100,2015,1
176,4.1.4.07.07.,Pendapatan Denda Pajak Bahan Bakar Kendaraan Bermotor,593,100,2015,1
177,4.1.4.07.08.,Pendapatan Denda Pajak Rokok,594,100,2015,1
178,4.1.4.10.08.,Pendapatan dari Pengembalian Belanja Subsidi,607,100,2015,1
179,4.1.4.10.09.,Pendapatan dari Pengembalian Belanja Hibah,608,100,2015,1
180,4.1.4.10.10.,Pendapatan dari Pengembalian Belanja Sosial,609,100,2015,1
181,4.1.4.10.11.,Pendapatan dari Pengembalian Belanja Bantuan Keuangan,610,100,2015,1
182,4.1.4.13.03.,Angsuran/Cicilan Ganti Kerugian Barang Milik Daerah,618,100,2015,1
183,4.1.4.13.04.,Angsuran/Cicilan Penjualan Tanah,619,100,2015,1
184,4.1.2.01.01.04.,4. Balai Laboratorium Kesehatan,654,100,2015,1
185,4.1.2.01.01.05.,5. Balai Kesehatan Kerja Masyarakat Bandung,655,100,2015,1
186,4.1.2.02.01.03.01.,a. Mess Pangandaran Dinas PSDA,656,100,2015,1
187,4.1.2.02.01.03.02.,b. Dinas Tenaga Kerja dan Transmigrasi,657,100,2015,1
188,4.1.2.02.01.03.03.01.,1) Balai Taman Budaya,659,100,2015,1
189,4.1.2.02.01.03.03.02.,2) Balai Museum Sribaduga,660,100,2015,1
190,4.1.2.02.01.03.03.03.,3) Mess Pondok Seni Pangandaran,661,100,2015,1
191,4.1.2.02.01.03.04.01.,1) Laboratorium Kesehatan,663,100,2015,1
192,4.1.2.02.01.03.04.02.,2)BKPM,664,100,2015,1
193,4.1.2.02.01.03.04.03.,3)Balai Pelatihan Kesehatan,665,100,2015,1
194,4.1.2.02.01.03.05.,e. Rumah Sakit Jiwa,666,100,2015,1
195,4.1.2.02.01.03.06.,f. Rumah Sakit Paru,667,100,2015,1
196,4.1.2.02.01.03.07.01.,1) BPTPK Cirebon,669,100,2015,1
197,4.1.2.02.01.03.07.02.,2) Balai Pengujian dan Pembinaan Mutu Hasil Perikanan,670,100,2015,1
198,4.1.2.02.01.03.07.03.,3) Balai Pelabuhan Perikanan Pantai Muara Asem,671,100,2015,1
199,4.1.2.02.01.03.08.01.,1) BPP Padi Cihea,673,100,2015,1
200,4.1.2.02.01.03.08.02.,2) BPP Palawija,674,100,2015,1
201,4.1.2.02.01.03.08.03.,3) BPP Hortikultura,675,100,2015,1
202,4.1.2.02.01.03.08.04.,4) BPTPH,676,100,2015,1
203,4.1.2.02.01.03.08.05.,5) BPSBTPH,677,100,2015,1
204,4.1.2.02.01.03.08.06.,6) BAPELTAN,678,100,2015,1
205,4.1.2.02.01.03.08.07.,7) KOPERASI PUSAT,679,100,2015,1
206,4.1.2.02.01.03.09.,i. Dinas Sosial,680,100,2015,1
207,4.1.2.02.01.03.12.01.,1) Balai Perindustrian,682,100,2015,1
208,4.1.2.02.01.03.14.,k. Dinas Pendapatan Provinsi Jawa Barat,683,100,2015,1
209,4.1.2.02.01.03.15.,l. BKPP Wilayah Bogor,684,100,2015,1
210,4.1.2.02.01.03.16.,m. BKPP Wilayah Purwakarta,685,100,2015,1
211,4.1.2.02.01.03.17.,n. BKPP Wilayah Priangan,686,100,2015,1
212,4.1.2.02.01.03.18.,o. Badan Pendidikan dan Pelatihan,687,100,2015,1
213,4.1.2.02.01.03.19.,"p. Biro Humas, Protokol dan Umum",688,100,2015,1
214,4.1.2.02.01.03.20.01.,1) LPTQ,690,100,2015,1
215,4.1.2.02.01.03.20.02.,2) Pusda'i,691,100,2015,1
216,4.1.2.02.01.03.20.03.,3) At Ta'awun,692,100,2015,1
217,4.1.2.02.01.04.01.01.,1) BPPPH dan Kesmapet,694,100,2015,1
218,4.1.2.02.01.04.01.02.,2) BPMPT Cikole Lembang,695,100,2015,1
219,4.1.2.02.01.04.02.01.,1) Balai Pengujian Laboratorium Energi dan Sumber Daya Mineral,697,100,2015,1
220,4.1.2.02.01.04.03.01.,1) BPMKL,699,100,2015,1
PajakData = {
'options': ['insert if not exists'],
'csv': 'pajak.csv',
}
id,kode,uraian,level_id,is_summary
id,kode,nama,level_id,is_summary
1,4.,PENDAPATAN DAERAH,1,1
2,4.1.,PENDAPATAN ASLI DAERAH,2,1
3,4.1.1.,Pajak Daerah,3,1
......
id,kode,uraian,level_id,is_summary
id,kode,nama,level_id,is_summary
1,1.,URUSAN WAJIB,1,1
2,1.01.,Pendidikan,2,1
3,1.01.01.,DINAS PENDIDIKAN,3,1
......
......@@ -10,6 +10,8 @@ from data.routes import RouteData
from data.apps import AppsData
from data.unit import UnitData
from data.rekening import RekeningData
from data.pajak import PajakData
from DbTools import (
get_pkeys,
execute,
......@@ -30,6 +32,7 @@ fixtures = [
('routes', RouteData),
('units', UnitData),
('rekenings', RekeningData),
('pajaks', PajakData),
]
def insert():
......
from email.utils import parseaddr
import colander
from deform import (
Form,
widget,
ValidationFailure,
)
from ..models import DBSession,User
from ..models.isipkd import(
Wilayah, Jabatan, Unit, Rekening, SubjekPajak, Pajak
)
def email_validator(node, value):
name, email = parseaddr(value)
if not email or email.find('@') < 0:
raise colander.Invalid(node, 'Invalid email format')
STATUS = (
(1, 'Aktif'),
(0, 'Inaktif'),
)
@colander.deferred
def deferred_status(node, kw):
values = kw.get('daftar_status', [])
return widget.SelectWidget(values=values)
SUMMARIES = (
(1, 'Header'),
(0, 'Detail'),
)
@colander.deferred
def deferred_summary(node, kw):
values = kw.get('daftar_summary', [])
return widget.SelectWidget(values=values)
def daftar_wilayah():
rows = DBSession.query(Wilayah.id, Wilayah.nama).all()
r=[]
d = (0,'Pilih Wilayah')
r.append(d)
for row in rows:
d = (row.id, row.nama)
r.append(d)
return r
@colander.deferred
def deferred_wilayah(node, kw):
values = kw.get('daftar_wilayah',[])
return widget.SelectWidget(values=values)
def daftar_jabatan():
rows = DBSession.query(Jabatan.id, Jabatan.nama).all()
r=[]
d = (0,'Pilih Jabatan')
r.append(d)
for row in rows:
d = (row.id, row.nama)
r.append(d)
return r
@colander.deferred
def deferred_jabatan(node, kw):
values = kw.get('daftar_jabatan',[])
return widget.SelectWidget(values=values)
def daftar_unit():
rows = DBSession.query(Unit).filter_by(level_id=3).all()
r=[]
d = (0,'Pilih SKPD')
r.append(d)
for row in rows:
d = (row.id, row.kode+':'+row.nama)
r.append(d)
return r
@colander.deferred
def deferred_unit(node, kw):
values = kw.get('daftar_unit',[])
return widget.SelectWidget(values=values)
def daftar_rekening():
rows = DBSession.query(Rekening).filter_by(is_summary=0).all()
r=[]
d = (0,'Pilih REKENING')
r.append(d)
for row in rows:
d = (row.id, row.kode+':'+row.nama)
r.append(d)
return r
@colander.deferred
def deferred_rekening(node, kw):
values = kw.get('daftar_rekening',[])
return widget.SelectWidget(values=values)
def daftar_user():
rows = DBSession.query(User).all()
r=[]
d = (0,'Pilih USER')
r.append(d)
for row in rows:
d = (row.id, row.email+':'+row.user_name)
r.append(d)
return r
@colander.deferred
def deferred_user(node, kw):
values = kw.get('daftar_user',[])
return widget.SelectWidget(values=values)
def daftar_pajak():
rows = DBSession.query(Pajak).all()
r=[]
d = (0,'Pilih PAJAK')
r.append(d)
for row in rows:
d = (row.id, row.kode+':'+row.nama)
r.append(d)
return r
@colander.deferred
def deferred_pajak(node, kw):
values = kw.get('daftar_pajak',[])
return widget.SelectWidget(values=values)
def daftar_subjekpajak():
rows = DBSession.query(SubjekPajak).all()
r=[]
d = (0,'Pilih SP')
r.append(d)
for row in rows:
d = (row.id, row.kode+':'+row.nama)
r.append(d)
return r
@colander.deferred
def deferred_subjekpajak(node, kw):
values = kw.get('daftar_subjekpajak',[])
return widget.SelectWidget(values=values)
\ No newline at end of file
......@@ -16,6 +16,8 @@ from ..models import DBSession
from ..models.isipkd import(
Jabatan,
)
from daftar import STATUS, deferred_status
from datatables import (
ColumnDT, DataTables)
......@@ -23,8 +25,6 @@ from datatables import (
SESS_ADD_FAILED = 'Gagal tambah jabatan'
SESS_EDIT_FAILED = 'Gagal edit jabatan'
from ..tools import STATUS
########
# List #
########
......@@ -37,11 +37,6 @@ def view_list(request):
#######
# Add #
#######
def email_validator(node, value):
name, email = parseaddr(value)
if not email or email.find('@') < 0:
raise colander.Invalid(node, 'Invalid email format')
def form_validator(form, value):
def err_kode():
raise colander.Invalid(form,
......@@ -74,11 +69,6 @@ def form_validator(form, value):
elif found:
err_name()
@colander.deferred
def deferred_summary(node, kw):
values = kw.get('daftar_summary', [])
return widget.SelectWidget(values=values)
class AddSchema(colander.Schema):
kode = colander.SchemaNode(
colander.String(),
......@@ -90,7 +80,7 @@ class AddSchema(colander.Schema):
status = colander.SchemaNode(
colander.Integer(),
widget=widget.SelectWidget(values=STATUS),
widget=deferred_status,
title="Status")
......
......@@ -24,10 +24,17 @@ from ..models.isipkd import(
from datatables import (
ColumnDT, DataTables)
from daftar import (STATUS, deferred_status,
daftar_subjekpajak, deferred_subjekpajak,
daftar_wilayah, deferred_wilayah,
daftar_unit, deferred_unit,
daftar_pajak, deferred_pajak,
)
SESS_ADD_FAILED = 'Gagal tambah Objek Pajak'
SESS_EDIT_FAILED = 'Gagal edit Objek Pajak'
from ..tools import STATUS
from daftar import STATUS
########
# List #
########
......@@ -57,13 +64,15 @@ def form_validator(form, value):
r = q.first()
else:
r = None
q = DBSession.query(ObjekPajak).filter_by(kode=value['kode'])
q = DBSession.query(ObjekPajak).\
filter(ObjekPajak.kode==value['kode'],
ObjekPajak.subjekpajak_id==value['subjekpajak_id'])
found = q.first()
if r:
if found and found.id != r.id:
err_kode()
elif found:
err_email()
err_kode()
if 'nama' in value: # optional
found = ObjekPajak.get_by_nama(value['nama'])
if r:
......@@ -72,36 +81,26 @@ def form_validator(form, value):
elif found:
err_name()
@colander.deferred
def deferred_status(node, kw):
values = kw.get('daftar_status', [])
return widget.SelectWidget(values=values)
class AddSchema(colander.Schema):
unit_select = DBSession.query(Unit.id, Unit.nama).filter(Unit.level_id>2).all()
wilayah_select = DBSession.query(Wilayah.id, Wilayah.nama).filter(Wilayah.level_id>1).all()
pajak_select = DBSession.query(Pajak.id, Pajak.nama).all()
sp_select = DBSession.query(SubjekPajak.id, SubjekPajak.nama).all()
subjekpajak_id = colander.SchemaNode(
colander.Integer(),
widget=widget.SelectWidget(values=sp_select),
widget=deferred_subjekpajak,
title="Subjek Pajak"
)
wilayah_id = colander.SchemaNode(
colander.Integer(),
widget=widget.SelectWidget(values=wilayah_select),
widget=deferred_wilayah,
title="Wilayah"
)
unit_id = colander.SchemaNode(
colander.Integer(),
widget=widget.SelectWidget(values=unit_select),
widget=deferred_unit,
title="SKPD/Unit Kerja"
)
pajak_id = colander.SchemaNode(
colander.Integer(),
widget=widget.SelectWidget(values=pajak_select),
widget=deferred_pajak,
title="Pajak"
)
kode = colander.SchemaNode(
......@@ -113,7 +112,7 @@ class AddSchema(colander.Schema):
title="Uraian")
status = colander.SchemaNode(
colander.Integer(),
widget=widget.SelectWidget(values=STATUS),
widget=deferred_status,
title="Status")
class EditSchema(AddSchema):
......@@ -124,7 +123,11 @@ class EditSchema(AddSchema):
def get_form(request, class_form):
schema = class_form(validator=form_validator)
schema = schema.bind(daftar_status=STATUS)
schema = schema.bind(daftar_status=STATUS,
daftar_subjekpajak=daftar_subjekpajak(),
daftar_pajak=daftar_pajak(),
daftar_unit=daftar_unit(),
daftar_wilayah=daftar_wilayah())
schema.request = request
return Form(schema, buttons=('simpan','batal'))
......@@ -238,16 +241,17 @@ def view_act(request):
if url_dict['act']=='grid':
columns = []
columns.append(ColumnDT('id'))
columns.append(ColumnDT('registrasi'))
columns.append(ColumnDT('subjekpajak.kode'))
columns.append(ColumnDT('kode'))
columns.append(ColumnDT('nama'))
columns.append(ColumnDT('pajak'))
columns.append(ColumnDT('wilayah'))
columns.append(ColumnDT('pajak.kode'))
columns.append(ColumnDT('wilayah.nama'))
columns.append(ColumnDT('status'))
query = DBSession.query(ObjekPajak.id, ObjekPajak.kode,ObjekPajak.nama,
query = DBSession.query(ObjekPajak).join(SubjekPajak).join(Pajak).join(Wilayah)
""".id, ObjekPajak.kode,ObjekPajak.nama,
Rekening.kode.label('pajak'), SubjekPajak.kode.label('registrasi'),
Wilayah.nama.label('wilayah'), ObjekPajak.status).\
join(SubjekPajak).join(Wilayah).join(Pajak).join(Rekening)
"""
rowTable = DataTables(req, ObjekPajak, query, columns)
return rowTable.output_result()
......@@ -18,7 +18,7 @@ from ..models.isipkd import(
Rekening
)
from ..tools import STATUS
from daftar import STATUS, deferred_status, daftar_rekening, deferred_rekening
from datatables import (
ColumnDT, DataTables)
......@@ -61,11 +61,6 @@ def form_validator(form, value):
if found and found.id != r.id:
err_kode()
@colander.deferred
def deferred_status(node, kw):
values = kw.get('daftar_status', [])
return widget.SelectWidget(values=values)
class AddSchema(colander.Schema):
rekening_select = DBSession.query(Rekening.id,Rekening.nama).\
filter(Rekening.level_id==5).all()
......@@ -77,7 +72,7 @@ class AddSchema(colander.Schema):
rekening_id = colander.SchemaNode(
colander.Integer(),
widget=widget.SelectWidget(values=rekening_select),
widget=deferred_rekening,
title="Rekening")
tahun = colander.SchemaNode(
......@@ -89,7 +84,7 @@ class AddSchema(colander.Schema):
title='Tarif (%)')
status = colander.SchemaNode(
colander.Integer(),
widget=widget.SelectWidget(values=STATUS),
widget=deferred_status,
title="Status")
......@@ -101,7 +96,8 @@ class EditSchema(AddSchema):
def get_form(request, class_form):
schema = class_form(validator=form_validator)
schema = schema.bind(daftar_status=STATUS)
schema = schema.bind(daftar_status=STATUS,
daftar_rekening=daftar_rekening())
schema.request = request
return Form(schema, buttons=('simpan','batal'))
......
......@@ -12,14 +12,16 @@ from deform import (
widget,
ValidationFailure,
)
from ..models import DBSession
from ..models import DBSession, User
from ..models.isipkd import(
Pegawai,
Jabatan,
Unit
)
from ..tools import STATUS
from daftar import (STATUS, deferred_status,
daftar_jabatan, deferred_jabatan,
daftar_unit, deferred_unit)
from datatables import (
ColumnDT, DataTables)
......@@ -39,17 +41,16 @@ def view_list(request):
#######
# Add #
#######
def email_validator(node, value):
name, email = parseaddr(value)
if not email or email.find('@') < 0:
raise colander.Invalid(node, 'Invalid email format')
def form_validator(form, value):
def err_kode():
raise colander.Invalid(form,
'Kode pegawai %s sudah digunakan oleh ID %d' % (
value['kode'], found.id))
def err_kode():
raise colander.Invalid(form,
'User dengan Pegawai %s sudah ada' % (value['nama']))
if 'id' in form.request.matchdict:
uid = form.request.matchdict['id']
q = DBSession.query(Pegawai).filter_by(id=uid)
......@@ -61,17 +62,9 @@ def form_validator(form, value):
if r:
if found and found.id != r.id:
err_kode()
@colander.deferred
def deferred_status(node, kw):
values = kw.get('daftar_status', [])
return widget.SelectWidget(values=values)
if r and r.user_id:
err_user()
class AddSchema(colander.Schema):
unit_select = DBSession.query(Unit.id,Unit.nama).\
filter(Unit.level_id==3).all()
jabatan_select = DBSession.query(Jabatan.id,Jabatan.nama).all()
kode = colander.SchemaNode(
colander.String(),
title="NIP")
......@@ -80,18 +73,23 @@ class AddSchema(colander.Schema):
unit_id = colander.SchemaNode(
colander.Integer(),
widget=widget.SelectWidget(values=unit_select),
widget=deferred_unit,
title="SKPD")
jabatan_id = colander.SchemaNode(
colander.Integer(),
widget=widget.SelectWidget(values=jabatan_select),
widget=deferred_jabatan,
title="Jabatan")
status = colander.SchemaNode(
colander.Integer(),
widget=widget.SelectWidget(values=STATUS),
widget=deferred_status,
title="Status")
login = colander.SchemaNode(
colander.Boolean(),
missing = colander.drop,
title="Buat Login")
class EditSchema(AddSchema):
......@@ -102,26 +100,35 @@ class EditSchema(AddSchema):
def get_form(request, class_form):
schema = class_form(validator=form_validator)
schema = schema.bind(daftar_status=STATUS)
schema = schema.bind(daftar_status=STATUS, daftar_jabatan=daftar_jabatan(),
daftar_unit=daftar_unit())
schema.request = request
return Form(schema, buttons=('simpan','batal'))
def save(values, row=None):
login = None
if 'login' in values and values['login']:
login = User()
login.user_password = values['kode']
login.status=values['status']
login.user_name=values['nama']
login.email=values['kode']+'@local'
DBSession.add(login)
DBSession.flush()
if not row:
row = Pegawai()
row.user_id = 'login' in values and values['login'] and not row.user_id and login.id or None
row.from_dict(values)
#if values['password']:
# row.password = values['password']
DBSession.add(row)
DBSession.flush()
return row
def save_request(values, request, row=None):
if 'id' in request.matchdict:
values['id'] = request.matchdict['id']
print "****",values, "****", request
row = save(values, row)
request.session.flash('pegawai %s sudah disimpan.' % row.kode)
request.session.flash('Pegawai <strong>%s</strong> sudah disimpan.' % row.nama)
def route_list(request):
return HTTPFound(location=request.route_url('pegawai'))
......
......@@ -27,7 +27,12 @@ from datatables import (
SESS_ADD_FAILED = 'Gagal tambah Objek Pajak'
SESS_EDIT_FAILED = 'Gagal edit Objek Pajak'
from ..tools import STATUS
from daftar import (STATUS, deferred_status,
daftar_subjekpajak, deferred_subjekpajak,
daftar_wilayah, deferred_wilayah,
daftar_unit, deferred_unit,
daftar_pajak, deferred_pajak,
)
########
# List #
########
......@@ -71,37 +76,27 @@ def form_validator(form, value):
err_name()
elif found:
err_name()
@colander.deferred
def deferred_status(node, kw):
values = kw.get('daftar_status', [])
return widget.SelectWidget(values=values)
class AddSchema(colander.Schema):
unit_select = DBSession.query(Unit.id, Unit.nama).filter(Unit.level_id>2).all()
wilayah_select = DBSession.query(Wilayah.id, Wilayah.nama).filter(Wilayah.level_id>1).all()
pajak_select = DBSession.query(Pajak.id, Pajak.nama).all()
sp_select = DBSession.query(SubjekPajak.id, SubjekPajak.nama).all()
subjekpajak_id = colander.SchemaNode(
colander.Integer(),
widget=widget.SelectWidget(values=sp_select),
widget=deferred_subjekpajak,
title="Subjek Pajak"
)
wilayah_id = colander.SchemaNode(
colander.Integer(),
widget=widget.SelectWidget(values=wilayah_select),
widget=deferred_wilayah,
title="Wilayah"
)
unit_id = colander.SchemaNode(
colander.Integer(),
widget=widget.SelectWidget(values=unit_select),
title="SKPD/Unit Kerja"
widget=deferred_unit,
title="SKPD"
)
pajak_id = colander.SchemaNode(
colander.Integer(),
widget=widget.SelectWidget(values=pajak_select),
widget=deferred_pajak,
title="Pajak"
)
kode = colander.SchemaNode(
......@@ -113,7 +108,7 @@ class AddSchema(colander.Schema):
title="Uraian")
status = colander.SchemaNode(
colander.Integer(),
widget=widget.SelectWidget(values=STATUS),
widget=deferred_status,
title="Status")
class EditSchema(AddSchema):
......@@ -124,7 +119,9 @@ class EditSchema(AddSchema):
def get_form(request, class_form):
schema = class_form(validator=form_validator)
schema = schema.bind(daftar_status=STATUS)
schema = schema.bind(daftar_status=STATUS,
daftar_subjekpajak=daftar_subjekpajak(),
)
schema.request = request
return Form(schema, buttons=('simpan','batal'))
......
......@@ -42,8 +42,10 @@
<li tal:attributes="class request.path == '/' and 'active'"><a href="/">Home</a></li>
<li tal:attributes="class request.path == '/pkb/add' and 'active'"><a href="/pkb/add">PKB</a></li>
<li tal:attributes="class request.path == '/pap/add' and 'active'"><a href="/pap/add">PAP</a></li>
<li tal:attributes="class request.path == '/sptpd' and 'active'"><a href="/sptpd">Register Bayar</a></li>
<li tal:attributes="class request.path == '/sptpd' and 'active'"><a href="/sptpd">No. Bayar</a></li>
<li tal:attributes="class request.path == '/sspd' and 'active'"><a href="/sspd">Penerimaan</a></li>
<li tal:attributes="class request.path == '/sts' and 'active'"><a href="/sts">STS</a></li>
<!--li tal:attributes="class request.path == '/pbbkb' and 'active'"><a href="/pbbkb">PBB-KB</a></li>
<li tal:attributes="class request.path == '/pbbkb' and 'active'"><a href="/pbbkb">PBB-KB</a></li>
......
......@@ -19,7 +19,7 @@
<tr>
<th>ID</th>
<th>Registrasi</th>
<th>No. OP</th>
<th>No.</th>
<th>Uraian</th>
<th>Rekening</th>
<th>Wilayah</th>
......@@ -64,9 +64,9 @@
"aoColumns": [
null,
{"sWidth": "100px", "sClass": "left"},
{"sWidth": "50px", "sClass": "left"},
{"sWidth": "30px", "sClass": "center"},
null,
{"sWidth": "100px", "sClass": "center"},
{"sWidth": "75px", "sClass": "center"},
null,
{"sWidth": "40px", "sClass": "center"}
],
......
<html metal:use-macro="load: ../base.pt">
<div metal:fill-slot="content" class="form-550">
<h3>Tambah Objek</h3>
<hr>
<div tal:content="structure form"/>
</div>
</html>
<html metal:use-macro="load: ../base.pt">
<div metal:fill-slot="content">
<div class="panel panel-danger">
<div class="panel-heading">
<h3 class="panel-title">Warning</h3>
</div>
<div class="panel-body">
Hapus Objek ID #${row.id} ${row.nama} ?
</div>
</div>
<div tal:content="structure form"/>
</div>
</html>
<html metal:use-macro="load: ../base.pt">
<div metal:fill-slot="content" class="form-550">
<h3>Edit Objek</h3>
<hr>
<div tal:content="structure form"/>
</div>
</html>
<html metal:use-macro="load: ../base.pt">
<div metal:fill-slot="content">
<link href="/static/datatables/extensions/TableTools/css/dataTables.tableTools.min.css" rel="stylesheet">
<link href="/static/datatables/media/css/dataTables.bootstrap.css" rel="stylesheet">
<h4>Daftar No. Bayar</h4>
<hr>
<div class="container">
<!--form class="form-inline" role="form" id="frm_upload" name="frm_upload">
<label for="upload" class="control-label">Upload:</label>
<input type="text" class="form-control" id="upload">
<button type="submit" class="btn btn-default">Upload</button>
</form-->
</div>
<p>
<table id="table1" name="table1" class="table table-bordered table-hover table-condensed" >
<thead>
<tr>
<th>ID</th>
<th>Registrasi</th>
<th>No.</th>
<th>Uraian</th>
<th>Rekening</th>
<th>Wilayah</th>
<th>Status</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<script src="/static/datatables/media/js/jquery.dataTables.min.js"></script>
<!--script src="/static/datatables/media/js/jquery.jeditable.js')}"></script-->
<script src="/static/datatables/media/js/jquery.dataTables.ext.js"></script>
<script src="/static/datatables/extensions/TableTools/media/js/ZeroClipboard.js"></script>
<script src="/static/datatables/media/js/dataTables.bootstrap.js"></script>
<script>
var mID;
var oTable;
var iPos;
var oFormUrl = "/op/";
var oTableUrl = oFormUrl+"grid/act";
$(document).ready(function () {
oTable = $('#table1').dataTable({
"sAjaxSource": oTableUrl,
"bServerSide": true,
"bProcessing": true,
"sDom": '<"toolbar">lfrtip',
"bScrollCollapse": true,
"bSort": true,
"bInfo": false,
"bFilter": true,
"bAutoWidth": false,
"bPaginate": true,
"sPaginationType": "full_numbers",
"lengthMenu": [
[10, 25, 50, -1],
[10, 25, 50, "All"]
],
"aoColumnDefs": [
{"bSearchable": false, "bVisible": false, "aTargets": [0]}
],
"aoColumns": [
null,
{"sWidth": "100px", "sClass": "left"},
{"sWidth": "30px", "sClass": "center"},
null,
{"sWidth": "75px", "sClass": "center"},
null,
{"sWidth": "40px", "sClass": "center"}
],
});
var tb_array = [
'<div class="btn-group pull-left">',
' <button id="btn_tambah" class="btn btn btn-primary pull-left" type="button">Tambah</button>',
' <button id="btn_edit" class="btn btn btn-primary pull-left" type="button">Edit</button>',
' <button id="btn_delete" class="btn btn btn-danger pull-left" type="button">Hapus</button>',
' <button id="btn_print" class="btn btn btn-primary pull-left" type="button">Print</button>',
' &nbsp;',
'</div>',
];
var tb = tb_array.join(' ');
$("div.toolbar").html(tb);
$('#table1 tbody').on('click', 'tr', function () {
if ($(this).hasClass('selected')) {
mID = '';
$(this).removeClass('selected');
} else {
iPos = oTable.fnGetPosition(this);
var aData = oTable.fnGetData(iPos);
mID = aData[0];
oTable.$('tr.selected').removeClass('selected');
$(this).addClass('selected');
}
});
$('#btn_tambah').click(function () {
window.location = oFormUrl+'add';
});
$('#btn_edit').click(function () {
if (mID) {
window.location = oFormUrl+mID+'/edit';
} else {
alert('Silahkan pilih data yang akan diedit');
}
});
$('#btn_delete').click(function () {
if (mID) {
var hapus = confirm('Hapus data ini?');
if (hapus == true) {
window.location = oFormUrl+mID+'/delete';
};
} else {
alert('Silahkan pilih data yang akan dihapus');
}
});
});
</script>
</div>
</html>
......@@ -16,7 +16,8 @@ from ..models import DBSession
from ..models.isipkd import(
Wilayah,
)
from daftar import (
deferred_wilayah, daftar_wilayah)
from datatables import (
ColumnDT, DataTables)
......@@ -67,28 +68,6 @@ def form_validator(form, value):
elif found:
err_name()
@colander.deferred
def deferred_summary(node, kw):
values = kw.get('daftar_summary', [])
return widget.SelectWidget(values=values)
SUMMARIES = (
(1, 'Header'),
(0, 'Detail'),
)
def wilayah_select():
return DBSession.query(Wilayah.id, Wilayah.nama).all()
@colander.deferred
def deferred_wilayah_select(node, kw):
choices = kw.get('wilayah_select()')
return widget.SelectWidget(values=choices)
@colander.deferred
def deferred_wilayah_select_default(node, kw):
print kw
return kw[1]
class AddSchema(colander.Schema):
kode = colander.SchemaNode(
colander.String(),
......@@ -100,13 +79,10 @@ class AddSchema(colander.Schema):
title="Level")
parent_id = colander.SchemaNode(
colander.Integer(),
#default=deferred_wilayah_select_default,
#widget=deferred_wilayah_select,
widget=widget.SelectWidget(values=wilayah_select()),
widget=deferred_wilayah,
title="Parent",
missing=colander.drop)
class EditSchema(AddSchema):
id = colander.SchemaNode(colander.Integer(),
missing=colander.drop,
......@@ -115,7 +91,7 @@ class EditSchema(AddSchema):
def get_form(request, class_form):
schema = class_form(validator=form_validator)
schema = schema.bind(choices=wilayah_select())
schema = schema.bind(daftar_wilayah=daftar_wilayah())
schema.request = request
return Form(schema, buttons=('simpan','batal'))
......@@ -123,8 +99,8 @@ def save(values, row=None):
if not row:
row = Wilayah()
row.from_dict(values)
#if values['password']:
# row.password = values['password']
if not row.parent_id or row.parent_id==0 or row.parent_id=='0':
row.parent_id=None
DBSession.add(row)
DBSession.flush()
return row
......@@ -132,7 +108,6 @@ def save(values, row=None):
def save_request(values, request, row=None):
if 'id' in request.matchdict:
values['id'] = request.matchdict['id']
print "****",values, "****", request
row = save(values, row)
request.session.flash('wilayah %s sudah disimpan.' % row.kode)
......
......@@ -12,7 +12,7 @@ from deform import (
widget,
ValidationFailure,
)
from ..models import DBSession
from ..models import DBSession, User, UserGroup, Group
from ..models.isipkd import(
SubjekPajak,
)
......@@ -20,7 +20,8 @@ from ..models.isipkd import(
from datatables import (
ColumnDT, DataTables)
from ..tools import STATUS
from daftar import (STATUS, deferred_status,
daftar_user, deferred_user)
SESS_ADD_FAILED = 'Gagal tambah wp'
......@@ -38,11 +39,6 @@ def view_list(request):
#######
# Add #
#######
def email_validator(node, value):
name, email = parseaddr(value)
if not email or email.find('@') < 0:
raise colander.Invalid(node, 'Invalid email format')
def form_validator(form, value):
def err_kode():
raise colander.Invalid(form,
......@@ -51,8 +47,13 @@ def form_validator(form, value):
def err_name():
raise colander.Invalid(form,
'Uraian %s sudah digunakan oleh ID %d' % (
value['uraian'], found.id))
'Nama %s sudah digunakan oleh ID %d' % (
value['nama'], found.id))
def err_user():
raise colander.Invalid(form,
'User ID %s sudah digunakan oleh ID %d' % (
value['user_id'], found.id))
if 'id' in form.request.matchdict:
uid = form.request.matchdict['id']
......@@ -66,36 +67,76 @@ def form_validator(form, value):
if found and found.id != r.id:
err_kode()
elif found:
err_email()
if 'uraian' in value: # optional
found = SubjekPajak.get_by_uraian(value['uraian'])
err_kode()
if 'nama' in value: # optional
found = SubjekPajak.get_by_nama(value['nama'])
if r:
if found and found.id != r.id:
err_name()
elif found:
err_name()
if 'user_id' in value and int(value['user_id'])>0:
found = SubjekPajak.get_by_user(value['user_id'])
if r:
if found and found.id != r.id:
err_user()
elif found:
err_user()
if 'login' in value and int(value['user_id'])==0:
found = User.get_by_name(value['kode'])
if r:
if found and found.id != r.id:
err_user()
elif found:
err_user()
@colander.deferred
def deferred_status(node, kw):
values = kw.get('daftar_status', [])
return widget.SelectWidget(values=values)
class AddSchema(colander.Schema):
kode = colander.SchemaNode(
kode = colander.SchemaNode(
colander.String(),
)
nama = colander.SchemaNode(
colander.String())
)
nama = colander.SchemaNode(
colander.String()
)
alamat_1 = colander.SchemaNode(
colander.String())
colander.String()
)
alamat_2 = colander.SchemaNode(
colander.String(),
missing=colander.drop)
status = colander.SchemaNode(
missing=colander.drop
)
kelurahan= colander.SchemaNode(
colander.String(),
missing=colander.drop
)
kecamatan= colander.SchemaNode(
colander.String(),
missing=colander.drop
)
kota = colander.SchemaNode(
colander.String(),
missing=colander.drop
)
propinsi = colander.SchemaNode(
colander.String(),
missing=colander.drop
)
status = colander.SchemaNode(
colander.Integer(),
widget=widget.SelectWidget(values=STATUS),
widget=deferred_status,
title="Status")
user_id = colander.SchemaNode(
colander.Integer(),
widget=deferred_user,
default=0,
title="User")
login = colander.SchemaNode(
colander.Boolean(),
missing = colander.drop,
title='Buat Login'
)
class EditSchema(AddSchema):
id = colander.SchemaNode(colander.Integer(),
missing=colander.drop,
......@@ -104,24 +145,47 @@ class EditSchema(AddSchema):
def get_form(request, class_form):
schema = class_form(validator=form_validator)
schema = schema.bind(daftar_status=STATUS)
schema = schema.bind(daftar_status=STATUS,
daftar_user=daftar_user(),
)
schema.request = request
return Form(schema, buttons=('simpan','batal'))
def save(values, row=None):
login = None
if 'login' in values and values['login'] and int(values['user_id'])==0:
login = User()
login.user_password = values['kode']
login.status=values['status']
login.user_name=values['kode']
login.email=values['kode']+'@ws'
DBSession.add(login)
DBSession.flush()
if not row:
row = SubjekPajak()
row.from_dict(values)
#if values['password']:
# row.password = values['password']
if login:
row.user_id=login.id
if not row.user_id:
row.user_id=None
DBSession.add(row)
DBSession.flush()
if row.user_id:
q = DBSession.query(UserGroup).join(Group).filter(UserGroup.user_id==row.user_id,
Group.group_name=='wp').first()
if not q:
usergroup = UserGroup()
usergroup.user_id = row.user_id
usergroup.group_id = DBSession.query(Group.id).filter_by(group_name='wp').scalar()
DBSession.add(usergroup)
DBSession.flush()
return row
def save_request(values, request, row=None):
if 'id' in request.matchdict:
values['id'] = request.matchdict['id']
print "****",values, "****", request
row = save(values, row)
request.session.flash('wp %s sudah disimpan.' % row.kode)
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!