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
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()
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()