def save(request, values, row=None):
    if not row:
        row = APInvoice()
    row.from_dict(values)
    
    if not row.no_urut:
        row.no_urut = APInvoice.max_no_urut(row.tahun_id,row.unit_id)+1;
    
    if not row.kode:
        tahun    = request.session['tahun']
        unit_kd  = request.session['unit_kd']
        no_urut  = row.no_urut
        no       = "0000%d" % no_urut
        nomor    = no[-5:]     
        row.kode = "%d" % tahun + "-%s" % unit_kd + "-%s" % nomor
        
    j='3'
    j1 = row.jenis
    if j1 != j:
        row.no_bku  = None
        row.tgl_bku = None        
    
    DBSession.add(row)
    DBSession.flush()
    return row
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)
    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 #4
0
def save(values, request, user, row=None):
    if not row:
        row = KegiatanAsistensi()
        row.created = datetime.now()
        row.create_uid = user.id
        
    # isikan user update dan tanggal update
    row.updated = datetime.now()
    row.update_uid = user.id
        
    ag_step_id = request.session['ag_step_id']
    
    if not values['catatan_1']: 
        values['catatan_1']='-'
    if not values['catatan_2']: 
        values['catatan_2']='-'
    if not values['catatan_3']: 
        values['catatan_3']='-'
    if not values['catatan_4']: 
        values['catatan_4']='-'
        
    
        
    row.from_dict(values)
    
    DBSession.add(row)
    DBSession.flush()
    return row
Exemple #5
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 #6
0
    def save(self, values, row=None):
        if not row:
            row = Sp2d()
            row.created = datetime.now()
            row.create_uid = self.request.user.id
        row.from_dict(values)
        row.updated = datetime.now()
        row.update_uid = self.request.user.id
        row.posted        = 0
        row.disabled      = 'disabled' in values and 1 or 0  
        row.status_giro   = 0  
        row.status_advist = 0  

        if not row.kode:
            tahun    = self.session['tahun']
            unit_kd  = self.session['unit_kd']
            unit_id  = self.session['unit_id']
            no_urut  = Sp2d.get_norut(tahun, unit_id)+1
            no       = "0000%d" % no_urut
            nomor    = no[-5:]
            row.kode = "%d" % tahun + "-%s" % unit_kd + "-%s" % nomor
            
        DBSession.add(row)
        DBSession.flush()
        
        #Untuk update status disabled pada SPM
        row1 = DBSession.query(Spm).filter(Spm.id==row.ap_spm_id).first()   
        row1.disabled=1
        self.save_request3(row1)
                
        return row
Exemple #7
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 #8
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 #9
0
    def save(self, values, row=None):
        if not row:
            row = Giro()
            row.created = datetime.now()
            row.create_uid = self.request.user.id
        row.from_dict(values)
        row.updated = datetime.now()
        row.update_uid = self.request.user.id
        row.posted=0
        row.disabled = 'disabled' in values and 1 or 0     

        if not row.no_urut:
            row.no_urut = Giro.max_no_urut(row.tahun_id)+1;
            
        if not row.kode:
            tahun    = self.session['tahun']
            #unit_kd  = self.session['unit_kd']
            #unit_id  = self.session['unit_id']
            #no_urut  = Giro.get_norut(tahun, unit_id)+1
            no_urut  = row.no_urut
            no       = "00000%d" % no_urut
            nomor    = no[-6:]
            row.kode = "%s" % nomor + "-BUD-%d" % tahun
            
            #no_urut  = row.no_urut
            #no       = "00000%d" % no_urut
            #nomor    = no[-5:]
            #row.kode = "%d" % tahun + "-%s" % unit_kd + "-BUD-%s" % nomor
            
        DBSession.add(row)
        DBSession.flush()
        return row
