Commit 3584c16a by Owo Sugiana

Merge branch 'master' of https://github.com/aagusti/e-sipkd

2 parents 89d4ce61 fdf95065
...@@ -90,7 +90,7 @@ class DefaultModel(CommonModel): ...@@ -90,7 +90,7 @@ class DefaultModel(CommonModel):
cls.query_id(id).delete() cls.query_id(id).delete()
class KodeModel(DefaultModel): class KodeModel(DefaultModel):
kode = Column(String(64), unique=True) kode = Column(String(64))
@classmethod @classmethod
def query_kode(cls, kode): def query_kode(cls, kode):
return cls.query().filter_by(kode=kode) return cls.query().filter_by(kode=kode)
......
...@@ -12,15 +12,16 @@ from sqlalchemy import ( ...@@ -12,15 +12,16 @@ from sqlalchemy import (
ForeignKey, ForeignKey,
UniqueConstraint UniqueConstraint
) )
from sqlalchemy.orm import relationship from sqlalchemy.orm import relationship, backref
from ..models import( from ..models import(
DBSession,
DefaultModel, DefaultModel,
KodeModel, KodeModel,
NamaModel, NamaModel,
Base, Base,
User
) )
##################### ###########################
# #
########################### ###########################
class Pkb(DefaultModel,Base): class Pkb(DefaultModel,Base):
...@@ -65,6 +66,7 @@ class UnitRekening(Base): ...@@ -65,6 +66,7 @@ class UnitRekening(Base):
class Jabatan(NamaModel, Base): class Jabatan(NamaModel, Base):
__tablename__ = 'jabatans' __tablename__ = 'jabatans'
status = Column(Integer, default=1) status = Column(Integer, default=1)
UniqueConstraint('kode')
#nama = Column(String(128)) #nama = Column(String(128))
class Pegawai(NamaModel, Base): class Pegawai(NamaModel, Base):
...@@ -73,7 +75,8 @@ class Pegawai(NamaModel, Base): ...@@ -73,7 +75,8 @@ class Pegawai(NamaModel, Base):
status = Column(Integer, default=1) status = Column(Integer, default=1)
jabatan_id = Column(Integer,ForeignKey("jabatans.id")) jabatan_id = Column(Integer,ForeignKey("jabatans.id"))
unit_id = Column(Integer,ForeignKey("units.id")) unit_id = Column(Integer,ForeignKey("units.id"))
user_id = Column(Integer,ForeignKey("users.id"), nullable=True)
UniqueConstraint('kode')
class PegawaiLogin(Base): class PegawaiLogin(Base):
__tablename__ = 'pegawai_users' __tablename__ = 'pegawai_users'
user_id = Column(Integer,ForeignKey("users.id"), primary_key=True) user_id = Column(Integer,ForeignKey("users.id"), primary_key=True)
...@@ -98,15 +101,27 @@ class Wilayah(NamaModel,Base): ...@@ -98,15 +101,27 @@ class Wilayah(NamaModel,Base):
parent = relationship("Wilayah", parent = relationship("Wilayah",
backref="child", backref="child",
remote_side=[id]) remote_side=[id])
class SubjekPajak(NamaModel, Base): class SubjekPajak(NamaModel, Base):
__tablename__ = 'subjekpajaks' __tablename__ = 'subjekpajaks'
#nama = Column(String(128))
status = Column(Integer, default=1) status = Column(Integer, default=1)
alamat_1 = Column(String(128)) alamat_1 = Column(String(128))
alamat_2 = 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): class ObjekPajak(NamaModel, Base):
__tablename__ = 'objekpajaks' __tablename__ = 'objekpajaks'
__table_args__ = (UniqueConstraint('subjekpajak_id', 'kode',
name='objekpajak_kode_uq'),
)
status = Column(Integer, default=1) status = Column(Integer, default=1)
alamat_1 = Column(String(128)) alamat_1 = Column(String(128))
alamat_2 = Column(String(128)) alamat_2 = Column(String(128))
...@@ -114,10 +129,15 @@ class ObjekPajak(NamaModel, Base): ...@@ -114,10 +129,15 @@ class ObjekPajak(NamaModel, Base):
unit_id = Column(Integer,ForeignKey("units.id")) unit_id = Column(Integer,ForeignKey("units.id"))
pajak_id = Column(Integer, ForeignKey("pajaks.id")) pajak_id = Column(Integer, ForeignKey("pajaks.id"))
subjekpajak_id = Column(Integer, ForeignKey("subjekpajaks.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): class Sptpd(Base):
__tablename__ = 'sptpds' __tablename__ = 'sptpds'
id = Column(Integer, primary_key=True) id = Column(Integer, primary_key=True)
kode = Column(String, unique=True)
unit_id = Column(Integer) unit_id = Column(Integer)
subjek_pajak_id = Column(Integer, ForeignKey("subjekpajaks.id")) subjek_pajak_id = Column(Integer, ForeignKey("subjekpajaks.id"))
objek_pajak_id = Column(Integer, ForeignKey("objekpajaks.id")) objek_pajak_id = Column(Integer, ForeignKey("objekpajaks.id"))
...@@ -155,7 +175,7 @@ class Sts(Base): ...@@ -155,7 +175,7 @@ class Sts(Base):
class StsItem(Base): class StsItem(Base):
__tablename__ = 'sts_item' __tablename__ = 'sts_item'
sts_id = Column(Integer, primary_key=True) sts_id = Column(Integer, primary_key=True)
sptpd_id = Column(Integer, primary_key=True) sspd_id = Column(Integer, primary_key=True)
class SSPD(Base): class SSPD(Base):
__tablename__ = 'sspd' __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',
}
...@@ -10,6 +10,8 @@ from data.routes import RouteData ...@@ -10,6 +10,8 @@ from data.routes import RouteData
from data.apps import AppsData from data.apps import AppsData
from data.unit import UnitData from data.unit import UnitData
from data.rekening import RekeningData from data.rekening import RekeningData
from data.pajak import PajakData
from DbTools import ( from DbTools import (
get_pkeys, get_pkeys,
execute, execute,
...@@ -30,6 +32,7 @@ fixtures = [ ...@@ -30,6 +32,7 @@ fixtures = [
('routes', RouteData), ('routes', RouteData),
('units', UnitData), ('units', UnitData),
('rekenings', RekeningData), ('rekenings', RekeningData),
('pajaks', PajakData),
] ]
def insert(): 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 \ No newline at end of file
...@@ -16,6 +16,8 @@ from ..models import DBSession ...@@ -16,6 +16,8 @@ from ..models import DBSession
from ..models.isipkd import( from ..models.isipkd import(
Jabatan, Jabatan,
) )
from daftar import STATUS, deferred_status
from datatables import ( from datatables import (
ColumnDT, DataTables) ColumnDT, DataTables)
...@@ -23,8 +25,6 @@ from datatables import ( ...@@ -23,8 +25,6 @@ from datatables import (
SESS_ADD_FAILED = 'Gagal tambah jabatan' SESS_ADD_FAILED = 'Gagal tambah jabatan'
SESS_EDIT_FAILED = 'Gagal edit jabatan' SESS_EDIT_FAILED = 'Gagal edit jabatan'
from ..tools import STATUS
######## ########
# List # # List #
######## ########
...@@ -37,11 +37,6 @@ def view_list(request): ...@@ -37,11 +37,6 @@ def view_list(request):
####### #######
# Add # # 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 form_validator(form, value):
def err_kode(): def err_kode():
raise colander.Invalid(form, raise colander.Invalid(form,
...@@ -74,11 +69,6 @@ def form_validator(form, value): ...@@ -74,11 +69,6 @@ def form_validator(form, value):
elif found: elif found:
err_name() err_name()
@colander.deferred
def deferred_summary(node, kw):
values = kw.get('daftar_summary', [])
return widget.SelectWidget(values=values)
class AddSchema(colander.Schema): class AddSchema(colander.Schema):
kode = colander.SchemaNode( kode = colander.SchemaNode(
colander.String(), colander.String(),
...@@ -90,7 +80,7 @@ class AddSchema(colander.Schema): ...@@ -90,7 +80,7 @@ class AddSchema(colander.Schema):
status = colander.SchemaNode( status = colander.SchemaNode(
colander.Integer(), colander.Integer(),
widget=widget.SelectWidget(values=STATUS), widget=deferred_status,
title="Status") title="Status")
......
...@@ -24,10 +24,17 @@ from ..models.isipkd import( ...@@ -24,10 +24,17 @@ from ..models.isipkd import(
from datatables import ( from datatables import (
ColumnDT, DataTables) 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_ADD_FAILED = 'Gagal tambah Objek Pajak'
SESS_EDIT_FAILED = 'Gagal edit Objek Pajak' SESS_EDIT_FAILED = 'Gagal edit Objek Pajak'
from ..tools import STATUS from daftar import STATUS
######## ########
# List # # List #
######## ########
...@@ -57,13 +64,15 @@ def form_validator(form, value): ...@@ -57,13 +64,15 @@ def form_validator(form, value):
r = q.first() r = q.first()
else: else:
r = None 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() found = q.first()
if r: if r:
if found and found.id != r.id: if found and found.id != r.id:
err_kode() err_kode()
elif found: elif found:
err_email() err_kode()
if 'nama' in value: # optional if 'nama' in value: # optional
found = ObjekPajak.get_by_nama(value['nama']) found = ObjekPajak.get_by_nama(value['nama'])
if r: if r:
...@@ -72,36 +81,26 @@ def form_validator(form, value): ...@@ -72,36 +81,26 @@ def form_validator(form, value):
elif found: elif found:
err_name() err_name()
@colander.deferred
def deferred_status(node, kw):
values = kw.get('daftar_status', [])
return widget.SelectWidget(values=values)
class AddSchema(colander.Schema): 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( subjekpajak_id = colander.SchemaNode(
colander.Integer(), colander.Integer(),
widget=widget.SelectWidget(values=sp_select), widget=deferred_subjekpajak,
title="Subjek Pajak" title="Subjek Pajak"
) )
wilayah_id = colander.SchemaNode( wilayah_id = colander.SchemaNode(
colander.Integer(), colander.Integer(),
widget=widget.SelectWidget(values=wilayah_select), widget=deferred_wilayah,
title="Wilayah" title="Wilayah"
) )
unit_id = colander.SchemaNode( unit_id = colander.SchemaNode(
colander.Integer(), colander.Integer(),
widget=widget.SelectWidget(values=unit_select), widget=deferred_unit,
title="SKPD/Unit Kerja" title="SKPD/Unit Kerja"
) )
pajak_id = colander.SchemaNode( pajak_id = colander.SchemaNode(
colander.Integer(), colander.Integer(),
widget=widget.SelectWidget(values=pajak_select), widget=deferred_pajak,
title="Pajak" title="Pajak"
) )
kode = colander.SchemaNode( kode = colander.SchemaNode(
...@@ -113,7 +112,7 @@ class AddSchema(colander.Schema): ...@@ -113,7 +112,7 @@ class AddSchema(colander.Schema):
title="Uraian") title="Uraian")
status = colander.SchemaNode( status = colander.SchemaNode(
colander.Integer(), colander.Integer(),
widget=widget.SelectWidget(values=STATUS), widget=deferred_status,
title="Status") title="Status")
class EditSchema(AddSchema): class EditSchema(AddSchema):
...@@ -124,7 +123,11 @@ class EditSchema(AddSchema): ...@@ -124,7 +123,11 @@ class EditSchema(AddSchema):
def get_form(request, class_form): def get_form(request, class_form):
schema = class_form(validator=form_validator) 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 schema.request = request
return Form(schema, buttons=('simpan','batal')) return Form(schema, buttons=('simpan','batal'))
...@@ -238,16 +241,17 @@ def view_act(request): ...@@ -238,16 +241,17 @@ def view_act(request):
if url_dict['act']=='grid': if url_dict['act']=='grid':
columns = [] columns = []
columns.append(ColumnDT('id')) columns.append(ColumnDT('id'))
columns.append(ColumnDT('registrasi')) columns.append(ColumnDT('subjekpajak.kode'))
columns.append(ColumnDT('kode')) columns.append(ColumnDT('kode'))
columns.append(ColumnDT('nama')) columns.append(ColumnDT('nama'))
columns.append(ColumnDT('pajak')) columns.append(ColumnDT('pajak.kode'))
columns.append(ColumnDT('wilayah')) columns.append(ColumnDT('wilayah.nama'))
columns.append(ColumnDT('status')) 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'), Rekening.kode.label('pajak'), SubjekPajak.kode.label('registrasi'),
Wilayah.nama.label('wilayah'), ObjekPajak.status).\ Wilayah.nama.label('wilayah'), ObjekPajak.status).\
join(SubjekPajak).join(Wilayah).join(Pajak).join(Rekening) join(SubjekPajak).join(Wilayah).join(Pajak).join(Rekening)
"""
rowTable = DataTables(req, ObjekPajak, query, columns) rowTable = DataTables(req, ObjekPajak, query, columns)
return rowTable.output_result() return rowTable.output_result()
...@@ -18,7 +18,7 @@ from ..models.isipkd import( ...@@ -18,7 +18,7 @@ from ..models.isipkd import(
Rekening Rekening
) )
from ..tools import STATUS from daftar import STATUS, deferred_status, daftar_rekening, deferred_rekening
from datatables import ( from datatables import (
ColumnDT, DataTables) ColumnDT, DataTables)
...@@ -61,11 +61,6 @@ def form_validator(form, value): ...@@ -61,11 +61,6 @@ def form_validator(form, value):
if found and found.id != r.id: if found and found.id != r.id:
err_kode() err_kode()
@colander.deferred
def deferred_status(node, kw):
values = kw.get('daftar_status', [])
return widget.SelectWidget(values=values)
class AddSchema(colander.Schema): class AddSchema(colander.Schema):
rekening_select = DBSession.query(Rekening.id,Rekening.nama).\ rekening_select = DBSession.query(Rekening.id,Rekening.nama).\
filter(Rekening.level_id==5).all() filter(Rekening.level_id==5).all()
...@@ -77,7 +72,7 @@ class AddSchema(colander.Schema): ...@@ -77,7 +72,7 @@ class AddSchema(colander.Schema):
rekening_id = colander.SchemaNode( rekening_id = colander.SchemaNode(
colander.Integer(), colander.Integer(),
widget=widget.SelectWidget(values=rekening_select), widget=deferred_rekening,
title="Rekening") title="Rekening")
tahun = colander.SchemaNode( tahun = colander.SchemaNode(
...@@ -89,7 +84,7 @@ class AddSchema(colander.Schema): ...@@ -89,7 +84,7 @@ class AddSchema(colander.Schema):
title='Tarif (%)') title='Tarif (%)')
status = colander.SchemaNode( status = colander.SchemaNode(
colander.Integer(), colander.Integer(),
widget=widget.SelectWidget(values=STATUS), widget=deferred_status,
title="Status") title="Status")
...@@ -101,7 +96,8 @@ class EditSchema(AddSchema): ...@@ -101,7 +96,8 @@ class EditSchema(AddSchema):
def get_form(request, class_form): def get_form(request, class_form):
schema = class_form(validator=form_validator) 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 schema.request = request
return Form(schema, buttons=('simpan','batal')) return Form(schema, buttons=('simpan','batal'))
......
...@@ -12,14 +12,16 @@ from deform import ( ...@@ -12,14 +12,16 @@ from deform import (
widget, widget,
ValidationFailure, ValidationFailure,
) )
from ..models import DBSession from ..models import DBSession, User
from ..models.isipkd import( from ..models.isipkd import(
Pegawai, Pegawai,
Jabatan, Jabatan,
Unit Unit
) )
from ..tools import STATUS from daftar import (STATUS, deferred_status,
daftar_jabatan, deferred_jabatan,
daftar_unit, deferred_unit)
from datatables import ( from datatables import (
ColumnDT, DataTables) ColumnDT, DataTables)
...@@ -39,17 +41,16 @@ def view_list(request): ...@@ -39,17 +41,16 @@ def view_list(request):
####### #######
# Add # # 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 form_validator(form, value):
def err_kode(): def err_kode():
raise colander.Invalid(form, raise colander.Invalid(form,
'Kode pegawai %s sudah digunakan oleh ID %d' % ( 'Kode pegawai %s sudah digunakan oleh ID %d' % (
value['kode'], found.id)) 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: if 'id' in form.request.matchdict:
uid = form.request.matchdict['id'] uid = form.request.matchdict['id']
q = DBSession.query(Pegawai).filter_by(id=uid) q = DBSession.query(Pegawai).filter_by(id=uid)
...@@ -61,17 +62,9 @@ def form_validator(form, value): ...@@ -61,17 +62,9 @@ def form_validator(form, value):
if r: if r:
if found and found.id != r.id: if found and found.id != r.id:
err_kode() err_kode()
if r and r.user_id:
@colander.deferred err_user()
def deferred_status(node, kw):
values = kw.get('daftar_status', [])
return widget.SelectWidget(values=values)
class AddSchema(colander.Schema): 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( kode = colander.SchemaNode(
colander.String(), colander.String(),
title="NIP") title="NIP")
...@@ -80,18 +73,23 @@ class AddSchema(colander.Schema): ...@@ -80,18 +73,23 @@ class AddSchema(colander.Schema):
unit_id = colander.SchemaNode( unit_id = colander.SchemaNode(
colander.Integer(), colander.Integer(),
widget=widget.SelectWidget(values=unit_select), widget=deferred_unit,
title="SKPD") title="SKPD")
jabatan_id = colander.SchemaNode( jabatan_id = colander.SchemaNode(
colander.Integer(), colander.Integer(),
widget=widget.SelectWidget(values=jabatan_select), widget=deferred_jabatan,
title="Jabatan") title="Jabatan")
status = colander.SchemaNode( status = colander.SchemaNode(
colander.Integer(), colander.Integer(),
widget=widget.SelectWidget(values=STATUS), widget=deferred_status,
title="Status") title="Status")
login = colander.SchemaNode(
colander.Boolean(),
missing = colander.drop,
title="Buat Login")
class EditSchema(AddSchema): class EditSchema(AddSchema):
...@@ -102,26 +100,35 @@ class EditSchema(AddSchema): ...@@ -102,26 +100,35 @@ class EditSchema(AddSchema):
def get_form(request, class_form): def get_form(request, class_form):
schema = class_form(validator=form_validator) 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 schema.request = request
return Form(schema, buttons=('simpan','batal')) return Form(schema, buttons=('simpan','batal'))
def save(values, row=None): 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: if not row:
row = Pegawai() 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) row.from_dict(values)
#if values['password']:
# row.password = values['password']
DBSession.add(row) DBSession.add(row)
DBSession.flush() DBSession.flush()
return row return row
def save_request(values, request, row=None): def save_request(values, request, row=None):
if 'id' in request.matchdict: if 'id' in request.matchdict:
values['id'] = request.matchdict['id'] values['id'] = request.matchdict['id']
print "****",values, "****", request
row = save(values, row) 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): def route_list(request):
return HTTPFound(location=request.route_url('pegawai')) return HTTPFound(location=request.route_url('pegawai'))
......
...@@ -27,7 +27,12 @@ from datatables import ( ...@@ -27,7 +27,12 @@ from datatables import (
SESS_ADD_FAILED = 'Gagal tambah Objek Pajak' SESS_ADD_FAILED = 'Gagal tambah Objek Pajak'
SESS_EDIT_FAILED = 'Gagal edit 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 # # List #
######## ########
...@@ -71,37 +76,27 @@ def form_validator(form, value): ...@@ -71,37 +76,27 @@ def form_validator(form, value):
err_name() err_name()
elif found: elif found:
err_name() err_name()
@colander.deferred
def deferred_status(node, kw):
values = kw.get('daftar_status', [])
return widget.SelectWidget(values=values)
class AddSchema(colander.Schema): 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( subjekpajak_id = colander.SchemaNode(
colander.Integer(), colander.Integer(),
widget=widget.SelectWidget(values=sp_select), widget=deferred_subjekpajak,
title="Subjek Pajak" title="Subjek Pajak"
) )
wilayah_id = colander.SchemaNode( wilayah_id = colander.SchemaNode(
colander.Integer(), colander.Integer(),
widget=widget.SelectWidget(values=wilayah_select), widget=deferred_wilayah,
title="Wilayah" title="Wilayah"
) )
unit_id = colander.SchemaNode( unit_id = colander.SchemaNode(
colander.Integer(), colander.Integer(),
widget=widget.SelectWidget(values=unit_select), widget=deferred_unit,
title="SKPD/Unit Kerja" title="SKPD"
) )
pajak_id = colander.SchemaNode( pajak_id = colander.SchemaNode(
colander.Integer(), colander.Integer(),
widget=widget.SelectWidget(values=pajak_select), widget=deferred_pajak,
title="Pajak" title="Pajak"
) )
kode = colander.SchemaNode( kode = colander.SchemaNode(
...@@ -113,7 +108,7 @@ class AddSchema(colander.Schema): ...@@ -113,7 +108,7 @@ class AddSchema(colander.Schema):
title="Uraian") title="Uraian")
status = colander.SchemaNode( status = colander.SchemaNode(
colander.Integer(), colander.Integer(),
widget=widget.SelectWidget(values=STATUS), widget=deferred_status,
title="Status") title="Status")
class EditSchema(AddSchema): class EditSchema(AddSchema):
...@@ -124,7 +119,9 @@ class EditSchema(AddSchema): ...@@ -124,7 +119,9 @@ class EditSchema(AddSchema):
def get_form(request, class_form): def get_form(request, class_form):
schema = class_form(validator=form_validator) 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 schema.request = request
return Form(schema, buttons=('simpan','batal')) return Form(schema, buttons=('simpan','batal'))
......
...@@ -42,8 +42,10 @@ ...@@ -42,8 +42,10 @@
<li tal:attributes="class request.path == '/' and 'active'"><a href="/">Home</a></li> <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 == '/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 == '/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 == '/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>
<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 @@ ...@@ -19,7 +19,7 @@
<tr> <tr>
<th>ID</th> <th>ID</th>
<th>Registrasi</th> <th>Registrasi</th>
<th>No. OP</th> <th>No.</th>
<th>Uraian</th> <th>Uraian</th>
<th>Rekening</th> <th>Rekening</th>
<th>Wilayah</th> <th>Wilayah</th>
...@@ -64,9 +64,9 @@ ...@@ -64,9 +64,9 @@
"aoColumns": [ "aoColumns": [
null, null,
{"sWidth": "100px", "sClass": "left"}, {"sWidth": "100px", "sClass": "left"},
{"sWidth": "50px", "sClass": "left"}, {"sWidth": "30px", "sClass": "center"},
null, null,
{"sWidth": "100px", "sClass": "center"}, {"sWidth": "75px", "sClass": "center"},
null, null,
{"sWidth": "40px", "sClass": "center"} {"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 ...@@ -16,7 +16,8 @@ from ..models import DBSession
from ..models.isipkd import( from ..models.isipkd import(
Wilayah, Wilayah,
) )
from daftar import (
deferred_wilayah, daftar_wilayah)
from datatables import ( from datatables import (
ColumnDT, DataTables) ColumnDT, DataTables)
...@@ -67,28 +68,6 @@ def form_validator(form, value): ...@@ -67,28 +68,6 @@ def form_validator(form, value):
elif found: elif found:
err_name() 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): class AddSchema(colander.Schema):
kode = colander.SchemaNode( kode = colander.SchemaNode(
colander.String(), colander.String(),
...@@ -100,13 +79,10 @@ class AddSchema(colander.Schema): ...@@ -100,13 +79,10 @@ class AddSchema(colander.Schema):
title="Level") title="Level")
parent_id = colander.SchemaNode( parent_id = colander.SchemaNode(
colander.Integer(), colander.Integer(),
#default=deferred_wilayah_select_default, widget=deferred_wilayah,
#widget=deferred_wilayah_select,
widget=widget.SelectWidget(values=wilayah_select()),
title="Parent", title="Parent",
missing=colander.drop) missing=colander.drop)
class EditSchema(AddSchema): class EditSchema(AddSchema):
id = colander.SchemaNode(colander.Integer(), id = colander.SchemaNode(colander.Integer(),
missing=colander.drop, missing=colander.drop,
...@@ -115,7 +91,7 @@ class EditSchema(AddSchema): ...@@ -115,7 +91,7 @@ class EditSchema(AddSchema):
def get_form(request, class_form): def get_form(request, class_form):
schema = class_form(validator=form_validator) schema = class_form(validator=form_validator)
schema = schema.bind(choices=wilayah_select()) schema = schema.bind(daftar_wilayah=daftar_wilayah())
schema.request = request schema.request = request
return Form(schema, buttons=('simpan','batal')) return Form(schema, buttons=('simpan','batal'))
...@@ -123,8 +99,8 @@ def save(values, row=None): ...@@ -123,8 +99,8 @@ def save(values, row=None):
if not row: if not row:
row = Wilayah() row = Wilayah()
row.from_dict(values) row.from_dict(values)
#if values['password']: if not row.parent_id or row.parent_id==0 or row.parent_id=='0':
# row.password = values['password'] row.parent_id=None
DBSession.add(row) DBSession.add(row)
DBSession.flush() DBSession.flush()
return row return row
...@@ -132,7 +108,6 @@ def save(values, row=None): ...@@ -132,7 +108,6 @@ def save(values, row=None):
def save_request(values, request, row=None): def save_request(values, request, row=None):
if 'id' in request.matchdict: if 'id' in request.matchdict:
values['id'] = request.matchdict['id'] values['id'] = request.matchdict['id']
print "****",values, "****", request
row = save(values, row) row = save(values, row)
request.session.flash('wilayah %s sudah disimpan.' % row.kode) request.session.flash('wilayah %s sudah disimpan.' % row.kode)
......
...@@ -12,7 +12,7 @@ from deform import ( ...@@ -12,7 +12,7 @@ from deform import (
widget, widget,
ValidationFailure, ValidationFailure,
) )
from ..models import DBSession from ..models import DBSession, User, UserGroup, Group
from ..models.isipkd import( from ..models.isipkd import(
SubjekPajak, SubjekPajak,
) )
...@@ -20,7 +20,8 @@ from ..models.isipkd import( ...@@ -20,7 +20,8 @@ from ..models.isipkd import(
from datatables import ( from datatables import (
ColumnDT, DataTables) ColumnDT, DataTables)
from ..tools import STATUS from daftar import (STATUS, deferred_status,
daftar_user, deferred_user)
SESS_ADD_FAILED = 'Gagal tambah wp' SESS_ADD_FAILED = 'Gagal tambah wp'
...@@ -38,11 +39,6 @@ def view_list(request): ...@@ -38,11 +39,6 @@ def view_list(request):
####### #######
# Add # # 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 form_validator(form, value):
def err_kode(): def err_kode():
raise colander.Invalid(form, raise colander.Invalid(form,
...@@ -51,8 +47,13 @@ def form_validator(form, value): ...@@ -51,8 +47,13 @@ def form_validator(form, value):
def err_name(): def err_name():
raise colander.Invalid(form, raise colander.Invalid(form,
'Uraian %s sudah digunakan oleh ID %d' % ( 'Nama %s sudah digunakan oleh ID %d' % (
value['uraian'], found.id)) 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: if 'id' in form.request.matchdict:
uid = form.request.matchdict['id'] uid = form.request.matchdict['id']
...@@ -66,36 +67,76 @@ def form_validator(form, value): ...@@ -66,36 +67,76 @@ def form_validator(form, value):
if found and found.id != r.id: if found and found.id != r.id:
err_kode() err_kode()
elif found: elif found:
err_email() err_kode()
if 'uraian' in value: # optional
found = SubjekPajak.get_by_uraian(value['uraian']) if 'nama' in value: # optional
found = SubjekPajak.get_by_nama(value['nama'])
if r: if r:
if found and found.id != r.id: if found and found.id != r.id:
err_name() err_name()
elif found: elif found:
err_name() 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): class AddSchema(colander.Schema):
kode = colander.SchemaNode( kode = colander.SchemaNode(
colander.String(), colander.String(),
) )
nama = colander.SchemaNode( nama = colander.SchemaNode(
colander.String()) colander.String()
)
alamat_1 = colander.SchemaNode( alamat_1 = colander.SchemaNode(
colander.String()) colander.String()
)
alamat_2 = colander.SchemaNode( alamat_2 = colander.SchemaNode(
colander.String(), colander.String(),
missing=colander.drop) missing=colander.drop
status = colander.SchemaNode( )
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(), colander.Integer(),
widget=widget.SelectWidget(values=STATUS), widget=deferred_status,
title="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): class EditSchema(AddSchema):
id = colander.SchemaNode(colander.Integer(), id = colander.SchemaNode(colander.Integer(),
missing=colander.drop, missing=colander.drop,
...@@ -104,24 +145,47 @@ class EditSchema(AddSchema): ...@@ -104,24 +145,47 @@ class EditSchema(AddSchema):
def get_form(request, class_form): def get_form(request, class_form):
schema = class_form(validator=form_validator) 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 schema.request = request
return Form(schema, buttons=('simpan','batal')) return Form(schema, buttons=('simpan','batal'))
def save(values, row=None): 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: if not row:
row = SubjekPajak() row = SubjekPajak()
row.from_dict(values) row.from_dict(values)
#if values['password']: if login:
# row.password = values['password'] row.user_id=login.id
if not row.user_id:
row.user_id=None
DBSession.add(row) DBSession.add(row)
DBSession.flush() 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 return row
def save_request(values, request, row=None): def save_request(values, request, row=None):
if 'id' in request.matchdict: if 'id' in request.matchdict:
values['id'] = request.matchdict['id'] values['id'] = request.matchdict['id']
print "****",values, "****", request
row = save(values, row) row = save(values, row)
request.session.flash('wp %s sudah disimpan.' % row.kode) 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!