asset warranty plus warranty term update

This commit is contained in:
Rene Kaßeböhmer
2025-05-19 15:12:23 +02:00
parent d5742d7d30
commit b675a38baf
31 changed files with 77 additions and 37 deletions

View File

@ -0,0 +1,60 @@
import pandas as pd
read_df_sc = pd.read_csv('../15_insert_servicecontract/ServiceCOntract_beforetransform.csv', header=0, keep_default_na=False, dtype=str)
read_df_pb2 = pd.read_csv('../12_insert_pricebook2_and_pricebookentries/target/Pricebook2_insert_target.csv', header=0, keep_default_na=False, dtype=str)
read_df_sct = pd.read_csv('../13_insert_servicecontracttemplates_dummies/target/ServiceContract_insert_target.csv', header=0, keep_default_na=False, dtype=str)
reindex_columns_sc = ['PKey__c', 'Name', 'TemplateId__r.PKey__c','Status','BillingCountryCode','Term','EndDate','StartDate','AccountId','Service_Recipient__c','IoT_Registration_Status__c','Pricebook2.Name','Name']
reindex_columns_pb2 = ['Brand__c','Business_Type__c','Country__c','Errors','Id','IsActive','Name']
reindex_columns_sct = ['BillingCountryCode','Errors','Id','IsTemplate__c','Name','PKey__c','Pricebook2Id','Term']
# Reindex the columns to match the desired format
df_sc = read_df_sc.reindex(reindex_columns_sc, axis=1)
df_pb2 = read_df_pb2.reindex(reindex_columns_pb2, axis=1)
df_sct = read_df_sct.reindex(reindex_columns_sct, axis=1)
print(df_sc)
print(df_pb2)
print(df_sct)
#
# Merge df_sc with df_pb2 including Id based on Pricebook2.Name
merged_df_sc = pd.merge(df_sc,
df_pb2[['Id', 'Name']],
left_on='Pricebook2.Name',
right_on='Name',
how='left')
merged_df_sc = pd.merge(merged_df_sc,
df_sct[['PKey__c', 'Id']],
left_on='TemplateId__r.PKey__c',
right_on='PKey__c',
how='left')
#drop External Reference
merged_df_sc = merged_df_sc.drop('Pricebook2.Name', axis=1)
merged_df_sc = merged_df_sc.drop('Name_y', axis=1)
merged_df_sc = merged_df_sc.drop('TemplateId__r.PKey__c', axis=1)
merged_df_sc = merged_df_sc.drop('PKey__c_y', axis=1)
print(merged_df_sc)
#Rename columns
merged_df_sc.columns = ['PKey__c','Status','BillingCountryCode','Term','EndDate','StartDate','AccountId','Service_Recipient__c','IoT_Registration_Status__c','Name','Pricebook2Id', 'TemplateId__c']
# Convert StartDate and EndDate to datetime
merged_df_sc['StartDate'] = pd.to_datetime(merged_df_sc['StartDate'])
merged_df_sc['EndDate'] = pd.to_datetime(merged_df_sc['EndDate'])
# Calculate Term in months
merged_df_sc['Term'] = ((merged_df_sc['EndDate'] - merged_df_sc['StartDate']) / pd.Timedelta(days=30.44)).round().astype(int)
# Convert dates back to string format (YYYY-MM-DD)
merged_df_sc['StartDate'] = merged_df_sc['StartDate'].dt.strftime('%Y-%m-%d')
merged_df_sc['EndDate'] = merged_df_sc['EndDate'].dt.strftime('%Y-%m-%d')
merged_df_sc = merged_df_sc.drop('Status', axis=1)
#safe csv
merged_df_sc.to_csv('../15_insert_servicecontract/ServiceContract.csv', index=False)

View File

@ -0,0 +1 @@
python .\FillServiceContractFields.py