Exemple #10
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 #11
0
def save(values, request, row=None):
    if not row:
        row = KegiatanItem()
    ag_step_id = request.session['ag_step_id']
    if ag_step_id<2:
        values['vol_2_1'] = values['vol_%s_1' % ag_step_id] 
        values['vol_2_2'] = values['vol_%s_2' % ag_step_id] 
        values['sat_2_1'] = values['sat_%s_1' % ag_step_id] 
        values['sat_2_2'] = values['sat_%s_2' % ag_step_id] 
        values['hsat_2'] = values['hsat_%s' % ag_step_id] 
    if ag_step_id<4:
        values['vol_3_1'] = values['vol_%s_1' % ag_step_id] 
        values['vol_3_2'] = values['vol_%s_2' % ag_step_id] 
        values['sat_3_1'] = values['sat_%s_1' % ag_step_id] 
        values['sat_3_2'] = values['sat_%s_2' % ag_step_id] 
        values['hsat_3'] = values['hsat_%s' % ag_step_id] 
    if ag_step_id<5:
        values['vol_4_1'] = values['vol_%s_1' % ag_step_id] 
        values['vol_4_2'] = values['vol_%s_2' % ag_step_id] 
        values['sat_4_1'] = values['sat_%s_1' % ag_step_id] 
        values['sat_4_2'] = values['sat_%s_2' % ag_step_id] 
        values['hsat_4'] = values['hsat_%s' % ag_step_id] 
        
    row.from_dict(values)
    if not row.no_urut:
          row.no_urut = KegiatanItem.max_no_urut(values['kegiatan_sub_id'],values['rekening_id'])+1;

    DBSession.add(row)
    DBSession.flush()
    return row
Exemple #12
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 #13
0
def import_data(adata):
    for i in range(len(adata)):
        if i>0:
            j = adata[i]
            row = query_gaji_pegawai(j[0],j[1],j[2])
            id = row.id
            if row:
                potongan = query_gaji_potongan(id)
                potongan_dict = potongan.to_dict()
                if len(j)==10: #Pembantu Bendahara
                    for k in range(6):
                        xfield=str(k+7).zfill(2)
                        print xfield
                        potongan_dict['amount_%s' % xfield]= int(float(j[k+4]))
                        
                elif len(j)==9: #Bendahara
                    for k in range(5):
                        xfield=str(k+2).zfill(2)
                        potongan_dict['amount_%s' % xfield]= int(float(j[k+4]))

                elif len(j)==5 or len(j)==6: #Bank
                        potongan_dict['amount_01'] = int(float(j[4]))
            
            for k in range(11): 
                if (row.gaji_bersih-sum_of_potongan(potongan_dict))<15000:
                   xfield = str(12 - k).zfill(2)
                   potongan_dict['amount_%s' % xfield] = 0
            potongan.from_dict(potongan_dict)
            DBSession.add(potongan)
            DBSession.flush()
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', '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 #15
0
 def save(self, values, user, row=None):
     if not row:
         row = ARPaymentItem()
         row.created    = datetime.now()
         row.create_uid = user.id
     row.from_dict(values)
     row.updated    = datetime.now()
     row.update_uid = user.id
     tanggal     = datetime.strptime(values['tanggal'], '%Y-%m-%d')
     row.tahun   = tanggal.year
     row.bulan   = tanggal.month
     row.hari    = tanggal.day
     row.minggu  = tanggal.isocalendar()[1]
     row.disabled = 'disabled' in values and values['disabled'] and 1 or 0
     row.is_kota  = 'is_kota'  in values and values['is_kota']  and 1 or 0
     row.posted1  = 'posted1'  in values and values['posted1']  and 1 or 0
     
     tahun    = self.session['tahun']
     unit_id  = self.session['unit_id']
     if not row.no_urut:
         row.no_urut = ARPaymentItem.max_no_urut(tahun,unit_id)+1;
         
     if not row.ref_kode:
         tahun        = self.session['tahun']
         unit_kd      = self.session['unit_kd']
         unit_id      = self.session['unit_id']
         #no_urut      = ARPaymentItem.get_norut(tahun, unit_id)+1
         no_urut      = row.no_urut
         no           = "0000%d" % no_urut
         nomor        = no[-5:]
         row.ref_kode = "%d" % tahun + "-%s" % unit_kd + "-%s" % nomor
     
     DBSession.add(row)
     DBSession.flush()
     return row
