您在此处:
InsPolicyService:createPolicyVersion
使用此服务创建现有保单的新版本,同时保持现有保单记录不变。
工作原理
-
获取当前策略的
assetId或policyId,以及inputKey指示的 JSON。 -
创建原始策略的克隆。
-
如果存在现有付款计划,服务会更新付款计划,并在背书生效日期创建付款计划条目。如果
useIsPaidFlag为真,则没有交易(其状态字段为Valid,isPaid字段未选中)的所有未来付款计划条目(从生效日期开始)都会根据保费、税和费用的较新值进行更新。新的付款计划条目包含根据新的保费、税款和费用以及更新的付款计划条目调整的保费、税款和费用值。此外,每个付款计划条目中的保单组件的缴款记录也会更新。 -
该服务使用以前的保单的保费计算方法、付款类型和保费频率,以及新保单的定期总保费、定期总费用和定期总税额来生成修改后的付款计划。除了创建事务之外,事务细分数据会填充到事务详细信息对象中。此对象存储有关每个资产、参与者或承保范围在保费、税和费用方面对交易总额的贡献率的数据。仅显示保费、税或费用至少有一个值大于零的资产、参与者和承保范围。
备注 保费计算方法、付款类型和保费频率不会从以前的保单复制,必须通过 JSON 作为输入传递到服务。 -
如果
includeRevenueSchedule设置为真,它会调用收入计划服务来修改收入计划。 -
如果这是此策略的第一次修改,服务会使用相同
assetId标记originalVersionId__c和previousVersionId__c。如果这不是此策略的首次修改,服务会将OriginalVersionId__c转移到新版本,并在新策略中将以前的assetId戳到PreviousVersionId__c。 -
如果
taxesAndFees、taxAmount和/或feeAmount节点包含在输入 JSON 中,则会在新版本的策略上创建和按比例分配相应的税/费字段和/或记录。 -
如果适用,将为付款调整创建 InsurancePolicyTransaction。
-
如果
calculateCommission是true,服务会调用InsurancePolicyService.calculateAndSaveCommission,这将为InsCommissionService.calculate和InsCommissionService.saveCommissions服务准备输入。计算服务处理输入后,保存服务将计算值存储在TotalCommissionAmount中,然后汇总该值并将其添加到原始策略的TotalCommissionAmount。 - 如果
getquotedetail服务中的disableAttributeCategories标志设置为真,服务将从响应中忽略 attributeCategory 节点,createPolicyVersion服务无法创建策略条款。要确保createPolicyVersion服务创建策略条款,请将getQuoteDetail服务中的disableAttributeCategories标志设置为假。
税费
以下是此服务在税费方面的工作方式:
-
如果在 JSON 记录上指定了
taxesAndFees字段,则taxesAndFees列表中的每个项目都会保留相应的AssetPricingAdjustment__c记录。 -
如果在 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选项(见下文)设置为真,并且新保单版本具有关联的税费,则创建的交易上的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"
]
}