departemen_report.py
2.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import os
# from ..tools import row2dict, xls_reader
from datetime import datetime
from pyramid.view import (
view_config,
)
from opensipkd.tools.report import (
open_rml_row,
open_rml_pdf,
pdf_response,
csv_response,
)
from ..models import DBSession
from ..models import (
Departemen,
)
from ..views import (BaseView, )
class view_rpt(BaseView):
@view_config(route_name='departemen-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 = 'partner.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+'/departemen.row.rml')
rows=[]
for r in query.all():
s = rml_row.format(kode=r.kode, nama=r.nama, status=r.status and "Aktif" or "Pasif", kategori=r.kategori)
rows.append(s)
pdf, filename = open_rml_pdf(path+'/departemen.rml', rows=rows,
company=request.company,
departement = request.session['departemen_nm'],
address = request.address,
alamat=Departemen.query_id(request.session['departemen_id']).first(),
periode = '01-01-2017 s.d 31-12-2017')
return pdf_response(request, pdf, filename)
# ##########
# # query #
# ##########
def query_reg(request):
return DBSession.query(Departemen.kode,
Departemen.nama,
Departemen.status,
Departemen.kategori).\
filter(Departemen.status==1).\
order_by(Departemen.id)