from flask import Flask, render_template, request, redirect, url_for, session
from flask_mysqldb import MySQL
import MySQLdb.cursors
import re

import array as q_pathil
import array as s_pathil

from datetime import datetime

import webbrowser
import os

clpregno =""
studName = ""
studDob = ""
studStudyingClass = ""
vi_tbt = ""                                             
ans1q = ""

q_pathil = ["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""]       
s_pathil = ["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""] 

mospati = 0                                         
doe = ""                                               
cdt = ""                                                
ctm = ""                                                

app = Flask(__name__)
app.secret_key = 'dbopen786'

app.config['MYSQL_HOST'] = "localhost"
app.config['MYSQL_USER'] = "root"
app.config['MYSQL_PASSWORD'] = "Ritecomp1155sql"
app.config['MYSQL_DB'] = "iae_clp_ayr_f24_t25_meb"


mysql = MySQL(app)

@app.route('/', methods=["GET","POST"])
def home():
    global clpregno,studName,studDob,studStudyingClass,vi_tbt,doe,cdt,ctm
    global s_pathil
    if request.method == "POST":                            
        clpregno = request.form["clpregno"]
        clprpd = request.form["clpsprd"]
        val = [clpregno]
                                                                                                                                            
        cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
        cursor.execute("select man_unr from gac_0023_tvr_clp_mpuv_24_25 where man_pen like %s",val)
        studdetail = cursor.fetchall()
        exact_val= [re.sub(r"[^a-zA-Z0-9ஃ-வஷ-ஹா-்ஸ்ரீ\s?.+*/=%-]","",str(item)) for item in studdetail]
        if exact_val[0][7:24] == clprpd:
            cursor.execute("select man_per from gac_0023_tvr_clp_mpuv_24_25 where man_pen like %s",val)
            studName = cursor.fetchall()
            studName= [re.sub(r"[^a-zA-Zஃ-வஷ-ஹா-்ஸ்ரீ\s]","",str(item)) for item in studName]
            studName = studName[0][7:55]
            
            cursor.execute("select man_pit from gac_0023_tvr_clp_mpuv_24_25 where man_pen like %s",val)
            studDob = cursor.fetchall()
            dobtxt = str(studDob)
            dobtxt = dobtxt[14:24]

            cursor.execute("select man_pav from gac_0023_tvr_clp_mpuv_24_25 where man_pen like %s",val)
            studStudyingClass = cursor.fetchall()
            studStudyingClass = [re.sub(r"[^a-zA-Zஃ-வஷ-ஹா-்ஸ்ரீ\s]","",str(item)) for item in studStudyingClass]
            studStudyingClass =studStudyingClass[0][7:55]

            vi_tbt = "at_3m_i_p_i_ain"                                                             

            doe = datetime.now()
            cdt = '%s-%s-%s' % (format(doe.day,"02d"),format(doe.month,"02d"),doe.year)                                         
            ctm = '%s:%s:%s' % (format(doe.hour,"02d"),format(doe.minute,"02d"),format(doe.second,"02d"))       

            val = [clpregno]
            cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
            cursor.execute("select man_per from gac_0023_tvr_clp_mtpvv_24_25 where man_pen like %s",val)
            studdetail = cursor.fetchall()

                        
            if studdetail ==():                             
                val = (clpregno,studName,dobtxt,studStudyingClass,vi_tbt,cdt,ctm)
                cursor.execute("insert into gac_0023_tvr_clp_mtpvv_24_25 (man_pen,man_per,man_pit,man_pav,vat_vak,vi_alna,vi_nera) values (%s,%s,%s,%s,%s,%s,%s)",val)
                mysql.connection.commit()
                temp1q = "None"
            else:                                                                                                                                 
                val = [clpregno]    
                cursor.execute("select vi_01 from gac_0023_tvr_clp_mtpvv_24_25 where man_pen like %s",val)
                ans1q = cursor.fetchall()
                temp1q = [re.sub(r"[^a-zA-Z0-9ஃ-வஷ-ஹா-்ஸ்ரீ\s?.+*/=%-]","",str(item)) for item in ans1q]
                
            for tbl_row in range(0,41):
                val = [tbl_row+1]
                cursor.execute("select at_sarvid from  at_3m_i_p_i_ain where at_ken like %s",val)
                s_pathil_temp = cursor.fetchall()
                for row in s_pathil_temp:
                    s_pathil_temp = str(row)
                    s_pathil.insert(tbl_row,s_pathil_temp)

            if temp1q == "None":                         
                return redirect ('/kelvi01')
            elif temp1q[0][5:] != "None":                                       
                return redirect ('/wait')
        else:                                                                                                           
            return "Try Again - Best Wishes"                                                    
            
        
    return render_template("tngacclp_iaelogin2024.html")                                   

                                    # Q 1 TO 5
@app.route('/kelvi01',methods=["GET","POST"])
def kelvi01():
    global mospati
    mospati = 0
    if request.method == "POST":
        q_pathil[0] = request.form["q1op"]
        return redirect ('/kelvi02')
    return render_template("iraiqst1.html")

@app.route('/kelvi02',methods=["GET","POST"])
def kelvi02():
    
    if request.method == "POST":
        q_pathil[1] = request.form["q2op"]
        return redirect ('/kelvi03')
    return render_template("iraiqst2.html")

@app.route('/kelvi03',methods=["GET","POST"])
def kelvi03():
         if request.method == "POST":
            q_pathil[2] = request.form["q3op"]
            return redirect ('/kelvi04')             
         return render_template("iraiqst3.html")     # return f"1 - {q_pathil[0]}, 2 - {q_pathil[1]}, 3 - {q_pathil[2]}"     - statement used to check values

@app.route('/kelvi04',methods=["GET","POST"])
def kelvi04():
        if request.method == "POST":
            q_pathil[3] = request.form["q4op"]
            return redirect ('/kelvi05')             
        return render_template("iraiqst4.html")

@app.route('/kelvi05',methods=["GET","POST"])
def kelvi05():
        if request.method == "POST":
            q_pathil[4] = request.form["q5op"]
            return redirect ('/kelvi06')             
        return render_template("iraiqst5.html")

                    # Q 6 TO 10
@app.route('/kelvi06',methods=["GET","POST"])
def kelvi06():
    if request.method == "POST":
        q_pathil[5] = request.form["q6op"]
        return redirect ('/kelvi07')
    return render_template("iraiqst6.html")

@app.route('/kelvi07',methods=["GET","POST"])
def kelvi07():
    if request.method == "POST":
        q_pathil[6] = request.form["q7op"]
        return redirect ('/kelvi08')
    return render_template("iraiqst7.html")

@app.route('/kelvi08',methods=["GET","POST"])
def kelvi08():
        if request.method == "POST":
            q_pathil[7] = request.form["q8op"]
            return redirect ('/kelvi09')             
        return render_template("iraiqst8.html")     # return f"1 - {q_pathil[0]}, 2 - {q_pathil[1]}, 3 - {q_pathil[2]}"     - statement used to check values

@app.route('/kelvi09',methods=["GET","POST"])
def kelvi09():
        if request.method == "POST":
            q_pathil[8] = request.form["q9op"]
            return redirect ('/kelvi10')             
        return render_template("iraiqst9.html")

@app.route('/kelvi10',methods=["GET","POST"])
def kelvi10():
        if request.method == "POST":
            q_pathil[9] = request.form["q10op"]
            return redirect ('/kelvi11')             
        return render_template("iraiqst10.html")

                      # Q 11 -  15
@app.route('/kelvi11',methods=["GET","POST"])
def kelvi11():
    if request.method == "POST":
        q_pathil[10] = request.form["q11op"]
        return redirect ('/kelvi12')
    return render_template("iraiqst11.html")

@app.route('/kelvi12',methods=["GET","POST"])
def kelvi12():
    if request.method == "POST":
        q_pathil[11] = request.form["q12op"]
        return redirect ('/kelvi13')
    return render_template("iraiqst12.html")

@app.route('/kelvi13',methods=["GET","POST"])
def kelvi13():
        if request.method == "POST":
            q_pathil[12] = request.form["q13op"]
            return redirect ('/kelvi14')             
        return render_template("iraiqst13.html")     

@app.route('/kelvi14',methods=["GET","POST"])
def kelvi14():
        if request.method == "POST":
            q_pathil[13] = request.form["q14op"]
            return redirect ('/kelvi15')             
        return render_template("iraiqst14.html")

@app.route('/kelvi15',methods=["GET","POST"])
def kelvi15():
        if request.method == "POST":
            q_pathil[14] = request.form["q15op"]
            return redirect ('/kelvi16')             
        return render_template("iraiqst15.html")

                    # Q 16 - 20
@app.route('/kelvi16',methods=["GET","POST"])
def kelvi16():
    if request.method == "POST":
        q_pathil[15] = request.form["q16op"]
        return redirect ('/kelvi17')
    return render_template("iraiqst16.html")

@app.route('/kelvi17',methods=["GET","POST"])
def kelvi17():
    if request.method == "POST":
        q_pathil[16] = request.form["q17op"]
        return redirect ('/kelvi18')
    return render_template("iraiqst17.html")

@app.route('/kelvi18',methods=["GET","POST"])
def kelvi18():
        if request.method == "POST":
            q_pathil[17] = request.form["q18op"]
            return redirect ('/kelvi19')             
        return render_template("iraiqst18.html")     

@app.route('/kelvi19',methods=["GET","POST"])
def kelvi19():
        if request.method == "POST":
            q_pathil[18] = request.form["q19op"]
            return redirect ('/kelvi20')             
        return render_template("iraiqst19.html")

@app.route('/kelvi20',methods=["GET","POST"])
def kelvi20():
        if request.method == "POST":
            q_pathil[19] = request.form["q20op"]
            return redirect ('/kelvi21')             
        return render_template("iraiqst20.html")

                     # Q 21 -  25
@app.route('/kelvi21',methods=["GET","POST"])
def kelvi21():
    if request.method == "POST":
        q_pathil[20] = request.form["q21op"]
        return redirect ('/kelvi22')
    return render_template("iraiqst21.html")

@app.route('/kelvi22',methods=["GET","POST"])
def kelvi22():
    if request.method == "POST":
        q_pathil[21] = request.form["q22op"]
        return redirect ('/kelvi23')
    return render_template("iraiqst22.html")

@app.route('/kelvi23',methods=["GET","POST"])
def kelvi23():
        if request.method == "POST":
            q_pathil[22] = request.form["q23op"]
            return redirect ('/kelvi24')             
        return render_template("iraiqst23.html")     

@app.route('/kelvi24',methods=["GET","POST"])
def kelvi24():
        if request.method == "POST":
            q_pathil[23] = request.form["q24op"]
            return redirect ('/kelvi25')             
        return render_template("iraiqst24.html")

@app.route('/kelvi25',methods=["GET","POST"])
def kelvi25():
        if request.method == "POST":
            q_pathil[24] = request.form["q25op"]
            return redirect ('/kelvi26')             
        return render_template("iraiqst25.html")

                    # Q 26 - 30
@app.route('/kelvi26',methods=["GET","POST"])
def kelvi26():
    if request.method == "POST":
        q_pathil[25] = request.form["q26op"]
        return redirect ('/kelvi27')
    return render_template("iraiqst26.html")

@app.route('/kelvi27',methods=["GET","POST"])
def kelvi27():
    if request.method == "POST":
        q_pathil[26] = request.form["q27op"]
        return redirect ('/kelvi28')
    return render_template("iraiqst27.html")

@app.route('/kelvi28',methods=["GET","POST"])
def kelvi28():
        if request.method == "POST":
            q_pathil[27] = request.form["q28op"]
            return redirect ('/kelvi29')             
        return render_template("iraiqst28.html")     

@app.route('/kelvi29',methods=["GET","POST"])
def kelvi29():
        if request.method == "POST":
            q_pathil[28] = request.form["q29op"]
            return redirect ('/kelvi30')             
        return render_template("iraiqst29.html")

@app.route('/kelvi30',methods=["GET","POST"])
def kelvi30():
        if request.method == "POST":
            q_pathil[29] = request.form["q30op"]
            return redirect ('/kelvi31')             
        return render_template("iraiqst30.html")

                # Q 31 -  35
@app.route('/kelvi31',methods=["GET","POST"])
def kelvi31():
    if request.method == "POST":
        q_pathil[30] = request.form["q31op"]
        return redirect ('/kelvi32')
    return render_template("iraiqst31.html")

@app.route('/kelvi32',methods=["GET","POST"])
def kelvi32():
    if request.method == "POST":
        q_pathil[31] = request.form["q32op"]
        return redirect ('/kelvi33')
    return render_template("iraiqst32.html")

@app.route('/kelvi33',methods=["GET","POST"])
def kelvi33():
        if request.method == "POST":
            q_pathil[32] = request.form["q33op"]
            return redirect ('/kelvi34')             
        return render_template("iraiqst33.html")     

@app.route('/kelvi34',methods=["GET","POST"])
def kelvi34():
        if request.method == "POST":
            q_pathil[33] = request.form["q34op"]
            return redirect ('/kelvi35')             
        return render_template("iraiqst34.html")

@app.route('/kelvi35',methods=["GET","POST"])
def kelvi35():
        if request.method == "POST":
            q_pathil[34] = request.form["q35op"]
            return redirect ('/kelvi36')             
        return render_template("iraiqst35.html")

                    # Q 36 - 40
@app.route('/kelvi36',methods=["GET","POST"])
def kelvi36():
    if request.method == "POST":
        q_pathil[35] = request.form["q36op"]
        return redirect ('/kelvi37')
    return render_template("iraiqst36.html")

@app.route('/kelvi37',methods=["GET","POST"])
def kelvi37():
    if request.method == "POST":
        q_pathil[36] = request.form["q37op"]
        return redirect ('/kelvi38')
    return render_template("iraiqst37.html")

@app.route('/kelvi38',methods=["GET","POST"])
def kelvi38():
        if request.method == "POST":
            q_pathil[37] = request.form["q38op"]
            return redirect ('/kelvi39')             
        return render_template("iraiqst38.html")     

@app.route('/kelvi39',methods=["GET","POST"])
def kelvi39():
        if request.method == "POST":
            q_pathil[38] = request.form["q39op"]
            return redirect ('/kelvi40')             
        return render_template("iraiqst39.html")

@app.route('/kelvi40',methods=["GET","POST"])
def kelvi40():
        global s_pathil,mospati
        mospati = 0
        if request.method == "POST":
            q_pathil[39] = request.form["q40op"]

            if s_pathil[0][15:23] == q_pathil[0]:
                mospati = mospati+1
            if s_pathil[1][15:50] == q_pathil[1]:
                mospati = mospati+1
            if s_pathil[2][15:18] == q_pathil[2]:
                mospati = mospati+1
            if s_pathil[3][15:16] == q_pathil[3]:
                mospati = mospati+1
            if s_pathil[4][15:32] == q_pathil[4]:
                mospati = mospati+1
            if s_pathil[5][15:20] == q_pathil[5]:
                mospati = mospati+1
            if s_pathil[6][15:30] == q_pathil[6]:
                mospati = mospati+1
            if s_pathil[7][15:21] == q_pathil[7]:
                mospati = mospati+1
            if s_pathil[8][15:20] == q_pathil[8]:
                mospati = mospati+1
            if s_pathil[9][15:18] == q_pathil[9]:
                mospati = mospati+1
            if s_pathil[10][15:21] == q_pathil[10]:
                mospati = mospati+1
            if s_pathil[11][15:18] == q_pathil[11]:
                mospati = mospati+1
            if s_pathil[12][15:19] == q_pathil[12]:
                mospati = mospati+1
            if s_pathil[13][15:18] == q_pathil[13]:
                mospati = mospati+1
            if s_pathil[14][15:22] == q_pathil[14]:
                mospati = mospati+1
            if s_pathil[15][15:23] == q_pathil[15]:
                mospati = mospati+1
            if s_pathil[16][15:21] == q_pathil[16]:
                mospati = mospati+1
            if s_pathil[17][15:30] == q_pathil[17]:
                mospati = mospati+1
            if s_pathil[18][15:30] == q_pathil[18]:
                mospati = mospati+1
            if s_pathil[19][15:23] == q_pathil[19]:
                mospati = mospati+1
                
            if s_pathil[20][15:22] == q_pathil[20]:
                mospati = mospati+1
            if s_pathil[21][15:23] == q_pathil[21]:
                mospati = mospati+1
            if s_pathil[22][15:26] == q_pathil[22]:
                mospati = mospati+1
            if s_pathil[23][15:20] == q_pathil[23]:
                mospati = mospati+1
            if s_pathil[24][15:31] == q_pathil[24]:
                mospati = mospati+1
            if s_pathil[25][15:18] == q_pathil[25]:
                mospati = mospati+1
            if s_pathil[26][15:23] == q_pathil[26]:
                mospati = mospati+1
            if s_pathil[27][15:32] == q_pathil[27]:
                mospati = mospati+1
            if s_pathil[28][15:25] == q_pathil[28]:
                mospati = mospati+1
            if s_pathil[29][15:23] == q_pathil[29]:
                mospati = mospati+1
                
            if s_pathil[30][15:19] == q_pathil[30]:
                mospati = mospati+1
            if s_pathil[31][15:24] == q_pathil[31]:
                mospati = mospati+1
            if s_pathil[32][15:22] == q_pathil[32]:
                mospati = mospati+1
            if s_pathil[33][15:29] == q_pathil[33]:
                mospati = mospati+1
            if s_pathil[34][15:26] == q_pathil[34]:
                mospati = mospati+1
            if s_pathil[35][15:23] == q_pathil[35]:
                mospati = mospati+1
            if s_pathil[36][15:23] == q_pathil[36]:
                mospati = mospati+1
            if s_pathil[37][15:26] == q_pathil[37]:
                mospati = mospati+1
            if s_pathil[38][15:26] == q_pathil[38]:
                mospati = mospati+1
            if s_pathil[39][15:22] == q_pathil[39]:
                mospati = mospati+1

            manavar_tot = str(mospati)   
            sql = "update gac_0023_tvr_clp_mtpvv_24_25 set vi_01 = %s,vi_02 = %s,vi_03 = %s,vi_04 = %s,vi_05 = %s,vi_06 = %s,vi_07 = %s,vi_08 = %s,vi_09 = %s,vi_10 = %s,vi_11 = %s,vi_12 = %s,vi_13 = %s,vi_14 = %s,vi_15 = %s,vi_16 = %s,vi_17 = %s,vi_18 = %s,vi_19 = %s,vi_20 = %s,vi_21 = %s,vi_22 = %s,vi_23 = %s,vi_24 = %s,vi_25 = %s,vi_26 = %s,vi_27 = %s,vi_28 = %s,vi_29 = %s,vi_30 = %s,vi_31 = %s,vi_32 = %s,vi_33 = %s,vi_34 = %s,vi_35 = %s,vi_36 = %s,vi_37 = %s,vi_38 = %s,vi_39 = %s,vi_40 = %s,mo_sa_vi = %s where man_pen = %s"
            val =  [q_pathil[0],q_pathil[1],q_pathil[2],q_pathil[3],q_pathil[4],q_pathil[5],q_pathil[6],q_pathil[7],q_pathil[8],q_pathil[9],q_pathil[10],q_pathil[11],q_pathil[12],q_pathil[13],q_pathil[14],q_pathil[15],q_pathil[16],q_pathil[17],q_pathil[18],q_pathil[19],q_pathil[20],q_pathil[21],q_pathil[22],q_pathil[23],q_pathil[24],q_pathil[25],q_pathil[26],q_pathil[27],q_pathil[28],q_pathil[29],q_pathil[30],q_pathil[31],q_pathil[32],q_pathil[33],q_pathil[34],q_pathil[35],q_pathil[36],q_pathil[37],q_pathil[38],q_pathil[39],manavar_tot,clpregno]
            cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
            cursor.execute(sql,val);
            mysql.connection.commit()            
            return redirect ('/thankyou')
            

        return render_template("iraiqst40.html")



@app.route('/thankyou',methods=["GET","POST"])
def thankyou():
    if request.method == "POST":
        os.system("taskkill /im chrome.exe /f")
        
    return render_template("thankyou.html")

@app.route('/wait')
def wait():
    return render_template('wait.html'), {"Refresh": "5;url=/ReAttempt"}

@app.route('/ReAttempt',methods=["GET","POST"])
def ReAttempt():
    if request.method == "POST":
        os.system("taskkill /im chrome.exe /f")                            

    return render_template('ReAttempt.html')

if __name__ == "__main__":
    app.run()
