您位於此處:
InsPolicyService:createPolicyVersion
使用此服務可建立現有原則的新版本,同時將現有原則記錄保持原狀。
運作方式
-
取得目前原則的
assetId或policyId,以及由inputKey指示的 JSON。 -
建立原始原則的複本。
-
如果有現有的付款排程,則服務會更新付款排程,並在贊同生效日期建立付款排程項目。如果
useIsPaidFlag為 true,則所有未進行交易的未來付款排程項目 (從生效日期開始) (其狀態欄位為Valid且未勾選isPaid欄位) 都會根據較新的保費、稅金和費用值進行更新。新付款排程項目包含根據新保費、稅金和費用,以及更新的付款排程項目,調整的保費、稅金和費用值。此外,每個付款排程項目中保單元件的貢獻記錄也會更新。 -
服務使用先前「保單」的「保費計算方法」、「付款類型」和「保費頻率」,以及新「保單」的「期限總保費」、「期限總費用」和「期限總稅」來產生修改後的付款排程。除了建立交易之外,交易細目資料也會填入交易詳細資料物件。此物件會儲存關於每個資產、參與者或涵蓋範圍在保費、稅金和費用的總交易金額貢獻的資料。僅會顯示保費、稅金或費用的至少一個值大於零的資產、參與者和涵蓋範圍。
備註 「保費計算方法」、「付款類型」和「保費頻率」不會從先前的原則複製,且必須透過 JSON 作為服務的輸入傳遞給服務。 -
如果
includeRevenueSchedule設定為 True,則會呼叫收入排程服務以修改收入排程。 -
如果這是此原則的第一次修改,則服務會以相同的
assetId標記originalVersionId__c和previousVersionId__c。如果不是此原則的第一次修改,則服務會將OriginalVersionId__c移轉至新版本,並將先前的assetId標記為新原則中的PreviousVersionId__c。 -
如果輸入 JSON 中包含
taxesAndFees、taxAmount和/或feeAmount節點,則會在新版原則上建立和按比例分配對應的稅金/費用欄位和/或記錄。 -
如果適用,將建立 InsurancePolicyTransaction 以進行付款調整。
-
如果
calculateCommission為true,則服務會呼叫InsurancePolicyService.calculateAndSaveCommission,這會為InsCommissionService.calculate和InsCommissionService.saveCommissions服務準備輸入。計算服務處理輸入後,儲存服務會將計算值儲存在TotalCommissionAmount中,然後累計值並將其新增至原始原則的TotalCommissionAmount。 - 如果
getquotedetail服務中的disableAttributeCategories標記設為 true,則服務會從回應中省略 attributeCategory 節點,且createPolicyVersion服務無法建立原則字詞。若要確保createPolicyVersion服務建立原則字詞,請將getQuoteDetail服務中的disableAttributeCategories標記設定為 false。
稅金與費用
以下是此服務的稅金與費用運作方式:
-
如果在 JSON 記錄上指定
taxesAndFees欄位,則對應的AssetPricingAdjustment__c記錄會保留在taxesAndFees清單中的每個項目。 -
如果在 JSON 記錄上指定
taxAmount欄位,則TaxAmount__c欄位會設定為已建立AssetItem物件上taxAmount欄位的值。 -
如果在 JSON 記錄上指定
feeAmount欄位,則FeeAmount__c欄位會設定為已建立AssetItem上的feeAmount欄位值。
針對目前 (新建立的原則):
-
如果目前原則有
TotalTaxAmount__c,則該值會按生效與結束日期進行比例分配,並在TotalTaxForTerm__c欄位上設定。 -
如果目前原則有
TotalFeeAmount__c,則該值會按生效與結束日期進行比例分配,並在TotalFeeForTerm__c欄位上設定。 -
如果目前原則上的
AssetItem有TaxAmount__c,則該值會按生效與結束日期比例分配,並在ProratedTaxAmount__c欄位上設定。 -
如果目前原則上的
AssetItem有FeeAmount__c,則該值會按生效與結束日期比例分配,並在ProratedFeeAmount__c欄位上設定。
針對已建立的原則,以下是稅金與費用的傳遞方式:
-
如果先前的原則有
TotalTaxAmount__c,則該值會按新生效與結束日期進行比例分配,並在TotalTaxForTerm__c欄位上設定。 -
如果先前的原則有
TotalFeeAmount__c,則該值會按新生效與結束日期進行比例分配,並在TotalFeeForTerm__c欄位上設定。 -
如果 AssetItem 欄位有
TaxAmount__c,則該值會按新生效與結束日期比例分配,並在ProratedTaxAmount__c欄位上設定。 -
如果先前原則上的
AssetItem欄位有FeeAmount__c,則該值會按新生效與結束日期比例分配,並在ProratedFeeAmount__c欄位上設定。
最後,如果 createTransaction 選項 (請參閱下方) 設定為 True,且新原則版本具有相關聯的稅金和費用,則建立的交易上的 TaxAmount__c 和 FeeAmount__c 欄位會設定為新 (目前) 原則與先前原則的 TotalTaxForTerm__c 和 TotalFeeForTerm__c 之間的差異。
遠端選項
輸入 JSON
此服務會尋找在產品 JSON 中指定的 inputKey。
"policyJson": {
"productConfigurationDetail": {
"insuredItems": {
"Auto": [{
"instanceKey": "2015 Lexus LX250",
"autoLicNum": "Lexus",
"autoModel": "LX150",
"autoYear": 2015,
"BodyClass": "Sedan/Saloon",
"VehicleType": "PASSENGER CAR",
"isPrimary": true
"isParent": true
},
{
"instanceKey": "2006 Honda Odyssey",
"autoLicNum": "Honda",
"autoModel": "Odyssey",
"autoYear": 2006,
"BodyClass": "Minivan",
"VehicleType": "MULTIPURPOSE PASSENGER VEHICLE (MPV)",
"isPrimary": true
"isParent": true
},
{
"instanceKey": "2018 530 BMW",
"autoLicNum": "530",
"autoModel": "BMW",
"autoYear": 2018,
"BodyClass": "Sedan/Saloon",
"VehicleType": "PASSENGER CAR",
"isPrimary": true
"isParent": true
},
{
"instanceKey": "2016 Camry Toyota",
"autoLicNum": "Camry",
"autoModel": "Toyota",
"autoYear": 2016,
"BodyClass": "Sedan/Saloon",
"VehicleType": "PASSENGER CAR",
"isPrimary": true
"isParent": true
}
],
"Driver": [{
"AGE": 20,
"instanceKey": "Joan Smith",
"FN": "Joan",
"GENDER": "Female",
"LN": "Smith",
"isPrimary": false
"isParent": false
},
{
"AGE": 30,
"instanceKey": "John Smith",
"FN": "John",
"GENDER": "Male",
"LN": "Smith",
"isPrimary": false
"isParent": false
},
{
"AGE": 30,
"instanceKey": "Robert Henderson",
"FN": "Robert",
"GENDER": "Male",
"LN": "Henderson",
"isPrimary": false
"isParent": false
},
{
"AGE": 20,
"instanceKey": "Kinsey Schell",
"FN": "Kinsey",
"GENDER": "Female",
"LN": "Schell",
"isPrimary": false
"isParent": false
}
]
},
"accountId": "001f400000RrQSrAAN"
}如果 isCreatingPolicyTerms 遠端選項設定為 true,則會包含 policyTermIds 節點。以下是 policyTermIds 節點的範例:
{
"policyId": "02i6g000000h110AAA",
"policyTermIds": [
"a5X6g000001LeUUEA0",
"a5X6g000001LeUVEA0",
"a5X6g000001LeUWEA0",
"a5X6g000001LeUXEA0",
"a5X6g000001LeUYEA0",
"a5X6g000001LeUZEA0",
"a5X6g000001LeUaEAK",
"a5X6g000001LeUbEAK",
"a5X6g000001LeUcEAK",
"a5X6g000001LeUdEAK",
"a5X6g000001LeUeEAK",
"a5X6g000001LeUfEAK"
]
}