asset warranty plus warranty term update
This commit is contained in:
@ -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)
|
||||
|
@ -0,0 +1 @@
|
||||
python .\FillServiceContractFields.py
|
Reference in New Issue
Block a user