Exemple #1
0
 def save(self, values, user, row=None):
     if not row:
         row = Slide()
         row.created = datetime.now()
         row.create_uid = user.id
     row.from_dict(values)
     row.updated = datetime.now()
     row.update_uid = user.id
     row.is_aktif = 'is_aktif' in values and values['is_aktif'] and 1 or 0
     row.disabled = 'disabled' in values and values['disabled'] and 1 or 0
     DBSession.add(row)
     DBSession.flush()
     if 'is_aktif' in values and values['is_aktif']:
         stmt = update(Slide).where(Slide.id!=row.id).\
                values(is_aktif=0)
         DBSession.execute(stmt)
         DBSession.flush()
      
     return row
Exemple #2
0
    def gaji_unit_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('disabled'))
            
            groups = groupfinder(req.user, req)
            ids = []
            if req.user.id==1 or 'group:admin' in groups:
                query = UnitModel.query() #DBSession.query(UnitModel)
            else:
                units = DBSession.query(UserUnitModel.unit_id, 
                             UserUnitModel.sub_unit, UnitModel.kode
                             ).join(UnitModel).filter(UnitModel.id==UserUnitModel.unit_id,
                                    UserUnitModel.user_id==req.user.id).all() 

                for unit in units:
                    if unit.sub_unit:
                        rows = DBSession.query(UnitModel.id).filter(UnitModel.kode.ilike('%s%%' % unit.kode)).all()
                    else:
                        rows = DBSession.query(UnitModel.id).filter(UnitModel.kode==unit.kode).all()
                    for i in range(len(rows)):
                        ids.append(rows[i])
                query = DBSession.query(UnitModel).filter((UnitModel.id).in_(ids))
            rowTable = DataTables(req, UnitModel, query, columns)
            return rowTable.output_result()
            
        elif url_dict['act']=='changeid':
            ids  = UserUnitModel.unit_granted(req.user.id, params['unit_id'])
            if req.user.id>1 and 'g:admin' not in groupfinder(req.user, req)\
                    and not ids:
                return {'success':False, 'msg':'Anda tidak boleh mengubah ke unit yang bukan hak akses anda'}

            row = UnitModel.get_by_id('unit_id' in params and params['unit_id'] or 0)
            if row:
                ses['unit_id']=row.id
                ses['unit_kd']=row.kode
                ses['unit_nm']=row.nama
                return {'success':True, 'msg':'Sukses ubah SKPD'}
                
        elif url_dict['act']=='headofnama':
            term = 'term' in params and params['term'] or '' 
            rows = DBSession.query(UnitModel.id, UnitModel.kode, UnitModel.nama
                      ).filter(
                      UnitModel.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']=='headofkode':
            term = 'term' in params and params['term'] or '' 
            rows = DBSession.query(UnitModel.id, UnitModel.kode, UnitModel.nama
                      ).filter(
                      UnitModel.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']=='import':
            rows = DBSession.execute("""SELECT a.kode, a.nama, a.passwd, b.unit_id 
                                        FROM admin.users2 a
                                        INNER JOIN admin.user_units2 b
                                        ON a.id = b.id""").all()
            for kode,nama,passwd, unit_id in rows:
                user = Users()
                user.user_name = nama
                user.user_password = passwd
                user.email = ''.join([nama,'@tangerangkab.org'])
                user.status = 1
                DBSession.add(user)
                DBSession.flush()
                if user.id:
                    user_unit=UserUnitModel()
                    user_unit.user_id = user.id
                    user_unit.unit_id = unit_id
                    user_unit.status  = 1
                    DBSession.add(user_unit)
                    DBSession.flush()
Exemple #3
0
    def gaji_unit_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('alamat'))
            columns.append(ColumnDT('disabled'))
            
            groups = groupfinder(req.user, req)
            ids = []
            if req.user.id==1 or 'group:admin' in groups:
                query = Unit.query() #DBSession.query(Unit)
            else:
                units = DBSession.query(UserUnit.unit_id, 
                             UserUnit.sub_unit, Unit.kode
                             ).join(Unit).filter(Unit.id==UserUnit.unit_id,
                                    UserUnit.user_id==req.user.id).all() 

                for unit in units:
                    if unit.sub_unit:
                        rows = DBSession.query(Unit.id).filter(Unit.kode.ilike('%s%%' % unit.kode)).all()
                    else:
                        rows = DBSession.query(Unit.id).filter(Unit.kode==unit.kode).all()
                    for i in range(len(rows)):
                        ids.append(rows[i])
                query = DBSession.query(Unit).filter((Unit.id).in_(ids))
            rowTable = DataTables(req, Unit, query, columns)
            return rowTable.output_result()
            
        elif url_dict['act']=='changeid':
            ids  = UserUnit.unit_granted(req.user.id, params['unit_id'])
            
            ## kondisi group TAPD (semua unit)
            if req.user.id>1 and 'g:admin' not in groupfinder(req.user, req) and not ids :
               grp = DBSession.query(func.lower(Group.group_name).label('group_nama'), 
                 func.substr(func.lower(Group.group_name),func.length(Group.group_name)-5,6).label('group_singkat')
                 ).filter(UserGroup.user_id==req.user.id, Group.id==UserGroup.group_id).first()
               grps_nm = '%s' % grp.group_nama 
               grps    = '%s' % grp.group_singkat
            
            ## Pembatasan unit all
            if req.user.id>1 and 'g:admin' not in groupfinder(req.user, req)\
                    and not ids and grps !='(tapd)' and grps_nm !='admin bpkad'  and grps_nm !='akuntansi'\
                    and  grps_nm !='perbendaharaan blbtl' and  grps_nm !='kasda' :
                return {'success':False, 'msg':'Anda tidak boleh mengubah ke unit yang bukan hak akses anda'}

            row = Unit.get_by_id('unit_id' in params and params['unit_id'] or 0)
            if row:
                ses['unit_id']=row.id
                ses['unit_kd']=row.kode
                ses['unit_nm']=row.nama
                return {'success':True, 'msg':'Sukses ubah SKPD'}
                
        elif url_dict['act']=='headofnama':
            term = 'term' in params and params['term'] or '' 
            rows = DBSession.query(Unit.id, Unit.kode, Unit.nama
                      ).filter(
                      Unit.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']=='headofkode':
            term = 'term' in params and params['term'] or '' 
            rows = DBSession.query(Unit.id, Unit.kode, Unit.nama
                      ).filter(
                      Unit.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_asistensi':
            term = 'term' in params and params['term'] or '' 
            rows = DBSession.query(Unit.id, Unit.kode, Unit.nama
                      ).filter(or_(Unit.kode=='1.20.09',
                                   Unit.kode=='1.20.05',
                                   Unit.kode=='1.06.01'),
                               Unit.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)
            print '-------------------Unit-----------------',r
            return r
            
        elif url_dict['act']=='import':
            rows = DBSession.execute("""SELECT a.kode, a.nama, a.passwd, b.unit_id 
                                        FROM admin.users2 a
                                        INNER JOIN admin.user_units2 b
                                        ON a.id = b.id""").all()
            for kode,nama,passwd, unit_id in rows:
                user = Users()
                user.user_name = nama
                user.user_password = passwd
                user.email = ''.join([nama,'@tangerangkab.org'])
                user.status = 1
                DBSession.add(user)
                DBSession.flush()
                if user.id:
                    user_unit=UserUnit()
                    user_unit.user_id = user.id
                    user_unit.unit_id = unit_id
                    user_unit.status  = 1
                    DBSession.add(user_unit)
                    DBSession.flush()