Commit 647e23e4 by Tatang S
2 parents 170da2d0 91dd97fd
......@@ -9,11 +9,13 @@ import logging
import mimetypes
import os
import re
from deform import widget
from json import JSONEncoder
from random import choice
from string import (ascii_uppercase, ascii_lowercase, digits, )
import colander
from pyramid.csrf import new_csrf_token
import pytz
from pyramid.httpexceptions import HTTPNotFound
from pyramid.threadlocal import get_current_registry
......@@ -1005,7 +1007,6 @@ def terbilang_(n):
hasil = terbilang_(n % 10) + ['belas']
else:
hasil = [satuan[n]]
print('hasil')
return hasil
......
......@@ -246,7 +246,8 @@ def csv_response(request, value, filename=None):
else:
fout = io.StringIO()
fcsv = csv.writer(fout, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
fcsv = csv.writer(fout, delimiter=',', quotechar='"',
quoting=csv.QUOTE_MINIMAL)
fcsv.writerow(value.get('header', []))
fcsv.writerows(value.get('rows', []))
response.write(fout.getvalue())
......@@ -254,7 +255,8 @@ def csv_response(request, value, filename=None):
def terbilang(bil):
angka = ["", "Satu", "Dua", "Tiga", "Empat", "Lima", "Enam", "Tujuh", "Delapan", "Sembilan", "Sepuluh", "Sebelas"]
angka = ["", "Satu", "Dua", "Tiga", "Empat", "Lima", "Enam",
"Tujuh", "Delapan", "Sembilan", "Sepuluh", "Sebelas"]
hasil = " "
n = int(bil)
if 0 <= n <= 11:
......@@ -274,7 +276,8 @@ def terbilang(bil):
elif n < 1000000000:
hasil = terbilang(n / 1000000) + " Juta" + terbilang(n % 1000000)
else:
hasil = terbilang(n / 1000000000) + " Miliar" + terbilang(n % 1000000000)
hasil = terbilang(n / 1000000000) + " Miliar" + \
terbilang(n % 1000000000)
return hasil
......@@ -301,7 +304,8 @@ def pdf_compress(original_filename, compressed_filename=None):
filenames = ori_filename.split('.')
ext = filenames[-1]
filename = "".join(filenames[:-1])
compressed_filename = os.path.join(ori_dir, f"{filename}_compressed.{ext}")
compressed_filename = os.path.join(
ori_dir, f"{filename}_compressed.{ext}")
reader = PdfReader(original_filename)
writer = PdfWriter()
......@@ -322,7 +326,9 @@ def pdf_compress(original_filename, compressed_filename=None):
# tmp_reports(settings=get_settings(), module_dirname="pbb/pendataan")
# tmp_reports(settings=get_settings(), tmp_path="/home/user/tmp", module_dirname="pbb/pendataan")
# return "string of path"
def tmp_reports(settings = None, tmp_path = None, module_dirname = None):
def tmp_reports(settings=None, tmp_path=None, module_dirname=None):
default_tmp = '/tmp'
if settings is None:
......@@ -346,3 +352,137 @@ def tmp_reports(settings = None, tmp_path = None, module_dirname = None):
class Item(object):
pass
# Jasper Processor
# class BaseView(object):
# def __init__(self, request):
# super().__init__(request)
# self.user_id = self.req.user.id
# self.user_admin = self.req.has_permission('pjdl-admin') \
# or self.req.has_permission('admin') or False
# self.report_folder = "master"
# self._file = None
# self.report_path = MODULE_CLASS.report_path
# @property
# def report_file(self):
# return os.path.join(self.report_path, self.report_folder, self._file)
# @report_file.setter
# def report_file(self, value):
# self._file = value
# def get_report_filter(self, values, pars, opts=True):
# # pars = p.split(":")
# if opts:
# if pars[1] not in values:
# par = len(pars) > 3 and pars[3] or pars[1]
# raise HTTPNotFound(f"Parameter {par} belum diisi")
# # if pars[1].find("customer")>-1:
# # raise Exception("X")
# if pars[1] in values:
# vals = values[pars[1]]
# if pars[2] == "str":
# self.params[pars[1]] = str(vals)
# if not opts:
# self.kondisi = f"{self.kondisi} AND {pars[0]}='{vals}'"
# vals = f"'{vals}'"
# self.qry = self.qry.filter(
# func.CAST(PjdlReportItems.params[pars[1]], String) == f'"{vals}"')
# elif pars[2] == "int":
# self.params[pars[1]] = int(vals)
# if not opts:
# self.kondisi = f"{self.kondisi} AND {pars[0]}={vals}"
# vals = f"{vals}"
# self.qry = self.qry.filter(
# func.CAST(PjdlReportItems.params[pars[1]], String) == f'{vals}')
# elif pars[2] in ["dMy", "ymd", "dmy"]:
# vals = date_from_str(vals)
# fc = getattr(opensipkd.tools, pars[2])
# vals = f"{fc(vals)}"
# self.params[pars[1]] = vals
# self.qry = self.qry.filter(
# func.CAST(PjdlReportItems.params[pars[1]], String) == f'"{vals}"')
# if not opts:
# self.kondisi = f"{self.kondisi} AND {pars[0]}='{vals}'"
# else:
# raise Exception(f"Belum ada fungsi {pars[2]}")
# # if pars[1]!="tgl_cetak":
# def jasper_response(self, **kwargs):
# from opensipkd.base.tools.report import jasper_export
# output_formats = kwargs.get("output_formats", ["pdf"])
# force = kwargs.get("force", False)
# # Menghindari temporary file dalam module aplikasi
# out_path = get_params("pjdl_report_files", '/tmp/pjdl/reports')
# out_path = os.path.join(out_path, "out")
# if not os.path.exists(out_path):
# os.makedirs(out_path)
# # Ambil-nama-report dari tabel report
# rpt_kode = os.path.basename(self.report_file)
# row = PjdlReports.query_kode(rpt_kode).first()
# if not row:
# return HTTPNotFound(f"File report {rpt_kode} belum terdaftar")
# # Check data pada report yang sudah dibuat
# self.qry = PjdlReportItems.query().filter(PjdlReportItems.report_id == row.id)
# self.params = {}
# self.kondisi = ""
# if row and row.params:
# par = row.params.replace('\r', '').replace('\n', '')
# par = par.split(",")
# if par:
# values = kwargs.get("values", {})
# for p in par:
# if p.startswith('['):
# # optional parameter
# p = p.strip('[').strip(']')
# pars = p.split(":")
# _logging.debug(f"pars: {pars}")
# self.get_report_filter(values, pars, False)
# else:
# pars = p.split(":")
# _logging.debug(f"pars: {pars}")
# if pars[1] not in values:
# par = len(pars) > 3 and pars[3] or pars[1]
# return HTTPNotFound(f"Parameter {par} Belum Diisi")
# self.get_report_filter(values, pars)
# _logging.debug(f"kondisinya: {self.kondisi}")
# self.params["kondisi"] = self.kondisi
# self.qry = self.qry.filter(
# func.CAST(
# PjdlReportItems.params["output_formats"], String) == f'"{output_formats}"')
# items = self.qry.first()
# if items and not force:
# file_name = os.path.join(out_path, items.file_name)
# if not os.path.exists(os.path.join(out_path, file_name)):
# force = True
# else:
# force = True
# if force:
# self.params.update(MODULE_CLASS.report_params)
# _logging.debug(f"parameter: {self.params}")
# file_name = jasper_export(
# self.report_file, out_path, parameters=self.params,
# output_formats=output_formats)[0]
# if not items:
# items = PjdlReportItems()
# items.report_id = row.id
# self.params["output_formats"] = output_formats
# items.params = self.params
# _logging.debug(f"parameter: {self.params}")
# items.file_name = os.path.basename(file_name)
# flush(items)
# return file_response(self.req, filename=file_name)
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!