Exemple #1
0
 def gaji_routes_act(self):
     ses = self.request.session
     req = self.request
     params = req.params
     url_dict = req.matchdict
     
     if url_dict['act']=='grid':
         columns = []
         columns.append(ColumnDT('id'))
         columns.append(ColumnDT('kode'))
         columns.append(ColumnDT('nama'))
         columns.append(ColumnDT('path'))
         columns.append(ColumnDT('factory'))
         columns.append(ColumnDT('perm_name'))
         columns.append(ColumnDT('disabled'))
         
         query = DBSession.query(Route)
         rowTable = DataTables(req, Route, query, columns)
         return rowTable.output_result()
         
     elif url_dict['act']=='headof':
         term = 'term' in params and params['term'] or '' 
         rows = DBSession.query(Route.id, Route.nama
                   ).filter(
                   Route.nama.ilike('%%%s%%' % term),
                   Route.perm_name != None).\
                   order_by(Route.path).all()
         r = []
         for k in rows:
             d={}
             d['id']          = k[0]
             d['value']       = k[1]
             r.append(d)
         return r                  
Exemple #2
0
 def view_act(self):
     ses = self.request.session
     req = self.request
     params   = req.params
     url_dict = req.matchdict
     
     if url_dict['act']=='grid':
         columns = []
         columns.append(ColumnDT('id'))
         columns.append(ColumnDT('kode'))
         columns.append(ColumnDT('uraian'))
         columns.append(ColumnDT('units.nama'))
         columns.append(ColumnDT('disabled'))
         
         query = DBSession.query(AsetRuang)
         rowTable = DataTables(req, AsetRuang, query, columns)
         return rowTable.output_result()
         
     elif url_dict['act']=='headofnama':
         term   = 'term'   in params and params['term']   or '' 
         q = DBSession.query(AsetRuang.id,AsetRuang.kode,AsetRuang.uraian).\
                 filter(#AsetRuang.unit_id == ses['unit_id'],
                        AsetRuang.uraian.ilike('%%%s%%' % term)).\
                 order_by(AsetRuang.uraian)
         rows = q.all()
         r = []
         for k in rows:
             d={}
             d['id']          = k[0]
             d['value']       = k[2]
             d['kode']        = k[1]
             d['uraian']      = k[2]
             r.append(d)    
         return r
Exemple #3
0
def view_delete(request):
    q = query_id(request)
    row = q.first()
    if not row:
        return {'success':False, "msg":self.id_not_found()}

    msg = 'Data sudah dihapus'
    query_id(request).delete()
    DBSession.flush()

    amount = "%s" % Spp.get_nilai(row.ap_spp_id)

    # untuk kondisi hapus langsung nominal ke SPP
    if amount == 'None':
        amount=0
        
    rows = DBSession.query(Spp).filter(Spp.id==row.ap_spp_id).first()
    rows.nominal=amount
    DBSession.add(rows)
    DBSession.flush()
        
    #Untuk update status posted dan status_spp pada APInvoice    
    row = DBSession.query(APInvoice).filter(APInvoice.id==row.ap_invoice_id).first()   
    #row.disabled=0
    row.status_spp=0
    save_request2(row)
    
    return {'success':True, "msg":msg, 'jml_total':amount}\
    
Exemple #4
0
def view_delete(request):
    q = query_id(request)
    kegiatan_sub_id = request.matchdict['kegiatan_sub_id']
    row = q.first()
        
    if not row:
        return id_not_found(request,kegiatan_sub_id)
        
    ## Cek sudah Posting atau belum    
    q = DBSession.query(KegiatanSub.disabled).filter(KegiatanSub.id==request.matchdict['kegiatan_sub_id'])
    rowsub = q.first()
    if rowsub.disabled:
        request.session.flash('Data tidak dapat dihapus karena sudah Posting', 'error')
        return route_list(request, kegiatan_sub_id)
    
    form = Form(colander.Schema(), buttons=('hapus','cancel'))
    values= {}
    
    if request.POST:
        if 'hapus' in request.POST:
            msg = '%s berhasil.' % (request.title)
            DBSession.query(KegiatanAsistensi).filter(KegiatanAsistensi.id==request.matchdict['id']).delete()
            DBSession.flush()
            request.session.flash(msg)
        return route_list(request,kegiatan_sub_id)
    return dict(row=row, form=form.render())

            
                        
Exemple #5
0
def view_edit(request):
    row = query_id(request).first()
    uid     = row.id
    kode    = row.kode
    
    if not row:
        return id_not_found(request)
    if row.posted:
        request.session.flash('Data sudah diposting', 'error')
        return route_list(request)

    form = get_form(request, EditSchema)
    if request.POST:
        if 'simpan' in request.POST:
            controls = request.POST.items()

            #Cek Kode Sama ato tidak
            a = form.validate(controls)
            b = a['kode']
            c = "%s" % b
            cek = DBSession.query(Sts).filter(Sts.kode==c).first()
            if cek:
                kode1 = DBSession.query(Sts).filter(Sts.id==uid).first()
                d     = kode1.kode
                if d!=c:
                    request.session.flash('Kode Sts sudah ada', 'error')
                    return HTTPFound(location=request.route_url('ar-sts-edit',id=row.id))

            try:
                c = form.validate(controls)
            except ValidationFailure, e:
                return dict(form=form)
            save_request(dict(controls), request, row)
        return route_list(request)
