|
| 1 | +import firebase_admin |
| 2 | +from flask import Flask,render_template,request,redirect |
| 3 | +from flask.helpers import url_for |
| 4 | +from openpyxl import load_workbook |
| 5 | +import pandas as pd |
| 6 | +import numpy as np |
| 7 | +# from firebase_admin import db |
| 8 | +# from firebase_admin import credentials |
| 9 | +from datetime import date |
| 10 | +import datetime |
| 11 | +from firebase import Firebase |
| 12 | +import os |
| 13 | + |
| 14 | +firebaseConfig = { |
| 15 | + "apiKey": "your apikey", |
| 16 | + "authDomain": "", |
| 17 | + "databaseURL": "database url", |
| 18 | + "projectId": "your project id", |
| 19 | + "storageBucket": "your storage bucket id", |
| 20 | + "messagingSenderId": "your sender id", |
| 21 | + "appId": "your appId", |
| 22 | + "measurementId": "your measurement id" |
| 23 | +}; |
| 24 | +firebase = Firebase(firebaseConfig) |
| 25 | +db = firebase.database() |
| 26 | +list_of_keys=[] |
| 27 | + |
| 28 | +app = Flask(__name__) |
| 29 | + |
| 30 | +@app.route("/",methods = ['GET','POST']) |
| 31 | +def start(): |
| 32 | + if request.method == 'POST': |
| 33 | + global file,s_ds1 |
| 34 | + file = request.files['file'] |
| 35 | + #file.save("random.xlsx") |
| 36 | + file.save("static/police_record_today.xlsx") |
| 37 | + global wb |
| 38 | + wb = load_workbook(file) # Work Book |
| 39 | + # Work Sheet MCRC.RM.COLL |
| 40 | + sheets=wb.sheetnames |
| 41 | + |
| 42 | + return render_template("sheetname.html",sheets = sheets) |
| 43 | + return render_template("index.html") |
| 44 | + |
| 45 | +@app.route("/sheet-selection",methods = ['GET','POST']) |
| 46 | +def sheet_selection(): |
| 47 | + if request.method == 'POST': |
| 48 | + sheet_name_user = request.form.get("sheet_selected") |
| 49 | + print(sheet_name_user) |
| 50 | + today = date.today() |
| 51 | + ds1 = pd.read_excel("static/police_record_today.xlsx", sheet_name_user) |
| 52 | + ds2=pd.read_excel("static/police_record_yesterday.xlsx",sheet_name_user) |
| 53 | + #appending both data |
| 54 | + merged = ds1.append(ds2) |
| 55 | + #dropping duplicates |
| 56 | + merged = merged.drop_duplicates(keep=False).sort_index() |
| 57 | + #converting to string |
| 58 | + data=merged.values.tolist() |
| 59 | + for i in range(len(data)): |
| 60 | + if(str(data[i][10])!="nan"): |
| 61 | + fd=datetime.datetime.strptime(str(data[i][10]), '%d.%m.%Y').strftime('%Y.%m.%d').replace(".","") |
| 62 | + key=fd+str(data[i][1])+str(data[i][2])+str(data[i][3])+str(data[i][4])+str(data[i][6])+str(data[i][7])+str(data[i][8]); |
| 63 | + print(key) |
| 64 | + push_key=key.replace(".","").replace(" ","") |
| 65 | + if(str(data[i][1])=="nan" and str(data[i][2])=="nan"): |
| 66 | + continue |
| 67 | + ct=str(data[i][3]) |
| 68 | + cn=str(data[i][4]).replace(".0","") |
| 69 | + name=str(data[i][5]) |
| 70 | + ca_yr=str(data[i][6]).replace(".0","") |
| 71 | + crn=str(data[i][7]).replace(".0","") |
| 72 | + cr_yr=str(data[i][8]).replace(".0","") |
| 73 | + d_r=str(data[i][9]) |
| 74 | + rm_date=str(data[i][10]) |
| 75 | + before=str(data[i][11]) |
| 76 | + |
| 77 | + if(str(data[i][3])=="nan"): |
| 78 | + ct="None" |
| 79 | + if(str(data[i][4])=="nan"): |
| 80 | + cn="None" |
| 81 | + if(str(data[i][5])=="nan"): |
| 82 | + name="None" |
| 83 | + if(str(data[i][6])=="nan"): |
| 84 | + ca_yr="None" |
| 85 | + if(str(data[i][7])=="nan"): |
| 86 | + crn="None" |
| 87 | + if(str(data[i][8])=="nan"): |
| 88 | + cr_yr="None" |
| 89 | + if(str(data[i][9])=="nan"): |
| 90 | + d_r="None" |
| 91 | + if(str(data[i][10])=="nan"): |
| 92 | + rm_date="None" |
| 93 | + if(str(data[i][11])=="nan"): |
| 94 | + before="None" |
| 95 | + diction = { |
| 96 | + 'A':"", |
| 97 | + 'B':str(data[i][1]), |
| 98 | + 'C':str(data[i][2]), |
| 99 | + 'D':ct, |
| 100 | + 'E':cn, |
| 101 | + 'F':name, |
| 102 | + 'G':ca_yr, |
| 103 | + 'H':crn, |
| 104 | + 'I':cr_yr, |
| 105 | + 'J':d_r, |
| 106 | + 'K':rm_date, |
| 107 | + 'L':before, |
| 108 | + 'date':str(today), |
| 109 | + 'pushkey':push_key, |
| 110 | + 'type':sheet_name_user.replace(".","_").strip() |
| 111 | + } |
| 112 | + db.child('data').child(push_key).set(diction) |
| 113 | + os.remove("static/police_record_yesterday.xlsx") |
| 114 | + os.rename("static/police_record_today.xlsx","static/police_record_yesterday.xlsx") |
| 115 | + #s_ds1.to_excel("static/police_record_yesterday.xlsx",index=False)#save today file as tomorrow |
| 116 | + |
| 117 | + |
| 118 | + return redirect(url_for('start')) |
| 119 | + |
| 120 | + |
| 121 | + |
| 122 | +if __name__ == '__main__': |
| 123 | + app.run(debug = True) |
| 124 | + |
0 commit comments