From 02f719d20695bf0e8b56ffc1272f0c41f8c1525d Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Wed, 18 Aug 2021 20:23:47 -0400 Subject: [PATCH] Working on data importing. Mainly for IDAA membership. --- app/routers/importing.py | 77 ++++++++++++++++++++++++++++++---------- 1 file changed, 58 insertions(+), 19 deletions(-) diff --git a/app/routers/importing.py b/app/routers/importing.py index c506c75..57395fb 100644 --- a/app/routers/importing.py +++ b/app/routers/importing.py @@ -495,58 +495,93 @@ async def importing_person_data_v2_membership( address_id = person_rec.get('address_id', None) user_id = person_rec.get('user_id', None) membership_person_id = person_rec.get('membership_person_id', None) + log.info(f'Found membership_person_id: {membership_person_id}') else: continue membership_person_data = {} membership_type_person_data = {} - membership_person_data['lu_membership_person_status_id'] = None # expiration is > now - membership_type_person_data['lu_membership_type_person_status_id'] = None # expiration is > now - membership_person_data['first_approved_on'] = record.get('membership_join_date', None) - membership_type_person_data['first_approved_on'] = record.get('membership_join_date', None) - membership_person_data['first_start_on'] = record.get('membership_join_date', None) - membership_type_person_data['first_start_on'] = record.get('membership_join_date', None) + # datetime.datetime.strptime(date_time_str, '%m/%d/%Y') + + membership_person_data['first_approved_on'] = datetime.datetime.strptime(record.get('membership_join_date', None), '%m/%d/%Y') + # membership_type_person_data['first_approved_on'] = datetime.datetime.strptime(record.get('membership_join_date', None), '%m/%d/%Y') + membership_person_data['first_start_on'] = datetime.datetime.strptime(record.get('membership_join_date', None), '%m/%d/%Y') + membership_type_person_data['first_start_on'] = datetime.datetime.strptime(record.get('membership_join_date', None), '%m/%d/%Y') if membership_last_renewal_date := record.get('membership_last_renewal_date', None): - membership_person_data['start_on'] = membership_last_renewal_date - membership_type_person_data['start_on'] = membership_last_renewal_date + membership_person_data['start_on'] = datetime.datetime.strptime(membership_last_renewal_date, '%m/%d/%Y') + membership_type_person_data['start_on'] = datetime.datetime.strptime(membership_last_renewal_date, '%m/%d/%Y') else: - membership_person_data['start_on'] = record.get('membership_join_date', None) - membership_type_person_data['start_on'] = record.get('membership_join_date', None) - membership_person_data['end_on'] = record.get('membership_expiration_date', None) - membership_type_person_data['end_on'] = record.get('membership_expiration_date', None) - membership_person_data['last_end_on'] = record.get('membership_expiration_date', None) - membership_type_person_data['last_end_on'] = record.get('membership_expiration_date', None) + membership_person_data['start_on'] = datetime.datetime.strptime(record.get('membership_join_date', None), '%m/%d/%Y') + membership_type_person_data['start_on'] = datetime.datetime.strptime(record.get('membership_join_date', None), '%m/%d/%Y') + membership_person_data['end_on'] = datetime.datetime.strptime(record.get('membership_expiration_date', None), '%m/%d/%Y') + membership_type_person_data['end_on'] = datetime.datetime.strptime(record.get('membership_expiration_date', None), '%m/%d/%Y') + membership_person_data['last_end_on'] = datetime.datetime.strptime(record.get('membership_expiration_date', None), '%m/%d/%Y') + membership_type_person_data['last_end_on'] = datetime.datetime.strptime(record.get('membership_expiration_date', None), '%m/%d/%Y') + + current_datetime = datetime.datetime.now() + if membership_person_data['end_on'] >= current_datetime: + membership_person_data['lu_membership_person_status_id'] = 5 # 5 = active; expiration is > now + membership_type_person_data['lu_membership_type_status_id'] = 5 # 5 = active; expiration is > now + else: + membership_person_data['lu_membership_person_status_id'] = 7 # 7 = inactive; expiration is < now + membership_type_person_data['lu_membership_type_status_id'] = 7 # 7 = inactive; expiration is > now + # membership_type_person_data['membership_person_id'] = membership_person_id if membership_type_name == 'Al-Anon Member': membership_type_person_data['membership_type_id'] = 6 membership_type_person_data['product_id'] = 13 membership_person_data['level'] = 1 - elif membership_type_name == 'Annual Contribution': # Unsure... making affililate + membership_type_person_data['level'] = 1 + elif membership_type_name == 'Annual Contribution': # Unsure... making affiliate membership_type_person_data['membership_type_id'] = 8 membership_type_person_data['product_id'] = 13 membership_person_data['level'] = 3 + membership_type_person_data['level'] = 3 elif membership_type_name == 'Doctoral Qualifying Member': membership_type_person_data['membership_type_id'] = 5 membership_type_person_data['product_id'] = 4 membership_person_data['level'] = 1 + membership_type_person_data['level'] = 1 elif membership_type_name == 'Student Member': membership_type_person_data['membership_type_id'] = 7 membership_type_person_data['product_id'] = 14 membership_person_data['level'] = 1 + membership_type_person_data['level'] = 1 if membership_person_id: # Update the membership records + membership_person_data['id'] = membership_person_id # sql_update() # UPDATE membership_person + log.info('UPDATE membership_person...') if membership_person_obj_up_result := sql_update(data=membership_person_data, table_name='membership_person'): log.debug(membership_person_obj_up_result) else: log.warning(membership_person_obj_up_result) - continue # Something unexpected may have happened + # continue # Something unexpected may have happened # sql_update() # UPDATE membership_type_person + log.info('UPDATE membership_type_person...') + data = {} + data['membership_person_id'] = membership_person_id + sql = f""" + SELECT * + FROM `v_membership_person` AS `membership_person` + WHERE membership_person.id = :membership_person_id + ORDER BY `membership_person`.created_on DESC, `membership_person`.updated_on DESC + LIMIT 1; + """ + if membership_person_rec_result := sql_select(data=data, sql=sql): + # Pull out IDs of existing person record + log.debug('Found one record') + membership_person_rec = membership_person_rec_result + membership_type_person_id = membership_person_rec.get('membership_type_person_id', None) + log.info(f'Found membership_type_person_id: {membership_type_person_id}') + else: + continue + membership_type_person_data['id'] = membership_type_person_id if membership_type_person_obj_up_result := sql_update(data=membership_type_person_data, table_name='membership_type_person'): log.debug(membership_type_person_obj_up_result) else: @@ -558,15 +593,17 @@ async def importing_person_data_v2_membership( membership_person_data['user_id'] = user_id # sql_insert() # INSERT new membership_person + log.info('INSERT new membership_person...') if membership_person_obj_in_result := sql_insert(data=membership_person_data, table_name='membership_person'): log.debug(membership_person_obj_in_result) membership_person_id = membership_person_obj_in_result # Should be an int membership_person_new = True # Need to UPDATE this record after the membership type person data is processed else: log.warning(membership_person_obj_in_result) - continue # Something unexpected may have happened + # continue # Something unexpected may have happened # sql_insert() # INSERT new membership_type_person link using membership_person_id + log.info('INSERT new membership_type_person link using membership_person_id...') membership_type_person_data['membership_person_id'] = membership_person_id if membership_type_person_obj_in_result := sql_insert(data=membership_type_person_data, table_name='membership_type_person'): log.debug(membership_type_person_obj_in_result) @@ -574,10 +611,12 @@ async def importing_person_data_v2_membership( membership_type_person_new = True # Need to UPDATE this record after the membership type person data is processed else: log.warning(membership_type_person_obj_in_result) - continue # Something unexpected may have happened + # continue # Something unexpected may have happened membership_person_data['membership_type_person_id'] = membership_type_person_id # sql_update() # UPDATE membership_person with new membership_type_person_id + log.info('UPDATE membership_person with new membership_type_person_id...') + membership_person_data['id'] = membership_person_id if membership_person_obj_up_result := sql_update(data=membership_person_data, table_name='membership_person'): log.debug(membership_person_obj_up_result) else: @@ -590,7 +629,7 @@ async def importing_person_data_v2_membership( person_data_min['membership_type_person_id'] = membership_type_person_id person_data_min['membership_type_name'] = membership_type_name person_data_li.append(person_data_min) - log.debug(f"Record processed: {person_id} {person_data['full_name']}") + log.debug(f"Record processed: {person_id} {record['email']}") # log.debug('*** *** *** *** END TEST RUN *** *** *** ***') # break