Exemple #6
0
def view_edit_unposting(request):
    row = query_id(request).first()
    
    if not row:
        return id_not_found(request)
    if not row.posted:
        request.session.flash('Data tidak dapat di Unposting, karena belum diposting.', 'error')
        return route_list(request)
    if row.disabled:
        request.session.flash('Data jurnal Tagihan sudah diposting.', 'error')
        return route_list(request)
        
    form = Form(colander.Schema(), buttons=('unposting','cancel'))
    
    if request.POST:
        if 'unposting' in request.POST: 
        
            #Update status posted pada UTANG
            row.posted=0
            save_request3(request, row)
            
            r = DBSession.query(AkJurnal.id).filter(AkJurnal.source_no==row.kode).first()
            #Menghapus Item Jurnal
            DBSession.query(AkJurnalItem).filter(AkJurnalItem.ak_jurnal_id==r).delete()
            DBSession.flush()
                
            #Menghapus UTANG yang sudah menjadi jurnal
            DBSession.query(AkJurnal).filter(AkJurnal.source_no==row.kode).delete()
            DBSession.flush()
            
        return route_list(request)
    return dict(row=row, form=form.render())
    
      
 def view_edit_unposting(self):
     request = self.request
     row     = self.query_id().first()
     kode    = row.ref_kode
     
     if not row:
         return id_not_found(request)
     if not row.posted:
         self.request.session.flash('Data tidak dapat di Unposting jurnal, karena belum diposting jurnal.', 'error')
         return self.route_list()
     if row.disabled:
         self.request.session.flash('Data jurnal TBP sudah diposting.', 'error')
         return self.route_list()
         
     form = Form(colander.Schema(), buttons=('un-jurnal','cancel'))
     
     if request.POST:
         if 'un-jurnal' in request.POST: 
         
             #Update status posted pada TBP
             row.posted=0
             self.save_request4(row)
             
             r = DBSession.query(Jurnal.id.label('di')).filter(Jurnal.source_no==row.ref_kode,Jurnal.source=='TBP').all()
             for row in r:
                 #Menghapus Item Jurnal
                 DBSession.query(JurnalItem).filter(JurnalItem.jurnal_id==row.di).delete()
                 DBSession.flush()
             
             #Menghapus TBP yang sudah menjadi jurnal
             DBSession.query(Jurnal).filter(Jurnal.source_no==kode,Jurnal.source=='TBP').delete()
             DBSession.flush()
             
         return self.route_list()
     return dict(row=row, form=form.render())    
Exemple #8
0
 def view_delete(self):
     q = self.query_id()
     row = q.first()
     request=self.request
     
     if not row:
         return id_not_found(request)
     if row.posted:
         request.session.flash('Data sudah diposting', 'error')
         return self.route_list()
     if row.status_giro:
         request.session.flash('Data masih terdapat pada Giro', 'error')
         return self.route_list()
         
     form = Form(colander.Schema(), buttons=('hapus','cancel'))
     values= {}
     if request.POST:
         if 'hapus' in request.POST:
         
             #Untuk menghapus SP2D
             msg = '%s dengan kode %s telah berhasil.' % (request.title, row.kode)
             DBSession.query(Sp2d).filter(Sp2d.id==request.matchdict['id']).delete()
             DBSession.flush()
             request.session.flash(msg)
             
             #Untuk update status posted dan disabled pada SPM
             row = DBSession.query(Spm).filter(Spm.id==row.ap_spm_id).first()   
             row.posted=0
             row.disabled=0
             self.save_request3(row)
             
         return self.route_list()
     return dict(row=row,form=form.render())
Exemple #9
0
def gaji_group_act(request):
    ses = request.session
    req = request
    params = req.params
    url_dict = req.matchdict
    
    if url_dict['act']=='grid':
        columns = []
        columns.append(ColumnDT('id'))
        columns.append(ColumnDT('email'))
        columns.append(ColumnDT('user_name'))
        columns.append(ColumnDT('status'))
        columns.append(ColumnDT('last_login_date'))
        columns.append(ColumnDT('registered_date'))
        
        query = DBSession.query(User)
        rowTable = DataTables(req, User, query, columns)
        return rowTable.output_result()
    elif url_dict['act']=='headofnama':
        term = 'term' in params and params['term'] or '' 
        rows = DBSession.query(User.id, User.user_name
                  ).filter(
                  User.user_name.ilike('%%%s%%' % term) ).all()
        r = []
        for k in rows:
            d={}
            d['id']          = k[0]
            d['value']       = k[1]
            r.append(d)
        return r        
Exemple #10
0
 def gaji_group_act(self):
     ses = self.request.session
     req = self.request
     params = req.params
     url_dict = req.matchdict
     
     if url_dict['act']=='grid':
         columns = []
         columns.append(ColumnDT('id'))
         columns.append(ColumnDT('group_name'))
         columns.append(ColumnDT('description'))
         columns.append(ColumnDT('member_count'))
         
         query = DBSession.query(Group)
         rowTable = DataTables(req, Group, query, columns)
         return rowTable.output_result()
     elif url_dict['act']=='headofnama':
         term = 'term' in params and params['term'] or '' 
         rows = DBSession.query(Group.id, Group.group_name
                   ).filter(
                   Group.group_name.ilike('%%%s%%' % term) ).all()
         r = []
         for k in rows:
             d={}
             d['id']          = k[0]
             d['value']       = k[1]
             r.append(d)
         return r                  
