skp.py 1.73 KB
import os
import uuid
from datetime import datetime
from sqlalchemy import not_, func, between
from pyramid.view import (view_config,)
from pyramid.httpexceptions import ( HTTPFound, )
import colander
from deform import (Form, widget, ValidationFailure, )
from ..views import BaseView, ColumnDT, DataTables
from ..models import SipkdDBSession as DBSession
from ..models import Skp
from ..tools import date_from_str

class view_invoice(BaseView):
    @view_config(route_name="sipkd-skp", renderer="templates/skp/list.pt",
                 permission="sipkd-skp")
    def view_list(self):
        return dict(project='SIPKD')

##########
# Action #
##########
@view_config(route_name='sipkd-skp-act', renderer='json',
             permission='sipkd-skp-act')
def view_act(request):
    ses = request.session
    req = request
    params   = req.params
    url_dict = req.matchdict

    if url_dict['act']=='grid':
        pk_id = 'id' in params and params['id'] and int(params['id']) or 0
        if url_dict['act']=='grid':
            # defining columns
            columns = [
                ColumnDT(Skp.noskp, mData="nomor"),
                ColumnDT(Skp.penyetor, mData="penyetor"),
                ColumnDT(Skp.uraiskp, mData="uraian"),
                ColumnDT(Skp.tglskp, mData="tanggal"),
                ColumnDT(Skp.tglvalid, mData="valid"),
                ColumnDT(Skp.bunga, mData="nilai"),
                ColumnDT(Skp.bunga, mData="bunga"),
                ]
            query = DBSession.query().select_from(Skp).\
                      filter(
                          between(Skp.tglskp, ses['dt_awal'], ses['dt_akhir'])
                          )
            rowTable = DataTables(req.GET, query, columns)
            return rowTable.output_result()