Exemple #16
0
 def view_ar_payment_item_delete(self):
     request = self.request
     q       = self.query_id()
     row     = q.first()
     
     if not row:
         return self.id_not_found(request)
     if row.posted:
         request.session.flash('Data sudah diposting', 'error')
         return self.route_list()
     if row.posted1:
         request.session.flash('Data sudah diposting rekap', 'error')
         return self.route_list()
         
     form = Form(colander.Schema(), buttons=('hapus','batal'))
     if request.POST:
         if 'hapus' in request.POST:
             msg = 'TBP ID %d %s sudah dihapus.' % (row.id, row.ref_nama)
             try:
               q.delete()
               DBSession.flush()
             except:
               msg = 'TBP ID %d %s tidak dapat dihapus.' % (row.id, row.ref_nama)
             request.session.flash(msg)
         return self.route_list()
     return dict(row=row, form=form.render())
Exemple #17
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 #18
0
 def save(self, values, user, row=None):
     if not row:
         row = Jurnal()
         row.created    = datetime.now()
         row.create_uid = user.id
     row.from_dict(values)
     tanggal           = datetime.strptime(values['tanggal'], '%Y-%m-%d')
     row.tahun_id      = tanggal.year
     row.periode       = tanggal.month
     row.updated       = datetime.now()
     row.update_uid    = user.id
     row.disabled      = 'disabled' in values and values['disabled'] and 1 or 0
     row.posted        = 'posted'  in values and values['posted']  and 1 or 0
     row.tgl_transaksi = datetime.now()
     
     if not row.kode:
         tahun    = self.session['tahun']
         unit_kd  = self.session['unit_kd']
         is_skpd  = row.is_skpd
         jv_type  = row.jv_type
         tipe     = Jurnal.get_tipe(jv_type)
         no_urut  = Jurnal.get_norut(row.tahun_id,row.unit_id)+1
         no       = "0000%d" % no_urut
         nomor    = no[-5:]     
         row.kode = "%d" % tahun + "-%s" % is_skpd + "-%s" % unit_kd + "-%s" % tipe + "-%s" % nomor
     
     DBSession.add(row)
     DBSession.flush()
     return row
Exemple #19
0
def view_delete(request):
    q   = query_id(request)
    row = q.first()
    
    if not row:
        return self.id_not_found()
        
    query_id(request).delete()
    DBSession.flush()
    
    r = DBSession.query(SpdItem)\
                   .join(KegiatanSub)\
                   .outerjoin(Kegiatan)\
                   .filter(SpdItem.kegiatan_sub_id==row.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, 'msg':'Sukses Hapus Data', 'jml_total1':bl, 'jml_total2':btl}
Exemple #20
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 #21
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 #22
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 #23
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 #24
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 #25
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 #26
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 #27
0
 def save(self, values, user, row=None):
     if not row:
         row = FungsiUrusan()
     row.from_dict(values)
  
     DBSession.add(row)
     DBSession.flush()
     return row
Exemple #28
0
def save(values, user, row=None):
    if not row:
        row = UserGroup()
    row.from_dict(values)
    DBSession.add(row)
    query_group_member(values)
    DBSession.flush()
    return row
Exemple #29
0
 def save(self, values, user, row=None):
     if not row:
         row = RekeningSap()
     row.from_dict(values)
     
     DBSession.add(row)
     DBSession.flush()
     return row
Exemple #30
0
def save(values, row=None):
    if not row:
        row = KegiatanSub()
    row.from_dict(values)
    if not row.no_urut:
          row.no_urut = KegiatanSub.max_no_urut(row.tahun_id,row.unit_id,row.kegiatan_id)+1;
    DBSession.add(row)
    DBSession.flush()
    return row