Exemple #11
0
def form_validator(form, value):
    def err_email():
        raise colander.Invalid(form,
            'Email %s sudah digunakan oleh user ID %d' % (
                value['email'], found.id))

    def err_name():
        raise colander.Invalid(form,
            'Nama user %s sudah digunakan oleh ID %d' % (
                value['user_name'], found.id))
                
    if 'id' in form.request.matchdict:
        uid = form.request.matchdict['id']
        q = DBSession.query(User).filter_by(id=uid)
        user = q.first()
    else:
        user = None
    q = DBSession.query(User).filter_by(email=value['email'])
    found = q.first()
    if user:
        if found and found.id != user.id:
            err_email()
    elif found:
        err_email()
    if 'user_name' in value: # optional
        found = User.get_by_name(value['user_name'])
        if user:
            if found and found.id != user.id:
                err_name()
        elif found:
            err_name()
Exemple #12
0
 def view_edit_unposting(self):
     request = self.request
     row     = self.query_id().first()
     
     if not row:
         return id_not_found(request)
     if not row.posted:
         self.request.session.flash('Data tidak dapat di Un-Jurnal, karena belum dibuat jurnal.', 'error')
         return self.route_list()
     if row.disabled:
         self.request.session.flash('Data jurnal Penetapan/Tagihan sudah diposting.', 'error')
         return self.route_list()
         
     form = Form(colander.Schema(), buttons=('un-jurnal','cancel'))
     
     if request.POST:
         if 'un-jurnal' in request.POST: 
         
             #Update status posted pada PIUTANG
             row.posted=0
             self.save_request3(row)
             
             r = DBSession.query(Jurnal.id).filter(Jurnal.source_no==row.ref_kode,Jurnal.source=='Penetapan').first()
             #Menghapus Item Jurnal
             DBSession.query(JurnalItem).filter(JurnalItem.jurnal_id==r).delete()
             DBSession.flush()
                 
             #Menghapus PIUTANG yang sudah menjadi jurnal
             DBSession.query(Jurnal).filter(Jurnal.source_no==row.ref_kode,Jurnal.source=='Penetapan').delete()
             DBSession.flush()
             
         return self.route_list()
     return dict(row=row, form=form.render())
         
Exemple #13
0
def view_delete(request):
    q = query_id(request)
    row = q.first()
    
    if not row:
        return id_not_found(request)
    if row.posted:
        request.session.flash('Data sudah diposting', 'error')
        return route_list(request)
    if row.status_spp:
        request.session.flash('Data sudah di SPP', 'error')
        return route_list(request)
    """
    if row.amount:
        request.session.flash('Data tidak bisa dihapus, karena memiliki data items', 'error')
        return route_list(request)
    """    
    form = Form(colander.Schema(), buttons=('hapus','cancel'))
    values= {}
    if request.POST:
        if 'hapus' in request.POST:
            msg = '%s dengan kode %s telah berhasil.' % (request.title, row.kode)
            DBSession.query(APPayment).filter(APPayment.id==request.matchdict['id']).delete()
            DBSession.flush()
            request.session.flash(msg)
            
            #Untuk update status posted dan status_pay pada APInvoice
            inv_id = row.invoice_id
            row = DBSession.query(APInvoice).filter(APInvoice.id==inv_id).first()   
            row.status_pay = 0
            save_request2(row)
    
        return route_list(request)
    return dict(row=row, form=form.render())
    
Exemple #14
0
def view_delete(request):
    q = query_id(request)
    row = q.first()
    
    if not row:
        return id_not_found(request)
    if row.posted:
        request.session.flash('Data sudah diposting SKPD', 'error')
        return route_list(request)
    if row.posted1:
        request.session.flash('Data sudah diposting PPKD', 'error')
        return route_list(request)
    if row.nominal:
        request.session.flash('Data tidak bisa dihapus, karena memiliki data items', 'error')
        return route_list(request)
            
    form = Form(colander.Schema(), buttons=('hapus','cancel'))
    values= {}
    if request.POST:
        if 'hapus' in request.POST:
            msg = '%s dengan kode %s telah berhasil.' % (request.title, row.kode)
            DBSession.query(Sts).filter(Sts.id==request.matchdict['id']).delete()
            DBSession.flush()
            request.session.flash(msg)
        return route_list(request)
    return dict(row=row, form=form.render())
Exemple #15
0
    def view_edit(self):
        request = self.request
        row = self.query_id().first()
        uid     = row.id
        kode    = row.kode
        
        if not row:
            return id_not_found(request)
            
        form = self.get_form(EditSchema)
        if request.POST:
            if 'simpan' in request.POST:
                controls = request.POST.items()

                #Cek Kode Sama ato tidak
                a = form.validate(controls)
                b = a['kode']
                c = "%s" % b
                cek = DBSession.query(Giro).filter(Giro.kode==c).first()
                if cek:
                    kode1 = DBSession.query(Giro).filter(Giro.id==uid).first()
                    d     = kode1.kode
                    if d!=c:
                        self.request.session.flash('Kode Giro sudah ada', 'error')
                        return HTTPFound(location=request.route_url('ap-giro-edit',id=row.id))

                try:
                    c = form.validate(controls)
                except ValidationFailure, e:
                    return dict(form=form)
                self.save_request(dict(controls), row)
            return self.route_list()
