diff --git a/__pycache__/app.cpython-36.pyc b/__pycache__/app.cpython-36.pyc deleted file mode 100644 index d31d7560dc777c87b174b232f3f3ddba8cfcacec..0000000000000000000000000000000000000000 Binary files a/__pycache__/app.cpython-36.pyc and /dev/null differ diff --git a/__pycache__/conftest.cpython-36-PYTEST.pyc b/__pycache__/conftest.cpython-36-PYTEST.pyc deleted file mode 100644 index f16c2c0a147fd45a1b320af4c8ca5a0c2e34be3c..0000000000000000000000000000000000000000 Binary files a/__pycache__/conftest.cpython-36-PYTEST.pyc and /dev/null differ diff --git a/__pycache__/setup.cpython-36.pyc b/__pycache__/setup.cpython-36.pyc deleted file mode 100644 index 865a7b67ff720bb1405e0992b68a56e0f43e82a0..0000000000000000000000000000000000000000 Binary files a/__pycache__/setup.cpython-36.pyc and /dev/null differ diff --git a/app.py b/app.py index 3f4e43bf871b0f10b1c0c8ca897761cbadb2ac4d..80753af784f91bfaeef65dfe975d35ba85d01ec5 100644 --- a/app.py +++ b/app.py @@ -17,6 +17,7 @@ app.register_blueprint(login_route) app.register_blueprint(register_route) app.register_blueprint(comment_route) app.register_blueprint(admin_route) +app.register_blueprint(apbd_route) cors = CORS(app) diff --git a/database/database.py b/database/database.py index b65a731cb9e5c983a872892bd0255fae1252e2a3..40c327e0b7851ad440a78193b722b3998397cbed 100644 --- a/database/database.py +++ b/database/database.py @@ -45,6 +45,7 @@ class Rekening(mongo.Document): kode_rekening = mongo.StringField(required=True) nama_rekening = mongo.StringField(required=True) jumlah_rincian = mongo.IntField(required=True) + persentase = mongo.IntField() class Kegiatan(mongo.Document): id_program = mongo.IntField(required=True) @@ -52,6 +53,7 @@ class Kegiatan(mongo.Document): nama_kegiatan = mongo.StringField(required=True) rekening = mongo.ListField(mongo.StringField(), default=[], required=True) jumlah_rincian = mongo.IntField(default = 0) + persentase = mongo.IntField() class Program(mongo.Document): id_skpd = mongo.IntField(required=True) @@ -59,6 +61,7 @@ class Program(mongo.Document): nama_program = mongo.StringField(required=True) kegiatan = mongo.ListField(mongo.IntField(), default=[], required=True) jumlah_rincian = mongo.IntField(default = 0) + persentase = mongo.IntField() class SKPD(mongo.Document): id_urusan = mongo.IntField(required=True) @@ -66,6 +69,7 @@ class SKPD(mongo.Document): nama_skpd = mongo.StringField(required=True) program = mongo.ListField(mongo.IntField(), default=[], required=True) jumlah_rincian = mongo.IntField(default = 0) + persentase = mongo.IntField() class Urusan(mongo.Document): tahun = mongo.IntField(required=True) @@ -73,6 +77,7 @@ class Urusan(mongo.Document): nama_urusan = mongo.StringField(required=True) skpd = mongo.ListField(mongo.IntField(), default=[], required=True) jumlah_rincian = mongo.IntField(default = 0) + persentase = mongo.IntField() if __name__ == "__main__": app = Flask(__name__) diff --git a/migrate/migrate.py b/migrate/migrate.py index e29f04644d976b82371b282c1939366a39f4ec31..40470e2cd4841e877b50a54956060a7251de1b1a 100644 --- a/migrate/migrate.py +++ b/migrate/migrate.py @@ -9,42 +9,44 @@ class Rekening(mongo.Document): id_kegiatan = mongo.IntField(required=True) kode_rekening = mongo.StringField(required=True) nama_rekening = mongo.StringField(required=True) - jumlah_rincian = mongo.IntField(required=True) + jumlah_rincian = mongo.StringField(required=True) class Kegiatan(mongo.Document): id_program = mongo.IntField(required=True) id_kegiatan = mongo.IntField(required=True) nama_kegiatan = mongo.StringField(required=True) rekening = mongo.ListField(mongo.StringField(), default=[], required=True) - jumlah_rincian = mongo.IntField(default = 0) + jumlah_rincian = mongo.StringField(default = '0') class Program(mongo.Document): id_skpd = mongo.IntField(required=True) id_program = mongo.IntField(required=True) nama_program = mongo.StringField(required=True) kegiatan = mongo.ListField(mongo.IntField(), default=[], required=True) - jumlah_rincian = mongo.IntField(default = 0) + jumlah_rincian = mongo.StringField(default = '0') class SKPD(mongo.Document): id_urusan = mongo.IntField(required=True) id_skpd = mongo.IntField(required=True) nama_skpd = mongo.StringField(required=True) program = mongo.ListField(mongo.IntField(), default=[], required=True) - jumlah_rincian = mongo.IntField(default = 0) + jumlah_rincian = mongo.StringField(default = '0') class Urusan(mongo.Document): tahun = mongo.IntField(required=True) id_urusan = mongo.IntField(required=True) nama_urusan = mongo.StringField(required=True) skpd = mongo.ListField(mongo.IntField(), default=[], required=True) - jumlah_rincian = mongo.IntField(default = 0) + jumlah_rincian = mongo.StringField(default = '0') # memasukkan data urusan with open("dummy.csv") as f: reader = csv.reader(f) next(reader) # skip header urusan = { } + count = 0; for row in reader: + count+=1 id_urusan = int(row[3]) nama_urusan = row[5] id_skpd = int(row[6]) @@ -125,30 +127,39 @@ for key in kegiatan.keys(): with open("dummy.csv") as f: reader = csv.reader(f) next(reader) # skip header - rekening = {} + rekening = [] for row in reader: id_kegiatan = int(row[16]) kode_rekening = row[19] nama_rekening = row[20] - jumlah_rincian = int(row[21]) - if not(kode_rekening in rekening): - newRekening = {'id_kegiatan': id_kegiatan, 'kode_rekening': kode_rekening, 'nama_rekening': nama_rekening, 'jumlah_rincian': jumlah_rincian} - rekening[kode_rekening] = newRekening -for key in rekening.keys(): - nominal = rekening[key]['jumlah_rincian'] - new_rekening = Rekening(id_kegiatan=rekening[key]['id_kegiatan'], kode_rekening=rekening[key]['kode_rekening'], nama_rekening=rekening[key]['nama_rekening'], jumlah_rincian=rekening[key]['jumlah_rincian']) + jumlah_rincian = row[21] + newRekening = {'id_kegiatan': id_kegiatan, 'kode_rekening': kode_rekening, 'nama_rekening': nama_rekening, 'jumlah_rincian': jumlah_rincian} + rekening.append(newRekening) + # rekening[kode_rekening] = newRekening + +count = 1 +for key in rekening: + print(count) + nominal = int(key['jumlah_rincian']) + new_rekening = Rekening(id_kegiatan=key['id_kegiatan'], kode_rekening=key['kode_rekening'], nama_rekening=key['nama_rekening'], jumlah_rincian=key['jumlah_rincian']) new_rekening.save() # Tambahkan jumlah rincian kegiatan - parent_kegiatan = Kegiatan.objects(id_kegiatan=rekening[key]['id_kegiatan']) + parent_kegiatan = Kegiatan.objects(id_kegiatan=key['id_kegiatan']) id_program = parent_kegiatan[0]['id_program'] - parent_kegiatan.update_one(inc__jumlah_rincian=nominal) + jumlah_rincian_kegiatan = int(parent_kegiatan[0]['jumlah_rincian']) + nominal + parent_kegiatan.update_one(set__jumlah_rincian=str(jumlah_rincian_kegiatan)) # Tambahkan jumlah rincian program parent_program = Program.objects(id_program=id_program) id_skpd = parent_program[0]['id_skpd'] - parent_program.update_one(inc__jumlah_rincian=nominal) + jumlah_rincian_program = int(parent_program[0]['jumlah_rincian']) + nominal + parent_program.update_one(set__jumlah_rincian=str(jumlah_rincian_program)) # Tambahkan jumlah rincian skpd parent_skpd = SKPD.objects(id_skpd=id_skpd) id_urusan = parent_skpd[0]['id_urusan'] - parent_skpd.update_one(inc__jumlah_rincian=nominal) + jumlah_rincian_skpd = int(parent_skpd[0]['jumlah_rincian']) + nominal + parent_skpd.update_one(set__jumlah_rincian=str(jumlah_rincian_skpd)) # Tambahkan jumlah rincian urusan - parent_urusan = Urusan.objects(id_urusan=id_urusan).update_one(inc__jumlah_rincian=nominal) \ No newline at end of file + parent_urusan = Urusan.objects(id_urusan=id_urusan) + jumlah_rincian_urusan = int(parent_urusan[0]['jumlah_rincian']) + nominal + parent_urusan.update_one(set__jumlah_rincian=str(jumlah_rincian_urusan)) + count+=1 \ No newline at end of file diff --git a/modules/apbd.py b/modules/apbd.py index 614258ecc3355285d53ed0dee2ee4e9137ba9acc..61b8f7778d887dcf6724ba3af2f7112cd72f8557 100644 --- a/modules/apbd.py +++ b/modules/apbd.py @@ -5,62 +5,17 @@ apbd_route = Blueprint('apbd', __name__, template_folder="templates") # get all urusan @apbd_route.route("/api/urusan", methods=["GET"]) -def +def getAllUrusan(): + urusans = db.Urusan.objects() -@login_route.route("/api/login", methods=["POST"]) -def login_user(): - form = request.get_json() - username = form.get("username") - password = form.get("password") - # TO DO : seed and hash the password + jumlah_rincian = 0 + for urusan in urusans: + jumlah_rincian += urusan['jumlah_rincian'] - user = db.User.objects(username=username) + for urusan in urusans: + urusan.persentase = (urusan['jumlah_rincian']/jumlah_rincian)*100 - if len(user) > 0 and user[0].password == password: - key = current_app.config.get("SECRET_KEY") - token = Token.generate_from(user[0].id, key) - - del user[0].password - return jsonify({ - "status": 200, - "data": { - "token": token.decode("utf-8"), - "user": user[0] - } - }) - else: - return jsonify({ - "status": 404, - "message": "User not found" - }) - - -@login_route.route("/api/check-user", methods=["POST"]) -def check_user_existence(): - form = request.get_json() - username = form.get("username") - - exists = db.User.objects(username = username) - - if len(exists) > 0: - return jsonify({ - "status": 200, - "message": "User exists", - "exist":True - }) - else: - return jsonify({ - "status": 404, - "message": "User not found", - "exist":False - }) - - -@login_route.route("/api/get-user", methods=["POST"]) -@validate_login_token(pass_user=True) -def get_user_from_token(user): return jsonify({ - "status": 200, - "data": user - }) - \ No newline at end of file + 'status': "200", + 'response': urusans + }) \ No newline at end of file