Вы находитесь здесь:
InsPolicyService:getModifiedPolicy
Используйте эту службу, когда пользователь вносит изменения в застрахованные элементы или застрахованных лиц в существующем полисе. Служба принимает изменения, внесенные пользователем, и возвращает измененные данные полиса, включая пересчитанную цену.
Метод: getModifiedPolicy
Обновления предоставляются посредством двух узлов ввода: modifiedItems и newInsuredItemsRelationships.
Принцип работы
-
Служба принимает
assetIdилиpolicyIdполитики для изменения. -
Берет трансформированный JSON, содержащий карту застрахованных элементов. Это карта застрахованных элементов и сторон в целевом полисе, а также всех измененных атрибутов. Это также может включать новые застрахованные элементы, которые в данный момент не существуют в целевом полисе.
-
Обновляет значения атрибутов застрахованного элемента и застрахованной стороны в продукте JSON на значения, указанные в карте застрахованных элементов. Добавляет новые застрахованные элементы в продукт JSON.
Примечание Добавление дополнительных покрытий к застрахованным элементам не поддерживаетсяInsPolicyService:getModifiedPolicy. -
Обрабатывает любые новые связи между застрахованными элементами или застрахованными сторонами, указанные в ключе
newInsuredItemsRelationships, и добавляет дочерние продукты, при необходимости, в продукт JSON. Например, новое связывание водителя с автомобилем приводит к созданию нового дочернего продукта под определенным экземпляром автомобиля в продукте JSON.СоветМожно указать только новые связи; существующие связи не могут быть удалены с информацией в ключе.
-
Использует параметры
aggByKey,effectiveDate,filtersиincludeInputKeyдля повторной оценки полиса и установки новых цен в продукте JSON. -
При расчете налогов и сборов вычисляет только налоги и сборы для новых записей. Например, если в полис добавляется дополнительное авто (застрахованный элемент), сервис рассчитывает новые налоги и платежи для нового авто. Сводный налог и значения платежей в полисе обновляются.
При отсутствии новых застрахованных элементов или покрытий или добавленных в полис, налоги и платежи не пересчитываются.
-
Возвращает продукт JSON с измененными сведениями. Узлы
primaryPartyиotherPartiesсоздаются/обновляются, если дочерний продукт является застрахованной стороной.ПримечаниеЕсли
primaryPartyеще не существует,primaryPartyсоздается на основе первой новой взаимосвязи, указанной вnewInsuredItemsRelationshipsдля родительского экземпляра. Потом другие новые взаимосвязи вnewInsuredItemsRelationshipsродительского экземпляра добавляются в массивotherParties.Однако, если
primaryPartyуже существует, первая новая взаимосвязь, указанная вnewInsuredItemsRelationshipsдля родительского экземпляра, а также все другие новые взаимосвязи для этого родительского экземпляра добавляются в массивotherParties.Этот JSON содержит поля
taxesAndFees,taxAmount,feeAmount,totalTaxForTermDiff,иtotalFeeForTermDiffв JSON политики, если целевая политика содержит налоги и/или платежи.
Все удаленные параметры, используемые в службе InsProductService:getRatedProducts, также могут использоваться в этой службе.
Вводные данные
Ввод |
Описание |
|---|---|
|
Сведения об обновленных застрахованных элементах или застрахованных сторонах). |
|
Новые связи между застрахованными элементами и другими элементами или застрахованными сторонами, например, добавление водителя к автомобилю или добавление ювелирных изделий к дому. |
Удаленные параметры
JSON ввода
Ниже указан пример указания ключей modifiedItems и newInsuredItemsRelationships в карте ввода. modifiedItems должны содержать массив экземпляров для каждого кода продукта с данными атрибутов каждого экземпляра. newInsuredItemsRelationships должна содержать массив, где каждый элемент является соотнесением, определяющим взаимосвязь между дочерним ( instanceKey) и родительским (parentInstanceKey) объектом.
"modifiedItems": {
"DRIVER": [{
"LN": "Smith",
"GENDER": "Female",
"FN": "Joan",
"instanceKey": "Joan Smith",
"AGE": 20
},
{
"LN": "Smith",
"GENDER": "Male",
"FN": "John",
"instanceKey": "John Smith",
"AGE": 30
},
{
"LN": "Henderson",
"GENDER": "Male",
"FN": "Robert",
"instanceKey": "Robert Henderson",
"AGE": 30
},
{
"LN": "Schell",
"GENDER": "Female",
"FN": "Kinsey",
"instanceKey": "Kinsey Schell",
"AGE": 20
}
],
"AUTO": [{
"VehicleType": "PASSENGER CAR",
"BodyClass": "Sedan/Saloon",
"autoYear": 2017,
"autoModel": "LX350",
"autoLicNum": "Lexus",
"instanceKey": "2015 Lexus LX250"
},
{
"VehicleType": "MULTIPURPOSE PASSENGER VEHICLE (MPV)",
"BodyClass": "Minivan",
"autoYear": 2006,
"autoModel": "Odyssey",
"autoLicNum": "Honda",
"instanceKey": "2006 Honda Odyssey"
},
{
"VehicleType": "PASSENGER CAR",
"BodyClass": "Sedan/Saloon",
"autoYear": 2018,
"autoModel": "BMW",
"autoLicNum": "530",
"instanceKey": "2018 530 BMW"
},
{
"VehicleType": "PASSENGER CAR",
"BodyClass": "Sedan/Saloon",
"autoYear": 2016,
"autoModel": "Toyota",
"autoLicNum": "Camry",
"instanceKey": "2016 Camry Toyota"
}
]
},
"newInsuredItemsRelationships": [
{
"instanceKey": "Joan Smith",
"parentInstanceKey": "2015 Lexus LX250"
},
{
"instanceKey": "Robert Henderson",
"parentInstanceKey": "2018 530 BMW"
}
]Вывод JSON
Служба возвращает продукт JSON со всеми изменениями и дополнениями пользователя. Она также содержит вычисленные значения priceDiff и totalPremiumForTermDiff, отображающие изменения пользователя. Для налогов и сборов также возвращаются поля totalTaxForTermDiff и totalFeeForTermDiff. Они отображаются только при расчете налогов и сборов и представляют разницу между пропорционально начисленным налогом или сбором целевой политики и пропорционально начисленным налогом или сбором измененной политики (подобно полю totalPremiumForTermDiff).
{
"totalSize" : 1,
"records" : [ {
"displaySequence" : -1,
"accountId" : "02i000000000000000",
"EffectiveEnd" : "2019-12-31T08:00:00.000+0000",
"EffectiveStart" : "2019-01-01T08:00:00.000+0000",
"Name" : "policy",
"policyNumber" : "4ec13580-2208-5109-095e-b39bdbaaeb56",
"Price" : 25.50,
"productId" : "01tRN000000LCquYAG",
"RecordTypeName__c" : "Product",
"term" : "Annual",
"TotalPremiumForTerm__c" : 25.50,
"totalSumInsured" : 19.25,
"key" : "value",
"feeAmount" : 10,
"taxAmount" : 10,
"nat_test__TotalFeeAmount__c" : 10,
"TotalFeeForTerm__c" : 10.00,
"nat_test__TotalTaxAmount__c" : 10,
"TotalTaxForTerm__c" : 10.00,
"hasAttributes" : false,
"productName" : "AutoRoot",
"ProductCode" : "AutoRoot",
"currencyCode" : "USD",
"currencySymbol" : "$",
"taxesAndFees" : [ {
"PriceListEntryName__c" : null,
"PriceListEntryId__c" : "02i000000000000002",
"isRefundable" : null,
"Id" : null,
"currencySymbol" : "$",
"currencyCode" : "USD",
"calculatedAmount" : 10,
"Amount__c" : 10,
"AdjustmentType__c" : "Tax"
}, {
"PriceListEntryName__c" : null,
"PriceListEntryId__c" : "02i000000000000003",
"isRefundable" : null,
"Id" : null,
"currencySymbol" : "$",
"currencyCode" : "USD",
"calculatedAmount" : 20,
"Amount__c" : 20,
"AdjustmentType__c" : "Fee"
} ],
"coverageCount" : 0,
"childProducts" : {
"totalSize" : 2,
"records" : [ {
"displaySequence" : -1,
"hasAttributes" : true,
"productName" : "Auto",
"ProductCode" : "Auto",
"nat_test__RecordTypeName__c" : "InsuredItemSpec",
"productId" : "01tRN000000LCqrYAG",
"Name" : "1998 Honda Civic",
"instanceKey" : "1998 Honda Civic",
"currencyCode" : "USD",
"currencySymbol" : "$",
"hasCoverages" : true,
"primaryParty" : {
"instanceKey" : "BobJones"
},
"otherParties" : [ {
"productCode" : "Driver",
"instanceKey" : "SarahJones",
"LastName" : "Jones",
"FirstName" : "Sarah"
} ],
"attributeCategories" : {
"totalSize" : 1,
"records" : [ {
"displaySequence" : 1,
"Code__c" : "Auto",
"Name" : "Auto",
"id" : "a0ZRN0000009TMm2AM",
"productAttributes" : {
"totalSize" : 3,
"records" : [ {
"code" : "Make",
"dataType" : "text",
"inputType" : "text",
"multiselect" : false,
"required" : false,
"readonly" : false,
"disabled" : false,
"filterable" : true,
"attributeId" : "a0aRN00000067pjYAA",
"label" : "Make",
"displaySequence" : -1,
"hasRules" : false,
"hidden" : false,
"cloneable" : true,
"isNotTranslatable" : false,
"values" : [ {
"readonly" : false,
"disabled" : false
} ],
"userValues" : "Honda",
"isNotAssetizable" : false
}, {
"code" : "Model",
"dataType" : "text",
"inputType" : "text",
"multiselect" : false,
"required" : false,
"readonly" : false,
"disabled" : false,
"filterable" : true,
"attributeId" : "a0aRN00000067pkYAA",
"label" : "Model",
"displaySequence" : -1,
"hasRules" : false,
"hidden" : false,
"cloneable" : true,
"isNotTranslatable" : false,
"values" : [ {
"readonly" : false,
"disabled" : false
} ],
"userValues" : "Civic",
"isNotAssetizable" : false
}, {
"code" : "ModelYear",
"dataType" : "number",
"inputType" : "number",
"multiselect" : false,
"required" : false,
"readonly" : false,
"disabled" : false,
"filterable" : true,
"attributeId" : "a0aRN00000067plYAA",
"label" : "ModelYear",
"displaySequence" : -1,
"hasRules" : false,
"hidden" : false,
"cloneable" : true,
"isNotTranslatable" : false,
"values" : [ {
"readonly" : false,
"disabled" : false
} ],
"userValues" : 1998,
"isNotAssetizable" : false
} ]
}
} ]
},
"childProducts" : {
"totalSize" : 2,
"records" : [ {
"displaySequence" : -1,
"hasAttributes" : true,
"productName" : "Driver",
"ProductCode" : "Driver",
"nat_test__RecordTypeName__c" : "InsuredPartySpec",
"productId" : "01tRN000000LCqsYAG",
"Name" : "BobJones",
"instanceKey" : "BobJones",
"currencyCode" : "USD",
"currencySymbol" : "$",
"hasCoverages" : true,
"isPrimaryChild" : true,
"attributeCategories" : {
"totalSize" : 1,
"records" : [ {
"displaySequence" : 2,
"Code__c" : "Driver",
"Name" : "Driver",
"id" : "a0ZRN0000009TMn2AM",
"productAttributes" : {
"totalSize" : 2,
"records" : [ {
"code" : "FirstName",
"dataType" : "text",
"inputType" : "text",
"multiselect" : false,
"required" : false,
"readonly" : false,
"disabled" : false,
"filterable" : true,
"attributeId" : "a0aRN00000067pmYAA",
"label" : "FirstName",
"displaySequence" : -1,
"hasRules" : false,
"hidden" : false,
"cloneable" : true,
"isNotTranslatable" : false,
"values" : [ {
"readonly" : false,
"disabled" : false
} ],
"userValues" : "Bob",
"isNotAssetizable" : false
}, {
"code" : "LastName",
"dataType" : "text",
"inputType" : "text",
"multiselect" : false,
"required" : false,
"readonly" : false,
"disabled" : false,
"filterable" : true,
"attributeId" : "a0aRN00000067pnYAA",
"label" : "LastName",
"displaySequence" : -1,
"hasRules" : false,
"hidden" : false,
"cloneable" : true,
"isNotTranslatable" : false,
"values" : [ {
"readonly" : false,
"disabled" : false
} ],
"userValues" : "Jones",
"isNotAssetizable" : false
} ]
}
} ]
}
}, {
"displaySequence" : -1,
"Id" : "01tRN000000LCqsYAG",
"Name" : "Driver",
"productId" : "01tRN000000LCqsYAG",
"productName" : "Driver",
"ProductCode" : "Driver",
"nat_test__RecordTypeName__c" : "InsuredPartySpec",
"instanceKey" : "SarahJones",
"attributeCategories" : {
"totalSize" : 0,
"records" : [ {
"displaySequence" : -1,
"Code__c" : "Driver",
"Name" : "Driver",
"id" : "a0ZRN0000009TMn2AM",
"productAttributes" : {
"totalSize" : 0,
"records" : [ {
"code" : "FirstName",
"dataType" : "text",
"inputType" : "text",
"multiselect" : false,
"required" : false,
"readonly" : false,
"disabled" : false,
"filterable" : true,
"attributeId" : "a0aRN00000067pmYAA",
"label" : "FirstName",
"displaySequence" : -1,
"hasRules" : false,
"hidden" : false,
"cloneable" : true,
"values" : [ {
"readonly" : false,
"disabled" : false
} ],
"userValues" : "Sarah",
"isNotAssetizable" : false
}, {
"code" : "LastName",
"dataType" : "text",
"inputType" : "text",
"multiselect" : false,
"required" : false,
"readonly" : false,
"disabled" : false,
"filterable" : true,
"attributeId" : "a0aRN00000067pnYAA",
"label" : "LastName",
"displaySequence" : -1,
"hasRules" : false,
"hidden" : false,
"cloneable" : true,
"values" : [ {
"readonly" : false,
"disabled" : false
} ],
"userValues" : "Jones",
"isNotAssetizable" : false
} ]
}
} ]
}
} ]
}
}, {
"displaySequence" : -1,
"hasAttributes" : true,
"productName" : "Auto",
"ProductCode" : "Auto",
"nat_test__RecordTypeName__c" : "InsuredItemSpec",
"productId" : "01tRN000000LCqrYAG",
"Name" : "1999 Toyota Camry",
"instanceKey" : "1999 Toyota Camry",
"currencyCode" : "USD",
"currencySymbol" : "$",
"hasCoverages" : true,
"primaryParty" : {
"instanceKey" : "MaryJones"
},
"otherParties" : [ {
"instanceKey" : "BobJones"
} ],
"attributeCategories" : {
"totalSize" : 1,
"records" : [ {
"displaySequence" : 1,
"Code__c" : "Auto",
"Name" : "Auto",
"id" : "a0ZRN0000009TMm2AM",
"productAttributes" : {
"totalSize" : 3,
"records" : [ {
"code" : "Make",
"dataType" : "text",
"inputType" : "text",
"multiselect" : false,
"required" : false,
"readonly" : false,
"disabled" : false,
"filterable" : true,
"attributeId" : "a0aRN00000067pjYAA",
"label" : "Make",
"displaySequence" : -1,
"hasRules" : false,
"hidden" : false,
"cloneable" : true,
"isNotTranslatable" : false,
"values" : [ {
"readonly" : false,
"disabled" : false
} ],
"userValues" : "Toyota",
"isNotAssetizable" : false
}, {
"code" : "Model",
"dataType" : "text",
"inputType" : "text",
"multiselect" : false,
"required" : false,
"readonly" : false,
"disabled" : false,
"filterable" : true,
"attributeId" : "a0aRN00000067pkYAA",
"label" : "Model",
"displaySequence" : -1,
"hasRules" : false,
"hidden" : false,
"cloneable" : true,
"isNotTranslatable" : false,
"values" : [ {
"readonly" : false,
"disabled" : false
} ],
"userValues" : "Camry",
"isNotAssetizable" : false
}, {
"code" : "ModelYear",
"dataType" : "number",
"inputType" : "number",
"multiselect" : false,
"required" : false,
"readonly" : false,
"disabled" : false,
"filterable" : true,
"attributeId" : "a0aRN00000067plYAA",
"label" : "ModelYear",
"displaySequence" : -1,
"hasRules" : false,
"hidden" : false,
"cloneable" : true,
"isNotTranslatable" : false,
"values" : [ {
"readonly" : false,
"disabled" : false
} ],
"userValues" : 1999,
"isNotAssetizable" : false
} ]
}
} ]
},
"childProducts" : {
"totalSize" : 0,
"records" : [ {
"displaySequence" : -1,
"hasAttributes" : true,
"productName" : "Driver",
"ProductCode" : "Driver",
"nat_test__RecordTypeName__c" : "InsuredPartySpec",
"productId" : "01tRN000000LCqsYAG",
"Name" : "BobJones",
"instanceKey" : "BobJones",
"currencyCode" : "USD",
"currencySymbol" : "$",
"hasCoverages" : true,
"isPrimaryChild" : false,
"attributeCategories" : {
"totalSize" : 1,
"records" : [ {
"displaySequence" : 2,
"Code__c" : "Driver",
"Name" : "Driver",
"id" : "a0ZRN0000009TMn2AM",
"productAttributes" : {
"totalSize" : 2,
"records" : [ {
"code" : "FirstName",
"dataType" : "text",
"inputType" : "text",
"multiselect" : false,
"required" : false,
"readonly" : false,
"disabled" : false,
"filterable" : true,
"attributeId" : "a0aRN00000067pmYAA",
"label" : "FirstName",
"displaySequence" : -1,
"hasRules" : false,
"hidden" : false,
"cloneable" : true,
"isNotTranslatable" : false,
"values" : [ {
"readonly" : false,
"disabled" : false
} ],
"userValues" : "Bob",
"isNotAssetizable" : false
}, {
"code" : "LastName",
"dataType" : "text",
"inputType" : "text",
"multiselect" : false,
"required" : false,
"readonly" : false,
"disabled" : false,
"filterable" : true,
"attributeId" : "a0aRN00000067pnYAA",
"label" : "LastName",
"displaySequence" : -1,
"hasRules" : false,
"hidden" : false,
"cloneable" : true,
"isNotTranslatable" : false,
"values" : [ {
"readonly" : false,
"disabled" : false
} ],
"userValues" : "Jones",
"isNotAssetizable" : false
} ]
}
} ]
}
}, {
"displaySequence" : -1,
"hasAttributes" : true,
"productName" : "Driver",
"ProductCode" : "Driver",
"nat_test__RecordTypeName__c" : "InsuredPartySpec",
"productId" : "01tRN000000LCqsYAG",
"Name" : "MaryJones",
"instanceKey" : "MaryJones",
"currencyCode" : "USD",
"currencySymbol" : "$",
"hasCoverages" : true,
"isPrimaryChild" : true,
"attributeCategories" : {
"totalSize" : 1,
"records" : [ {
"displaySequence" : 2,
"Code__c" : "Driver",
"Name" : "Driver",
"id" : "a0ZRN0000009TMn2AM",
"productAttributes" : {
"totalSize" : 2,
"records" : [ {
"code" : "FirstName",
"dataType" : "text",
"inputType" : "text",
"multiselect" : false,
"required" : false,
"readonly" : false,
"disabled" : false,
"filterable" : true,
"attributeId" : "a0aRN00000067pmYAA",
"label" : "FirstName",
"displaySequence" : -1,
"hasRules" : false,
"hidden" : false,
"cloneable" : true,
"isNotTranslatable" : false,
"values" : [ {
"readonly" : false,
"disabled" : false
} ],
"userValues" : "Mary",
"isNotAssetizable" : false
}, {
"code" : "LastName",
"dataType" : "text",
"inputType" : "text",
"multiselect" : false,
"required" : false,
"readonly" : false,
"disabled" : false,
"filterable" : true,
"attributeId" : "a0aRN00000067pnYAA",
"label" : "LastName",
"displaySequence" : -1,
"hasRules" : false,
"hidden" : false,
"cloneable" : true,
"isNotTranslatable" : false,
"values" : [ {
"readonly" : false,
"disabled" : false
} ],
"userValues" : "Jones",
"isNotAssetizable" : false
} ]
}
} ]
}
} ]
}
} ]
}
} ]
}