Exemple #16
0
 def gaji_act(self):
     ses = self.request.session
     req = self.request
     params = req.params
     url_dict = req.matchdict
     if url_dict['act']=='grid':
         columns = []
         columns.append(ColumnDT('id'))
         columns.append(ColumnDT('kode'))
         columns.append(ColumnDT('nama'))
         columns.append(ColumnDT('programs.nama'))
         columns.append(ColumnDT('disabled'))
         query = Kegiatan.query() #DBSession.query(Kegiatan)
         rowTable = DataTables(req, Kegiatan, query, columns)
         return rowTable.output_result()
             
     elif url_dict['act']=='headofkode':
         term = 'term' in params and params['term'] or '' 
         rows = DBSession.query(Kegiatan.id, Kegiatan.kode, Kegiatan.nama
                   ).join(Program).filter( Program.kode!="0.00.00",
                   Kegiatan.kode.ilike('%%%s%%' % term) ).all()
         r = []
         for k in rows:
             d={}
             d['id']          = k[0]
             d['value']       = k[1]
             d['kode']        = k[1]
             d['nama']        = k[2]
             r.append(d)
         return r
             
     elif url_dict['act']=='headofnama':
         term = 'term' in params and params['term'] or '' 
         rows = DBSession.query(Kegiatan.id, Kegiatan.kode, Kegiatan.nama
                   ).join(Program).filter( Program.kode!="0.00.00",
                   Kegiatan.nama.ilike('%%%s%%' % term) ).all()
         r = []
         for k in rows:
             d={}
             d['id']          = k[0]
             d['value']       = k[2]
             d['kode']        = k[1]
             d['nama']        = k[2]
             r.append(d)
         return r            
               
     elif url_dict['act']=='headofnama1':
         term = 'term' in params and params['term'] or '' 
         rows = DBSession.query(Kegiatan.id, Kegiatan.kode, Kegiatan.nama
                   ).join(Program).filter( #Program.kode!="0.00.00",
                   Kegiatan.nama.ilike('%%%s%%' % term) ).all()
         r = []
         for k in rows:
             d={}
             d['id']          = k[0]
             d['value']       = k[2]
             d['kode']        = k[1]
             d['nama']        = k[2]
             r.append(d)
         return r            
Exemple #17
0
    def view_fungsi_edit(self):
        request = self.request
        row     = self.query_id().first()
        uid     = row.id
        kode    = row.kode

        if not row:
            return id_not_found(request)
            
        form = self.get_form(EditSchema)
        if request.POST:
            if 'simpan' in request.POST:
                controls = request.POST.items()
                print controls
                
                #Cek Kode Sama ato tidak
                a = form.validate(controls)
                b = a['kode']
                c = "%s" % b
                cek = DBSession.query(Fungsi).filter(Fungsi.kode==c).first()
                if cek:
                    kode1 = DBSession.query(Fungsi).filter(Fungsi.id==uid).first()
                    d     = kode1.kode
                    if d!=c:
                        self.request.session.flash('Data sudah ada', 'error')
                        return HTTPFound(location=request.route_url('fungsi-edit',id=row.id))

                try:
                    c = form.validate(controls)
                except ValidationFailure, e:
                    request.session[SESS_EDIT_FAILED] = e.render()               
                    return HTTPFound(location=request.route_url('fungsi-edit',
                                      id=row.id))
                self.save_request(dict(controls), row)
            return self.route_list()
Exemple #18
0
def view_delete(request):
    q = query_id(request)
    row = q.first()
    
    if not row:
        return id_not_found(request)
    if row.posted:
        request.session.flash('Data sudah diposting', 'error')
        return route_list(request)
    if row.status_spp:
        request.session.flash('Data sudah masuk di SPP', 'error')
        return route_list(request)
    if row.status_pay:
        request.session.flash('Data sudah masuk di Pembayaran Tagihan', 'error')
        return route_list(request)
    if row.amount:
        request.session.flash('Data tidak bisa dihapus, karena memiliki data items', 'error')
        return route_list(request)
        
    form = Form(colander.Schema(), buttons=('hapus','cancel'))
    values= {}
    if request.POST:
        if 'hapus' in request.POST:
            msg = '%s dengan kode %s telah berhasil.' % (request.title, row.kode)
            DBSession.query(APInvoice).filter(APInvoice.id==request.matchdict['id']).delete()
            DBSession.flush()
            request.session.flash(msg)
        return route_list(request)
    return dict(row=row, form=form.render())
