def query_alllimit(user_data): print("load limit history table ==> wait...") data_limitValue = [] data_transaction = 0 db = connect_db.connectMongoDB() if db.userlist.count_documents({'username': user_data[1]}) == 1: get_data = db.userlist.find({'username': user_data[1]}) get_data_transaction = db.transaction_list.find( {'username': user_data[1]}) for data in get_data: for date_query in data['limit_value_temp']: print('Limit value {} ==> {}'.format( date_query['date_create'], date_query['limit_value'])) dateend_c = datetime.datetime.strptime( date_query['date_create'], '%d-%b-%Y').strftime('%b-%Y') for query_transaction in get_data_transaction: datestart_c = datetime.datetime.strptime( query_transaction['date'], '%d-%b-%Y').strftime('%b-%Y') if datestart_c == dateend_c: data_transaction = data_transaction + query_transaction[ 'spend'] used_value = date_query['limit_value'] - data_transaction print('used in {} ==> {}'.format(date_query['date_create'], used_value)) result = { 'date_create': date_query['date_create'], 'limit_value': date_query['limit_value'], 'used': used_value } data_limitValue.append(result) print("load limit history table ==> Success") return (data_limitValue)
def query_limitValue(user_data): print("load limit value ==> wait...") data_limitValue = [] db = connect_db.connectMongoDB() if db.userlist.count_documents({'username': user_data[1]}) == 1: data_limitValue.append("PASS") get_data = db.userlist.find({'username': user_data[1]}) for data in get_data: all_limitValue = data if 'limit_value_temp' not in all_limitValue: print("This user not have limit value data.") data_limitValue.append(0) else: temp_value = all_limitValue['limit_value_temp'][-1] data_limitValue.append(temp_value['limit_value']) print('Info ==> {}'.format(data_limitValue)) print("load limit value ==> Success") else: data_limitValue.append("FAIL") print("load limit value ==> Error") return (data_limitValue)
def insertRegister_to_Db(datainput): status = False db = connect_db.connectMongoDB() result = db.userlist.insert_one(datainput) if result.inserted_id != "": status = True return (status)
def checkDeleteLedger(id): print('Delete transaction id : {}'.format(id)) print('Delete transaction ==> wait...') db = connect_db.connectMongoDB() check_delete = db.transaction_list.delete_one({'_id': ObjectId(id)}) print(check_delete) print('Delete transaction ==> success')
def checkRegis(user): checkduplicate = False db = connect_db.connectMongoDB() if db.userlist.count_documents({'username': user }) != 0: checkduplicate = True print("Username is Same") else: print("Username Not Same") return (checkduplicate)
def query_data(user_data, day): print("load user data {} | {} ==> wait...".format(day, user_data[1])) day_c = datetime.datetime.strptime(day, '%b-%Y').strftime('%b-%Y') data_transaction = [] income_sum = 0 spend_sum = 0 db = connect_db.connectMongoDB() if db.transaction_list.count_documents({'username': user_data[1]}) > 0: get_data = db.transaction_list.find({'username': user_data[1]}) for data in get_data: day_data_c = datetime.datetime.strptime( data['date'], '%d-%b-%Y').strftime('%b-%Y') print('{} | {}'.format(day_c, day_data_c)) if day_c == day_data_c: print(data) transaction_data = data income_sum = income_sum + transaction_data['income'] spend_sum = spend_sum + transaction_data['spend'] get_Userdata = db.userlist.find({'username': user_data[1]}) for data in get_Userdata: user_data_result = data print("Sum income ==> {} Bath.".format(income_sum)) print("Sum spend ==> {} Bath.".format(spend_sum)) print("load user data ==> success") print('-' * 30) if 'limit_value_temp' in user_data_result: data_transaction = { 'income_sum': income_sum, 'spend_sum': spend_sum, 'limit_value': user_data_result['limit_value_temp'][-1]['limit_value'] } else: data_transaction = { 'income_sum': income_sum, 'spend_sum': spend_sum, 'limit_value': 0 } else: print("This user not have transaction data.") data_transaction = { 'income_sum': income_sum, 'spend_sum': spend_sum, 'limit_value': 0 } return (data_transaction)
def checkAddLedger(datainput): print(datainput) print("adding new data ==> wait...") db = connect_db.connectMongoDB() check_added = db.transaction_list.insert_one(datainput) if (check_added != ""): print("adding new data ==> success") check_added_bool = True else: print("adding new data ==> Error") check_added_bool = False return (check_added_bool)
def checkAddlimitValue(datainput, user_data): print(datainput) print("Save limit value ==> wait...") db = connect_db.connectMongoDB() check_added = db.userlist.update_one( {'username': user_data[1]}, {'$push': { 'limit_value_temp': datainput }}) if (check_added.matched_count > 0): print("Save limit value ==> success") check_added_bool = True else: print("Save limit value ==> Error") check_added_bool = False return (check_added_bool)
def checkLogin(datainput): datalogin = [] db = connect_db.connectMongoDB() if db.userlist.count_documents({'username': datainput['username'] ,'password' : datainput['password']}) == 1: datalogin.append("PASS") get_data = db.userlist.find({'username': datainput['username']}) for data in get_data: datalogin.append(data['username']) datalogin.append(data['Fname']) datalogin.append(data['Lname']) print('Info ==> {}'.format(datalogin)) print('-'*30) else: datalogin.append("FAIL") return (datalogin)
def checkEditLedger(datainput, user_data, old_data): print("Editing data ==> wait...") print("Old data ==> {}".format(old_data)) print("Old data ==> {}".format(datainput)) db = connect_db.connectMongoDB() check_added = db.transaction_list.update_one({'_id': old_data['_id']}, {'$set': datainput}) if (check_added.matched_count > 0): print("Editing data ==> success") check_added_bool = True else: print("Editing data ==> Error") check_added_bool = False return (check_added_bool)
def query_table(user_data): print("Load Table ==> wait...") data_table = [] db = connect_db.connectMongoDB() if db.transaction_list.count_documents({'username': user_data[1]}) > 0: get_data = db.transaction_list.find({'username': user_data[1]}) for data in get_data: data_table.append(data) print(data_table) print("Load Table ==> success") else: print("This user not have transaction data.") return (data_table)
def query_tableByDay(user_data, startdate, enddate): print("Load Table by Day ==> wait...") data_table = [] datestart_c = datetime.datetime.strptime(startdate, '%d-%b-%Y') dateend_c = datetime.datetime.strptime(enddate, '%d-%b-%Y') db = connect_db.connectMongoDB() if db.transaction_list.count_documents({'username': user_data[1]}) > 0: get_data = db.transaction_list.find({'username': user_data[1]}) for data in get_data: data_date_c = datetime.datetime.strptime(data['date'], '%d-%b-%Y') if datestart_c <= data_date_c <= dateend_c: data_table.append(data) print(data_table) print("Load Table by Day ==> success") else: print("This user not have transaction data.") return (data_table)
def query_analyze(user_data): print("load data for analyze ==> wait...") data_analyze = [] normal_spend = 0 essential_spend = 0 transport_spend = 0 online_spend = 0 food_spend = 0 normal_income = 0 salary_income = 0 income_sum = 0 spend_sum = 0 db = connect_db.connectMongoDB() if db.transaction_list.count_documents({'username': user_data[1]}) > 0: get_data = db.transaction_list.find({'username': user_data[1]}) for data in get_data: income_sum = income_sum + data['income'] spend_sum = spend_sum + data['spend'] if data['type'] == "ค่าอาหาร": food_spend = food_spend + data['spend'] elif data['type'] == "ค่าเดินทาง": transport_spend = transport_spend + data['spend'] elif data['type'] == "ค่าใช้จ่ายทั่วไป": normal_spend = normal_spend + data['spend'] elif data['type'] == "ค่าใช้จ่ายออนไลน์": online_spend = online_spend + data['spend'] elif data['type'] == "ค่าใช้จ่ายของใช้ที่จำเป็น": essential_spend = essential_spend + data['spend'] elif data['type'] == "รายรับทั่วไป": normal_income = normal_income + data['income'] elif data['type'] == "รายรับเงินเดือน": salary_income = salary_income + data['income'] print("load data for analyze ==> Calculate Percent...") if spend_sum == 0: normal_pt_spend = 0 essential_pt_spend = 0 transport_pt_spend = 0 online_pt_spend = 0 food_pt_spend = 0 else: normal_pt_spend = round((normal_spend * 100) / spend_sum, 2) essential_pt_spend = round((essential_spend * 100) / spend_sum, 2) transport_pt_spend = round((transport_spend * 100) / spend_sum, 2) online_pt_spend = round((online_spend * 100) / spend_sum, 2) food_pt_spend = round((food_spend * 100) / spend_sum, 2) if income_sum == 0: normal_pt_income = 0 salary_pt_income = 0 else: normal_pt_income = (normal_income * 100) / income_sum salary_pt_income = (salary_income * 100) / income_sum print("Sum income ==> {} Bath.".format(income_sum)) print("Sum spend ==> {} Bath.".format(spend_sum)) print("Food spend ==> {} Bath. | {} %".format(food_spend, food_pt_spend)) print("Transport spend ==> {} Bath. | {} %".format(transport_spend, transport_pt_spend)) print("Normal spend ==> {} Bath. | {} %".format(normal_spend, normal_pt_spend)) print("Online spend ==> {} Bath. | {} %".format(online_spend, online_pt_spend)) print("Essentail spend ==> {} Bath. | {} %".format(essential_spend, essential_pt_spend)) print("Normal spend ==> {} Bath. | {} %".format(normal_income, normal_pt_income)) print("Salary spend ==> {} Bath. | {} %".format(salary_income, salary_pt_income)) data_analyze = {'income_sum': income_sum, 'spend_sum': spend_sum, 'food_spend': food_spend, 'transport_spend': transport_spend, 'normal_spend': normal_spend, 'online_spend': online_spend, 'essential_spend': essential_spend, 'normal_income': normal_income, 'salary_income': salary_income, 'food_spend_pt': food_pt_spend, 'transport_spend_pt': transport_pt_spend, 'normal_spend_pt': normal_pt_spend, 'online_spend_pt': online_pt_spend, 'essential_spend_pt': essential_pt_spend, 'normal_income_pt': normal_pt_income, 'salary_income_pt': salary_pt_income } print("load data for analyze ==> success") else: print("This user not have transaction.") normal_pt_spend = 0 essential_pt_spend = 0 transport_pt_spend = 0 online_pt_spend = 0 food_pt_spend = 0 normal_pt_income = 0 salary_pt_income = 0 data_analyze = {'income_sum': income_sum, 'spend_sum': spend_sum, 'food_spend': food_spend, 'transport_spend': transport_spend, 'normal_spend': normal_spend, 'online_spend': online_spend, 'essential_spend': essential_spend, 'normal_income': normal_income, 'salary_income': salary_income, 'food_spend_pt': food_pt_spend, 'transport_spend_pt': transport_pt_spend, 'normal_spend_pt': normal_pt_spend, 'online_spend_pt': online_pt_spend, 'essential_spend_pt': essential_pt_spend, 'normal_income_pt': normal_pt_income, 'salary_income_pt': salary_pt_income } print("load data for analyze ==> success") print("-"*30) return (data_analyze)