dph_report.py 9.21 KB
# import os
# import uuid
# import re
# #from ..tools import row2dict #, xls_reader
# from email.utils import parseaddr
# from datetime import datetime
# from sqlalchemy import not_, func, or_, desc, and_
# from sqlalchemy.orm import aliased
# from pyramid.view import (
#     view_config,
#     )
# from pyramid.httpexceptions import (HTTPFound,HTTPNotFound)
# import json
# import colander
# from deform import (
#     Form,
#     widget,
#     ValidationFailure,
#     )
# from ..views import (ColumnDT, DataTables, BaseView,)
# from ..tools import (
#     open_rml_row,
#     open_rml_pdf,
#     pdf_response,
#     csv_response,
#     get_logo,
#     dmy,
#     date_from_str,
#     thousand,
#     STATUS,
#     get_settings
#     )
# from ..models import PbbmDBSession
# from ..models import (
#     PembayaranDph,
#     Sppt, Kelurahan, Kecamatan, Pegawai, PegawaiLogin, PegawaiDepartemen,
#     )
#
#
# class Views(BaseView):
#     @view_config(route_name='pbbm-dph-rpt', renderer='csv')
#     def view_csv(self):
#         request = self.req
#         ses = request.session
#         params = request.params
#         url_dict = request.matchdict
#         uid = request.user.id
#         tgl = datetime.now().strftime('%d-%m-%Y')
#         if url_dict['rpt']=='csv' :
#             query = query_reg(request)
#             row = query.first()
#             header = row.keys()
#             rows = []
#             for item in query.all():
#                 rows.append(list(item))
#
#             filename = 'dph_report.csv'
#             value = {
#                   'header': header,
#                   'rows'  : rows,
#                 }
#             return csv_response(request, value, filename)
#         elif url_dict['rpt']=='pdf':
#             query = query_reg(request)
#             _here = os.path.dirname(__file__) #get current folder -> views
#             path = os.path.dirname(_here) #mundur 1 level
#             path = os.path.join(path, 'reports')
#             rml_row = open_rml_row(path+'/dph.row.rml')
#
#             rows=[]
#             tot_denda = tot_bayar = 0
#             for r in query.all():
#                 s = rml_row.format(nop=r.nop, tahun=r.tahun, nama=r.nama,
#                                    pokok=thousand(r.bayar - r.denda),
#                                    denda = thousand(r.denda),
#                                    bayar=thousand(r.bayar))
#                 rows.append(s)
#                 tot_denda += r.denda
#                 tot_bayar += r.bayar
#             s = rml_row.format(nop='JUMLAH', tahun='', nama='',
#                                pokok=thousand(tot_bayar - tot_denda),
#                                denda = thousand(tot_denda),
#                                bayar=thousand(tot_bayar))
#             rows.append(s)
#             pdf, filename = open_rml_pdf(path+'/dph.rml', rows=rows,
#                                 company=request.company,
#                                 departement = request.departement,
#                                 address = request.address,
#                                 periode = "%s s.d %s" % (self.awal, self.akhir))
#             return pdf_response(request, pdf, filename)
#         elif url_dict['rpt']=='stts':
#             if not 'tahun' in params or not 'nop' in params or not 'ke' in params:
#                 ses.flash('Parameter Not Supported', 'error')
#                 #return HTTPNotFound()
#                 return dict(project = 'PBBM')
#
#             nop = re.sub('\D','',request.params['nop'])
#             if len(nop)<18:
#                 nop = settings['pbb_pemda'].replace(".","") + nop
#             thn = params['tahun']
#             ke  = params['ke']
#             query = PembayaranDph.query_ke(nop, thn, ke)
#             row = query.filter_by(user_id = request.user.id).first()
#             if not row:
#                 ses.flash('Data Tidak Ditemukan', 'error')
#                 #return HTTPNotFound()
#                 return dict(project = 'PBBM')
#
#             _here = os.path.dirname(__file__) #get current folder -> views
#             path = os.path.dirname(_here) #mundur 1 level
#             path = os.path.join(path, 'reports')
#             sppt = Sppt.query_nop_thn(nop,thn).first()
#             if row.user_id > 1:
#                 pegawai = PegawaiLogin.query_user(row.user_id).first()
#                 if not pegawai:
#                     return HTTPNotFound
#                 pegawai = pegawai.pegawai
#                 jabatan = PegawaiDepartemen.query_jabatan(pegawai.id, row.tgl_pembayaran).first()
#
#             pdf, filename = open_rml_pdf(path+'/stts.rml', #rows=rows,
#                                 company=request.company,
#                                 departement = request.departement,
#                                 alamat = request.address,
#                                 nop = nop,
#                                 tahun = row.thn_pajak,
#                                 kecamatan = Kecamatan.query_id(nop).first().nm_kecamatan,
#                                 kelurahan = Kelurahan.query_id(nop).first().nm_kelurahan,
#                                 nama = sppt.nm_wp_sppt,
#                                 jalan = sppt.jln_wp_sppt,
#                                 blok = sppt.blok_kav_no_wp_sppt and sppt.blok_kav_no_wp_sppt  or "-",
#                                 rt = sppt.rt_wp_sppt,
#                                 rw = sppt.rw_wp_sppt,
#                                 kelurahan_wp = sppt.kelurahan_wp_sppt,
#                                 kota = sppt.kota_wp_sppt,
#                                 npwp = sppt.npwp_sppt,
#                                 pokok = thousand(row.bayar - row.denda),
#                                 denda = thousand(row.denda),
#                                 bayar = thousand(row.bayar),
#                                 tanggal = dmy(row.tgl_pembayaran),
#                                 kd_pos = sppt.kd_pos_wp_sppt and sppt.kd_pos_wp_sppt  or '-',
#                                 ibukota = request.ibukota,
#                                 jabatan = row.user_id>1 and jabatan and jabatan.jabatan.nama or 'Admin',
#                                 pegawai = row.user_id>1 and pegawai.nama or 'Admin',
#                                 nip = row.user_id>1 and pegawai.kode or request.session['pegawai_kd']
#
#                                 )
#             return pdf_response(request, pdf, filename)