Exemple #19
0
def view_delete(request):
    q = query_id(request)
    row = q.first()
    if not row:
        return id_not_found(request)
    # Cek posting
    #if row.disabled:
    #    request.session.flash('Data tidak dapat dihapus karena sudah Posting', 'error')
    #    return route_list(request)

    ses = request.session
    ## variabel ag_step_id
    ag_step_id = ses['ag_step_id']        
            
    if row.disabled == 1 and row.approval==4:
        request.session.flash('Data tidak dapat dihapus karena sudah Posting', 'error')
        return route_list1(request,row.id)
    if row.approval==3:
        request.session.flash('Data tidak dapat dihapus karena sudah di Approval oleh Dispenda', 'error')
        return route_list1(request,row.id)
    if row.approval==2:
        request.session.flash('Data tidak dapat dihapus karena sudah di Approval oleh Bappeda', 'error')
        return route_list1(request,row.id)
    
    form = Form(colander.Schema(), buttons=('hapus','cancel'))
    values= {}
    if request.POST:
        if 'hapus' in request.POST:
            msg = '%s Kode %s  No. %s %s sudah dihapus.' % (request.title, row.kode, row.no_urut, row.nama)
            DBSession.query(KegiatanSub).filter(KegiatanSub.id==request.matchdict['id']).delete()
            DBSession.flush()
            request.session.flash(msg)
        return route_list(request)
    return dict(row=row,
                 form=form.render())
Exemple #20
0
def view_delete(request):
    q = query_id(request)
    row = q.first()
    
    if not row:
        return {'success':False, "msg":self.id_not_found()}

    msg = 'Data sudah dihapus'
    query_id(request).delete()
    DBSession.flush()

    nominal = "%s" % Advist.get_nilai(row.ap_advist_id)
    
    # untuk kondisi hapus langsung nominal ke Advist
    if nominal == 'None':
        nominal = 0
    
    rows = DBSession.query(Advist).filter(Advist.id==row.ap_advist_id).first()
    rows.nominal= nominal  
    DBSession.add(rows)
    DBSession.flush()
        
    #Untuk update status disabled pada SP2D
    row = DBSession.query(Sp2d).filter(Sp2d.id==row.ap_sp2d_id).first()   
    row.status_advist=0
    save_request2(row)
    
    return {'success':True, "msg":msg, 'jml_total':nominal}
    
Exemple #21
0
 def view_filing(self):
     req = self.request
     ses = req.session
     form = self.get_form(AddSchema)
     page = {}
     rowpage = 1
     cpage = 'page' in req.POST and req.POST['page'] or 1
     if cpage<1:
        cpage = 1
     page['current']=int(cpage)
     offset = (page['current']-1) * rowpage
     if 'data' in req.POST:
         page['row'] = DBSession.query(func.count(Filing.id)).\
                       filter(or_(Filing.tag.like('%%%s%%' % req.POST['data']),
                          Filing.nama.like('%%%s%%' % req.POST['data'])),).scalar() or 0
                          
         rows = DBSession.query(Filing).\
               filter(or_(Filing.tag.like('%%%s%%' % req.POST['data']),
                          Filing.nama.like('%%%s%%' % req.POST['data'])),).\
                          limit(rowpage).offset(offset)
     else:
         rows = DBSession.query(Filing).\
                 limit(rowpage).offset(offset)
         page['row'] = DBSession.query(func.count(Filing.id)).scalar() or 0
                 
     count = page['row'] / int(rowpage)
     page['count'] = count
     if count < page['row']/float(rowpage):
         page['count']=count+1
                 
     return dict(form=form, rows=rows, page=page)
       
Exemple #22
0
def set_invoice(request, data):
    resp = auth_from_rpc(request)
    if resp['code'] != 0:
        return resp
    unit_id = 0
    unit_kd = ""
    rekening_id = 0
    rekening_kd = ""
    try:
        for row in data:
            if row['unit_kd']!=unit_kd:
                unit_id = DBSession.query(Unit.id).filter_by(
                                    kode  = row['unit_kd']).scalar()
                unit_kd = unit_id and row['unit_kd']
                
            if row['rekening_kd']!=rekening_kd:
                rekening_id = DBSession.query(Rekening.id).filter_by(
                            kode  = row['rekening_kd']).scalar()
                rekening_kd = rekening_id and row['rekening_kd']
                    
            invoice = DBSession.query(ARInvoiceTransaksi).filter_by(
                            kode     = row['rekening_kd'],
                            tahun    = row['tahun'],
                            ref_kode = row['ref_kode']
                            ).first()
            if not invoice:
                invoice = ARInvoiceTransaksi()
                invoice.created = datetime.now()
                invoice.create_uid = 1
                
            invoice.kode         = row['rekening_kd']        
            invoice.nama         = row['nama']        
            invoice.tahun        = row['tahun']       
            invoice.amount       = row['amount']             
            invoice.ref_kode     = row['ref_kode']    
            invoice.ref_nama     = row['ref_nama']    
            invoice.tanggal      = row['tanggal']               
            invoice.kecamatan_kd = row['kecamatan_kd']          
            invoice.kecamatan_nm = row['kecamatan_nm']          
            invoice.kelurahan_kd = row['kelurahan_kd']          
            invoice.kelurahan_nm = row['kelurahan_nm']          
            invoice.is_kota      = row['is_kota']               
            invoice.sumber_data  = row['sumber_data']           
            invoice.sumber_id    = row['sumber_id']             
            invoice.unit_id      = unit_id             
            invoice.rekening_id  = rekening_id             
            #invoice.notes        = row['notes']             
            DBSession.add(invoice)
            DBSession.flush()
    except Exception e:
        print str(e)
        DBSession.rollback()
        return dict(code=CODE_DATA_INVALID, message='Data Invalid')
        
    try:
        DBSession.commit()
    except Exception e:
        print str(e)
    return dict(code=CODE_OK, message='Data Submitted')
