diff --git a/main.py b/main.py index 3f0ab38..faebe43 100644 --- a/main.py +++ b/main.py @@ -42,6 +42,7 @@ class User(Base): FirstName = Column(String) LastName = Column(String) IsDeleted = Column(BOOLEAN) + Email = Column(String) class State(Base): @@ -60,48 +61,52 @@ Session = sessionmaker(bind=engine) session = Session() # Get list of active users -for user in session.query(User).filter(User.ID == 14): +for user in session.query(User).filter(User.IsDeleted == 0).filter(User.Email.notlike('%gll.com')): ActiveUser.append([user.ID, user.FirstName, user.LastName]) # loop through each user in the ActiveUser array. Combine Users First/Last name for the filename and # the first letter/last name combo for username for each in ActiveUser: - # - FileName = each[1] + ' ' + each[2] - UserName = each[1][0]+each[2] + if session.query(Address).filter(UserAddress.UserId == each[0]).first() is not None: + FileName = each[1] + ' ' + each[2] + UserName = (each[1][0]+each[2]).upper() -# Setup XLS workbook and sheet - wb = xlwt.Workbook() - ws = wb.add_sheet('Addresses') + print('====================='+FileName+'========================') -# Write header row - ws.write(0, 0, 'ACTION') - ws.write(0, 1, 'BU_ID') - ws.write(0, 2, 'LOGIN_ID') - ws.write(0, 3, 'PA_NAME') - ws.write(0, 4, 'PA_NAME2') - ws.write(0, 5, 'LINE1') - ws.write(0, 6, 'LINE2') - ws.write(0, 7, 'LINE3') - ws.write(0, 8, 'CITY') - ws.write(0, 9, 'STATE') - ws.write(0, 10, 'ZIP') - ws.write(0, 11, 'COUNTRY') - ws.write(0, 12, 'PHONE_NR') - ws.write(0, 13, 'SHIP_TO_ATTN_TX') - ws.write(0, 14, 'PROFILE_TYPE') + # Setup XLS workbook and sheet + wb = xlwt.Workbook() + ws = wb.add_sheet('Addresses') + + # Write header row + ws.write(0, 0, 'ACTION') + ws.write(0, 1, 'BU_ID') + ws.write(0, 2, 'LOGIN_ID') + ws.write(0, 3, 'PA_NAME') + ws.write(0, 4, 'PA_NAME2') + ws.write(0, 5, 'LINE1') + ws.write(0, 6, 'LINE2') + ws.write(0, 7, 'LINE3') + ws.write(0, 8, 'CITY') + ws.write(0, 9, 'STATE') + ws.write(0, 10, 'ZIP') + ws.write(0, 11, 'COUNTRY') + ws.write(0, 12, 'PHONE_NR') + ws.write(0, 13, 'SHIP_TO_ATTN_TX') + ws.write(0, 14, 'PROFILE_TYPE') -# For each username we're filtering the UserAddress table by their userID and adding it to the UserAddressID array. -# The UserAddressID array is then looped through and for each AddressID we pull the Address information, -# State Information, and Country Information and combine it into one result + # For each username we're filtering the UserAddress table by their userID and adding it to the UserAddressID array. + # The UserAddressID array is then looped through and for each AddressID we pull the Address information, + # State Information, and Country Information and combine it into one result + + for ua in session.query(UserAddress).filter(UserAddress.UserId == each[0]): + UserAddressID.append(ua.AddressId) - for ua in session.query(UserAddress).filter(UserAddress.UserId == each[0]): - UserAddressID.append(ua.AddressId) for aid in UserAddressID: + # for cn in session.query(Address, State, Country).join(State, Address.StateId == State.Id).join(Country, Address.CountryId == Country.Id).filter(Address.Id == aid): for cn in session.query(Address, State, Country).join(State, Address.StateId == State.Id).join(Country, Address.CountryId == Country.Id).filter(Address.Id == aid): # Combine all the required fields into one variable for simplicity - AddresssBookLine = UserName, cn[0].CompanyName, cn[0].Line1, cn[0].Line2, cn[0].City, cn[1].StateName, cn[0].PostalCode, cn[2].CountryName, cn[0].PhoneNumber,cn[0].ContactName + AddresssBookLine = UserName, cn[0].CompanyName, cn[0].Line1, cn[0].Line2, cn[0].City, cn[1].StateName, cn[0].PostalCode, cn[0].CountryId, cn[0].PhoneNumber, cn[0].ContactName, cn[2].CountryName # Loop through each row and populate the variable columns with the corresponding AddressBookLine element ws.write(LineCount, 2, AddresssBookLine[0]) ws.write(LineCount, 3, AddresssBookLine[1]) @@ -110,12 +115,17 @@ for each in ActiveUser: ws.write(LineCount, 8, AddresssBookLine[4]) ws.write(LineCount, 9, AddresssBookLine[5]) ws.write(LineCount, 10, AddresssBookLine[6]) - ws.write(LineCount, 11, AddresssBookLine[7]) + if AddresssBookLine[7] == 1: + ws.write(LineCount, 11, 'USA') + else: + ws.write(LineCount, 11, AddresssBookLine[10][:3]) ws.write(LineCount, 12, AddresssBookLine[8]) ws.write(LineCount, 13, AddresssBookLine[9]) LineCount = LineCount + 1 print(LineCount) - UserAddressID = [] - LineCount = 1 - wb.save(FileName+'.xls') + UserAddressID = [] + LineCount = 1 + wb.save('AddressBooks/'+FileName+'.xls') + else: + print('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! NONE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')