import os
import sys
import shutil
import time
import datetime
import mysql.connector 

import default_setting

# Get Current Path
dir_path = os.path.dirname(os.path.realpath(__file__))

# Create IDOC Segments from Closed Receipt		
def setAged(connection, currentDate):

# Get Current TimeStamp
    ts = time.time()
    currentTs = datetime.datetime.fromtimestamp(ts).strftime('_%Y-%m-%d_%H:%M:%S')
    ts = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S')	

    try:			
# Get user
        cursor = connection.cursor()
        dataQuery = "SELECT id,username FROM user WHERE (last_name<>'unused' OR last_name IS null) AND lower(substr(username,1,2))='rr'"
        try:
            cursor.execute(dataQuery) 
            rows = cursor.fetchall()
            for row in rows:
                try:
                    dataQuery = "SELECT id,last_updated FROM transaction_history WHERE last_updated > now()-INTERVAL 2 MONTH AND last_updated_by='"+str(row[1])+"' LIMIT 1"
                    cursor.execute(dataQuery)
                    tranRow = cursor.fetchone()
                except Exception as Err:
                    print ("FAIL-",str(Err))
                if (not tranRow):
                    dataQuery = "UPDATE user SET department='unused' WHERE id="+str(row[0])+" LIMIT 1"
                    try:
                        cursor.execute(dataQuery)
                        connection.commit()
                    except Exception as Err:
                        print ('Update Error',str(Err))
                else:
                    print("User",str(row[1]),tranRow[1])
        except Exception as Err:
            print("FAIL-Read Error "+dataQuery+" "+str(Err))

    except UnboundLocalError as e:
        return "FAIL-"+str(e)

    try:
        return "OK  -setageduser - "+str(currentDate)
    except UnboundLocalError:
        return "FAIL-Update Error "+currentDate+" "+dataQuery
	
def getts():
    ts = time.time()
    ts = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d')
    return ts

def main():
	result = "FAIL-"
	
# Default Connection / System Settings
	defaults = default_setting.defaultSettings()
# mySql Connector
	connection = mysql.connector.connect(user=defaults['dbuser'], password=defaults['dbpwd'],host=defaults['dbhost'],database=defaults['dbase'])
# timestamp
	ts = getts()

# check for Input Date
	if (len(sys.argv)>1):
		ts = sys.argv[1]
		
# Get Closed Picks & return Idoc values
	result = setAged(connection,ts)
	
	return result
				
if __name__ == '__main__':
	result = main()
	print(result)