Exemple #23
0
def view_edit_unposting(request):
    row = query_id(request).first()
    
    if not row:
        return id_not_found(request)
    if not row.posted1:
        request.session.flash('Data tidak dapat di Unposting jurnal, karena belum diposting jurnal PPKD.', 'error')
        return route_list(request)
    if row.disabled:
        request.session.flash('Data jurnal STS sudah diposting.', 'error')
        return route_list(request)
        
    form = Form(colander.Schema(), buttons=('un-jurnal','cancel'))
    
    if request.POST:
        if 'un-jurnal' in request.POST: 
        
            #Update status posted pada STS
            row.posted1=0
            save_request3(request, row)
            
            kode = row.kode
            ji   = row.jenis
            j    = '%s' % ji
            
            if j=='1':
                s='BP'
                x='STS-%s' % s
            if j=='2':
                s='P'
                x='STS-%s' % s
            if j=='3':
                s='NP'
                x='STS-%s' % s
            if j=='4':
                s='CP'
                x='STS-%s' % s
            if j=='5':
                s='L'
                x='STS-%s' % s
                
            r = DBSession.query(AkJurnal.id.label('di')).filter(AkJurnal.source_no==kode,AkJurnal.source==x,AkJurnal.is_skpd==0).all()
            for row in r:
                #Menghapus Item Jurnal
                DBSession.query(AkJurnalItem).filter(AkJurnalItem.ak_jurnal_id==row.di).delete()
                DBSession.flush()
            
            #Menghapus STS yang sudah menjadi jurnal
            DBSession.query(AkJurnal).filter(AkJurnal.source_no==kode, AkJurnal.source==x,AkJurnal.is_skpd==0).delete()
            DBSession.flush()
            
        return route_list(request)
    return dict(row=row, form=form.render()) 
    
Exemple #24
0
def view_add(request):
    req = request
    ses = req.session
    params = req.params
    url_dict = req.matchdict
    ap_spd_id = 'ap_spd_id' in url_dict and url_dict['ap_spd_id'] or 0
    controls = dict(req.POST.items())
      
    ap_spd_item_id = 'ap_spd_item_id' in controls and controls['ap_spd_item_id'] or 0        
    #Cek dulu ada penyusup gak dengan mengecek sessionnya
    ap_spd = DBSession.query(Spd)\
                  .filter(#Spd.unit_id==ses['unit_id'],
                          Spd.id==ap_spd_id).first()
    if not ap_spd:
        return {"success": False, 'msg':'SPD tidak ditemukan'}
    
    #Cek lagi ditakutkan skpd ada yang iseng inject script
    
    if ap_spd_item_id:
        row = DBSession.query(SpdItem)\
                  .join(Spd)\
                  .filter(SpdItem.id==ap_spd_item_id,
                          #Spd.unit_id==ses['unit_id'],
                          SpdItem.ap_spd_id==ap_spd_id).first()
        if not row:
            return {"success": False, 'msg':'Invoice tidak ditemukan'}
    else:
        row = SpdItem()

    row.ap_spd_id       = ap_spd_id
    row.kegiatan_sub_id = controls['kegiatan_sub_id']
    row.anggaran = controls['anggaran'].replace('.','')
    row.lalu     = controls['lalu'].replace('.','')
    row.nominal  = controls['nominal'].replace('.','')

    DBSession.add(row)
    DBSession.flush()
    
    r = DBSession.query(SpdItem)\
                   .join(KegiatanSub)\
                   .outerjoin(Kegiatan)\
                   .filter(SpdItem.kegiatan_sub_id==controls['kegiatan_sub_id'],
                           SpdItem.kegiatan_sub_id==KegiatanSub.id,
                           KegiatanSub.kegiatan_id==Kegiatan.id,
                           Kegiatan.kode=='0.00.00.21')\
                   .first()   
    if r:
        bl  = "%s" % Spd.get_nilai1(row.ap_spd_id) 
        btl = "%s" % Spd.get_nilai2(row.ap_spd_id) 
    else:
        bl  = "%s" % Spd.get_nilai1(row.ap_spd_id) 
        btl = "%s" % Spd.get_nilai2(row.ap_spd_id) 
        
    return {"success": True, 'id': row.id, "msg":'Success Tambah SPD', 'jml_total1':bl, 'jml_total2':btl}