#
# # ##########
# # # query   #
# # ##########
# def view_rekap(request):
#     return PbbmDBSession.query(
# 	            func.concat(PembayaranDph.kd_kecamatan, func.concat("."),
# 				            PembayaranDph.kd_kelurahan).label("kode"),
# 				Kelurahan.nm_kelurahan,
# 				func.sum(PembayaranDph.denda).label("denda"),
# 				func.sum(PembayaranDph.bayar).label("bayar"),
# 				func.count().label("jumlah")
# 	        ).\
#             outerjoin(Kelurahan ,(kelurahan.id == PembayaranDph.kd_kelurahan)).\
#             group_by(
# 			    PembayaranDph.kd_kecamatan,
# 				PembayaranDph.kd_kelurahan,
# 				Kelurahan.nm_kelurahan
# 			).\
#             filter(
# 			    PembayaranDph.tgl_pembayaran.between(
# 				    request.session['dt_awal'],
# 					request.session['dt_akhir']
# 				)
# 			)
#
# def query_reg(request):
#     return PbbmDBSession.query(
#                   func.concat(PembayaranDph.kd_kecamatan, func.concat(".",
#                   func.concat(PembayaranDph.kd_kelurahan, func.concat(".",
#                   func.concat(PembayaranDph.kd_blok, func.concat(".",
#                   func.concat(PembayaranDph.no_urut, func.concat(".",
#                               PembayaranDph.kd_jns_op)))))))).label("nop"),
#                   PembayaranDph.thn_pajak.label('tahun'),
#
#                   Sppt.nm_wp_sppt.label('nama'),
#
#                   PembayaranDph.denda.label('denda'),
#                   PembayaranDph.bayar.label('bayar'),
#                   PembayaranDph.posted.label('posted')
#                   ).\
#               join(Sppt, and_ (
#                             Sppt.kd_propinsi == PembayaranDph.kd_propinsi,
#                             Sppt.kd_dati2 == PembayaranDph.kd_dati2,
#                             Sppt.kd_kecamatan == PembayaranDph.kd_kecamatan,
#                             Sppt.kd_kelurahan == PembayaranDph.kd_kelurahan,
#                             Sppt.kd_blok == PembayaranDph.kd_blok,
#                             Sppt.no_urut == PembayaranDph.no_urut,
#                             Sppt.kd_jns_op == PembayaranDph.kd_jns_op,
#                             Sppt.thn_pajak_sppt == PembayaranDph.thn_pajak,
#                             )).\
#               filter(PembayaranDph.tgl_pembayaran.between(
#                         request.session['dt_awal'], request.session['dt_akhir']),
#                      PembayaranDph.user_id == request.user.id).\
#               order_by(PembayaranDph.kd_kecamatan,
#                        PembayaranDph.kd_kelurahan,
#                        PembayaranDph.kd_blok,
#                        PembayaranDph.no_urut,
#                        PembayaranDph.kd_jns_op,
#                        PembayaranDph.thn_pajak)