visitoraddressid fix. switched to parentid of address

This commit is contained in:
Rene Kaßeböhmer
2025-04-30 09:12:42 +02:00
parent f832310344
commit 3c824e5d4b
2 changed files with 48 additions and 9 deletions

View File

@ -341,13 +341,19 @@ columns_pricebookentry = ['IsActive', 'Product2.Product_Code__c', 'UnitPrice', '
df_pricelistitem.columns = columns_pricebookentry df_pricelistitem.columns = columns_pricebookentry
##--------------------------------------------------------------------------## ##--------------------------------------------------------------------------##
## Location (Van) ## Location (Van) + Address and Parent Location
##--------------------------------------------------------------------------## ##--------------------------------------------------------------------------##
# Create van locations from resource assignments # Create van locations from resource assignments
van_columns = ['Id', 'City__c', 'Country__c', 'Street__c', 'PostalCode__c', 'GeoY__c', 'GeoX__c', 'Resource__r.Employee__r.Name'] van_columns = ['Id', 'City__c', 'Country__c', 'Street__c', 'HouseNo__c', 'PostalCode__c', 'GeoY__c', 'GeoX__c', 'Resource__r.Employee__r.Name']
van_address_columns = ['City__c', 'Country__c', 'Street__c', 'HouseNo__c', 'PostalCode__c', 'GeoY__c', 'GeoX__c', 'ExternalReference']
van_df = df_resourceassignment[van_columns].copy() van_df = df_resourceassignment[van_columns].copy()
van_df['Street__c'] = (
van_df['Street__c'].astype(str) + ' ' +
van_df['HouseNo__c'].astype(str)
)
# Create PKey__c for vans # Create PKey__c for vans
van_df['ExternalReference'] = ( van_df['ExternalReference'] = (
van_df['Street__c'].astype(str) + ', ' + van_df['Street__c'].astype(str) + ', ' +
@ -356,9 +362,6 @@ van_df['ExternalReference'] = (
van_df['Country__c'].astype(str) van_df['Country__c'].astype(str)
) )
# Filter vans where ExternalReference does not exist in parent_df
van_df = van_df[~van_df['ExternalReference'].isin(parent_df['Name'])]
# Add van records to child_df # Add van records to child_df
if not van_df.empty: if not van_df.empty:
van_records = pd.DataFrame({ van_records = pd.DataFrame({
@ -372,6 +375,41 @@ if not van_df.empty:
}) })
child_df = pd.concat([child_df, van_records], ignore_index=True) child_df = pd.concat([child_df, van_records], ignore_index=True)
# Address and Parent Location for vans
van_address_df = van_df[van_address_columns].copy()
van_parenlocation_df = van_df[['City__c', 'Country__c', 'Street__c', 'PostalCode__c']].copy()
# For van addresses
van_address_df['Country'] = van_address_df['Country__c'].map(country_mapping)
van_address_df['Parent.Name'] = van_address_df['ExternalReference']
van_address_df = van_address_df.drop('HouseNo__c', axis=1)
print(van_address_df)
van_address_df.columns = ['City', 'CountryCode', 'Street', 'PostalCode', 'Latitude', 'Longitude', 'PKey__c', 'Country', 'Parent.Name']
print(van_address_df)
# Only add addresses that don't already exist
new_addresses = van_address_df[~van_address_df['PKey__c'].isin(address_df['PKey__c'])]
address_df = pd.concat([address_df, new_addresses], ignore_index=True)
# For van parent locations
van_parenlocation_df['Name'] = (
van_parenlocation_df['Street__c'].astype(str) + ', ' +
van_parenlocation_df['PostalCode__c'].astype(str) + ' ' +
van_parenlocation_df['City__c'].astype(str) + ', ' +
van_parenlocation_df['Country__c'].astype(str)
)
van_parenlocation_df = van_parenlocation_df[['Name']].copy()
van_parenlocation_df['DuplicateCheck__c'] = 'false'
van_parenlocation_df['IsInventoryLocation'] = 'false'
van_parenlocation_df['IsMobile'] = 'false'
van_parenlocation_df['LocationType'] = 'Site'
# Only add parent locations that don't already exist
new_parent_locations = van_parenlocation_df[~van_parenlocation_df['Name'].isin(parent_df['Name'])]
parent_df = pd.concat([parent_df, new_parent_locations], ignore_index=True)
# Write each DataFrame to a separate CSV file # Write each DataFrame to a separate CSV file
address_df.to_csv('../4_upsert_address_and_parent_location/Address.csv', index=False) address_df.to_csv('../4_upsert_address_and_parent_location/Address.csv', index=False)
parent_df.to_csv('../4_upsert_address_and_parent_location/Location.csv', index=False) parent_df.to_csv('../4_upsert_address_and_parent_location/Location.csv', index=False)

View File

@ -2,11 +2,12 @@
"allOrNone": true, "allOrNone": true,
"objects": [ "objects": [
{ {
"query": "SELECT Id, Pkey__c FROM Address WHERE CountryCode = 'NL' AND PKey__c != null", "query": "SELECT Id, ParentId, PKey__c FROM Address WHERE CountryCode = 'NL' AND PKey__c != null",
"operation": "Readonly", "operation": "Readonly",
"externalId": "ParentId",
"master": false "master": false
},{ },{
"query": "SELECT Id, Name, VisitorAddressId FROM Location WHERE VisitorAddressId = null", "query": "SELECT Id, Name, VisitorAddressId FROM Location WHERE VisitorAddressId = null AND Name LIKE '%NL' AND ParentLocationId = null",
"operation": "Update", "operation": "Update",
"master": true, "master": true,
"beforeUpdateAddons": [ "beforeUpdateAddons": [
@ -19,7 +20,7 @@
"alias": "sourceAddressIdFromPkey", "alias": "sourceAddressIdFromPkey",
"sourceObject": "Address", "sourceObject": "Address",
"sourceField": "Id", "sourceField": "Id",
"lookupExpression": "source.PKey__c == target.Name", "lookupExpression": "source.ParentId == target.Id",
"lookupSource": "source" "lookupSource": "source"
} }
], ],