Exemple #25
0
    def gaji_fungsi_urusan_act(self):
        ses = self.request.session
        req = self.request
        params   = req.params
        url_dict = req.matchdict
        
        if url_dict['act']=='grid':
            columns = []
            columns.append(ColumnDT('id'))
            columns.append(ColumnDT('fnama'))
            columns.append(ColumnDT('unama'))
            columns.append(ColumnDT('nama'))
            
            query = DBSession.query(FungsiUrusan.id,
                                    Fungsi.nama.label('fnama'),
                                    Urusan.nama.label('unama'),
                                    FungsiUrusan.nama,
                            ).filter(FungsiUrusan.fungsi_id==Fungsi.id,
                                     FungsiUrusan.urusan_id==Urusan.id,
                            )
            
            rowTable = DataTables(req, FungsiUrusan, query, columns)
            return rowTable.output_result()

        elif url_dict['act']=='grid1':
            cari = 'cari' in params and params['cari'] or ''
            columns = []
            columns.append(ColumnDT('id'))
            columns.append(ColumnDT('fnama'))
            columns.append(ColumnDT('unama'))
            columns.append(ColumnDT('nama'))
            
            query = DBSession.query(FungsiUrusan.id,
                                    Fungsi.nama.label('fnama'),
                                    Urusan.nama.label('unama'),
                                    FungsiUrusan.nama,
                            ).filter(FungsiUrusan.fungsi_id==Fungsi.id,
                                     FungsiUrusan.urusan_id==Urusan.id,
                                     or_(Fungsi.nama.ilike('%%%s%%' % cari),
                                         Urusan.nama.ilike('%%%s%%' % cari),
                                         FungsiUrusan.nama.ilike('%%%s%%' % cari))
                            )
            
            rowTable = DataTables(req, FungsiUrusan, query, columns)
            return rowTable.output_result()
            
        elif url_dict['act']=='changeid':
            row = FungsiUrusan.get_by_id('fungsi_urusan_id' in params and params['fungsi_urusan_id'] or 0)
            if row:
                ses['fungsi_urusan_id']=row.id
                ses['fungsi_urusan_kd']=row.kode
                ses['fungsi_urusan_nm']=row.nama
                return {'success':True}
Exemple #26
0
 def view_app(self):
     tahun = self.session['tahun']
     datas = DBSession.query(Slide).filter(Slide.disabled==0).order_by(Slide.order_id) or {}
         
     tab_datas = DBSession.query(Slide).filter(Slide.source_type=='grid').order_by(Slide.order_id) or {}
     line_datas = DBSession.query(Slide).filter(Slide.source_type=='chart-line').order_by(Slide.order_id)or {}
     bar_datas = DBSession.query(Slide).filter(Slide.source_type=='chart-bar').order_by(Slide.order_id)or {}
     pie_datas = DBSession.query(Slide).filter(Slide.source_type=='chart-pie').order_by(Slide.order_id)or {}
         
     return dict(project='EIS', datas=datas, tab_datas=tab_datas,
                 line_datas=line_datas, bar_datas=bar_datas,
                 pie_datas=pie_datas, )#, datas=Eis.sum_order_id('2014'))
Exemple #27
0
    def view_ak_jurnal_edit(self):
        request = self.request
        row = self.query_id().first()
        uid     = row.id
        kode    = row.kode
        
        if not row:
            return id_not_found(request)
        if row.posted:
            request.session.flash('Data sudah diposting', 'error')
            return self.route_list()

        rowd={}
        rowd['id']            = row.id
        rowd['unit_id']       = row.unit_id
        rowd['unit_nm']       = row.units.nama
        rowd['unit_kd']       = row.units.kode
        rowd['kode']          = row.kode
        rowd['nama']          = row.nama
        rowd['source_no']     = row.source_no
        rowd['source']        = row.source
        rowd['tgl_source']    = row.tgl_source
        rowd['tanggal']       = row.tanggal
        rowd['jv_type']       = row.jv_type
        rowd['disabled']      = row.disabled
        rowd['notes']         = row.notes
        rowd['is_skpd']       = row.is_skpd
        
        form = self.get_form(EditSchema)
        form.set_appstruct(rowd)
        if request.POST:
            if 'simpan' in request.POST:
                controls = request.POST.items()
                print controls

                #Cek Kode Sama ato tidak
                a = form.validate(controls)
                b = a['kode']
                c = "%s" % b
                cek = DBSession.query(Jurnal).filter(Jurnal.kode==c).first()
                if cek:
                    kode1 = DBSession.query(Jurnal).filter(Jurnal.id==uid).first()
                    d     = kode1.kode
                    if d!=c:
                        self.request.session.flash('Kode Jurnal sudah ada', 'error')
                        return HTTPFound(location=request.route_url('ak-jurnal-edit',id=row.id))

                try:
                    c = form.validate(controls)
                except ValidationFailure, e:
                    return dict(form=form)
                self.save_request(dict(controls),row)
            return self.route_list()
Exemple #28
0
    def aset_kiba_act(self):
        ses      = self.request.session
        req      = self.request
        params   = req.params
        url_dict = req.matchdict

        pk_id = 'id' in params and int(params['id']) or 0
        if url_dict['act']=='grid':
            # defining columns
            columns = []
            columns.append(ColumnDT('id'))
            columns.append(ColumnDT('units.kode'))
            columns.append(ColumnDT('kats.kode'))
            columns.append(ColumnDT('no_register'))
            columns.append(ColumnDT('uraian'))
            columns.append(ColumnDT('tahun'))
            columns.append(ColumnDT('th_beli'))
            columns.append(ColumnDT('harga'))
            columns.append(ColumnDT('kondisi'))
            
            query = DBSession.query(AsetKib).\
                    join(AsetKategori).\
                    filter(AsetKib.unit_id == ses['unit_id'], 
                           AsetKib.kategori_id==AsetKategori.id,
                           AsetKib.kib=='A')
            rowTable = DataTables(req, AsetKib, query, columns)
            return rowTable.output_result()
         
        elif url_dict['act']=='headofkode':
            term   = 'term' in params and params['term'] or '' 
            q = DBSession.query(AsetKib.id,
                                AsetKategori.kode,
                                AsetKib.no_register,
                                AsetKib.uraian,
                                AsetKib.tgl_perolehan).\
                    join(AsetKategori).\
                    filter(AsetKib.unit_id == ses['unit_id'], 
                           AsetKib.kategori_id == AsetKategori.id,
                           or_(AsetKategori.kode.ilike('%%%s%%' % term),
                               AsetKib.uraian.ilike('%%%s%%' % term))).\
                    order_by(AsetKib.no_register)
            rows = q.all()
            r = []
            for k in rows:
                d={}
                d['id']          = k[0]
                d['value']       = ''.join([k[1],'-',str(k[2]),'-',str(k[3])])
                d['kode']        = ''.join([k[1],'-',str(k[2]),'-',str(k[3])])
                d['uraian']      = k[3]
                d['tanggal']     = "%s" % k[4]
                r.append(d)    
            return r
Exemple #29
0
 def view_ak_jurnal_ppkd_delete(self):
     request = self.request
     q       = self.query_id()
     row     = q.first()
     kode    = row.source_no
     
     if not row:
         return self.id_not_found(request)
     
     i = DBSession.query(AkJurnalItem).filter(AkJurnalItem.ak_jurnal_id==row.id).first()         
     if i:
         request.session.flash('Hapus data item dahulu', 'error')
         return self.route_list()
     
     form = Form(colander.Schema(), buttons=('hapus','batal'))
     if request.POST:
         if 'hapus' in request.POST:
             
             #Untuk hapus jurnal 
             msg = '%s dengan kode %s telah berhasil.' % (request.title, row.kode)
             q.delete()
             DBSession.flush()
             request.session.flash(msg)  
             
             #Untuk update status disabled dan posted SP2D    
             row = DBSession.query(Sp2d).filter(Sp2d.kode==kode).first()
             if not row:
                 #Untuk update status disabled dan posted PIUTANG
                 row = DBSession.query(ARInvoice).filter(ARInvoice.kode==kode).first()
                 if not row:  
                     #Untuk update status disabled dan posted STS
                     row = DBSession.query(Sts).filter(Sts.kode==kode).first()
                     if not row:
                         #Untuk update status disabled dan posted Tagihan
                         row = DBSession.query(APInvoice).filter(APInvoice.kode==kode).first()
                         if not row:
                             return self.route_list()
                         row.disabled=0
                         row.posted=0
                         self.save_request7(row)
                     row.disabled=0
                     row.posted1=0
                     self.save_request6(row)
                 row.disabled=0
                 row.posted=0
                 self.save_request5(row)
             row.disabled=0
             row.posted1=0
             self.save_request4(row)
             
         return self.route_list()
     return dict(row=row, form=form.render())
Exemple #30
0
def view_add(request):
    req = request
    ses = req.session
    params   = req.params
    url_dict = req.matchdict
    ar_invoice_id = 'ar_invoice_id' in url_dict and url_dict['ar_invoice_id'] or 0
    controls = dict(request.POST.items())
    
    ar_invoice_item_id = 'ar_invoice_item_id' in controls and controls['ar_invoice_item_id'] or 0
    #Cek dulu ada penyusup gak dengan mengecek sessionnya
    ar_invoice = DBSession.query(ARInvoice)\
                  .filter(ARInvoice.unit_id==ses['unit_id'],
                          ARInvoice.id==ar_invoice_id).first()
    if not ar_invoice:
        return {"success": False, 'msg':'Invoice tidak ditemukan'}
    
    if ar_invoice_item_id:
        #Cek lagi ditakutkan skpd ada yang iseng inject script
        row = DBSession.query(ARInvoiceItem)\
                  .join(ARInvoice)\
                  .filter(ARInvoiceItem.id==ar_invoice_item_id,
                          ARInvoice.unit_id==ses['unit_id'],
                          ARInvoiceItem.ar_invoice_id==ar_invoice_id).first()
        if not row:
            return {"success": False, 'msg':'Invoice tidak ditemukan'}
    else:
        row = ARInvoiceItem()
            
    row.ar_invoice_id    = ar_invoice_id
    row.kegiatan_item_id = controls['kegiatan_item_id']
    if not controls['no_urut'] or controls['no_urut'].split()=='':
        controls['no_urut'] = ARInvoiceItem.max_no_urut(ar_invoice_id)+1
    row.no_urut          = controls['no_urut']
    row.nama             = controls['nama']
    row.vol_1            = controls['vol_1'].replace('.','')
    row.vol_2            = controls['vol_2'].replace('.','')
    row.harga            = controls['harga'].replace('.','')
    row.nilai            = float(controls['vol_1'].replace('.',''))*float(controls['vol_2'].replace('.',''))*float(controls['harga'].replace('.',''))
    
    DBSession.add(row)
    DBSession.flush()
    nilai = "%d" % ARInvoice.get_nilai(row.ar_invoice_id) 
    
    # untuk kondisi simpan langsung nilai ke ARInvoice
    if nilai:
        rows = DBSession.query(ARInvoice).filter(ARInvoice.id==ar_invoice_id).first()
        rows.nilai= nilai  
        DBSession.add(rows)
        DBSession.flush()
    
    return {"success": True, 'id': row.id, "msg":'Success Tambah Item Invoice', 'jml_total':nilai}