위치:
InsPolicyService:createPolicyVersion
이 서비스를 사용하여 기존 정책 레코드를 그대로 유지하면서 새 버전의 기존 정책을 만듭니다.
이 서비스는 정책 버전 관리를 활성화합니다. 정책에 대한 모든 변경 사항은 다른 버전의 정책에서 추적됩니다. 정책 수정 및 정책 OmniScript 및 통합 절차 취소에 사용할 수 있습니다. 이 서비스를 사용하여 만료 및 취소된 정책을 복원할 수도 있습니다.
작동 방법
-
현재 정책의
assetId또는policyId및inputKey에 표시된 JSON을 가져옵니다. -
원래 정책의 복제본을 만듭니다.
-
기존 결제 일정이 있는 경우 서비스가 결제 일정을 업데이트하고 보증 유효일에 결제 일정 항목을 만듭니다.
useIsPaidFlag가 true인 경우 트랜잭션이 없는 모든 향후 결제 일정 항목(적용일 이후)(상태 필드가Valid이고isPaid필드가 선택되지 않음)이 새로운 보험료, 세금 및 수수료 값을 기반으로 업데이트됩니다. 새 결제 일정 항목에는 새 보험료, 세금, 수수료, 업데이트된 결제 일정 항목을 기반으로 조정된 보험료, 세금, 수수료 값이 포함됩니다. 또한 각 결제 일정 항목의 증권 구성 요소의 기여 레코드가 업데이트됩니다. -
서비스는 이전 증권의 보험료 계산 방법, 결제 유형, 보험료 빈도, 새 증권의 기간 총 보험료, 기간 총 수수료, 기간 총 세금을 사용하여 수정된 결제 일정을 생성합니다. 트랜잭션 생성 외에도 트랜잭션 분석 데이터가 트랜잭션 세부 사항 개체에 채워집니다. 이 개체는 각 자산, 참가자 또는 보장 범위가 보험료, 세금, 수수료와 관련하여 총 거래 금액에 얼마나 기여하는지에 대한 데이터를 저장합니다. 보험료, 세금 또는 수수료의 값이 0 이상인 자산, 참가자, 보장 범위만 표시됩니다.
노트 프리미엄 계산 방법, 결제 유형 및 프리미엄 주기는 이전 정책에서 복사되지 않으며 JSON을 통해 서비스에 입력으로 전달해야 합니다. -
includeRevenueSchedule가 true로 설정된 경우 매출표 서비스를 호출하여 매출표를 수정합니다. -
이 정책을 처음으로 수정하는 경우 서비스는
originalVersionId__c및previousVersionId__c에 동일한assetId을 지정합니다. 이 정책의 첫 번째 수정이 아닌 경우 서비스는OriginalVersionId__c를 새 버전으로 전달하고 이전assetId를 새 정책에서PreviousVersionId__c로 스탬프합니다. -
taxesAndFees,taxAmount및/또는feeAmount노드가 입력 JSON에 포함된 경우 해당 세금/수수수료 필드 및/또는 레코드가 생성되고 정책의 새 버전에 비례 배분됩니다. -
해당되는 경우 결제 조정에 대한 InsurancePolicyTransaction이 생성됩니다.
-
calculateCommission가true인 경우 서비스에서InsurancePolicyService.calculateAndSaveCommission를 호출하여InsCommissionService.calculate및InsCommissionService.saveCommissions서비스에 대한 입력을 준비합니다. 계산 서비스가 입력을 처리한 후 저장 서비스는 계산된 값을TotalCommissionAmount로 저장한 다음, 값을 롤업하고 원래 정책의TotalCommissionAmount에 추가합니다. getquotedetail서비스의disableAttributeCategories플래그가 true로 설정된 경우 서비스가 응답에서 attributeCategory 노드를 생략하고createPolicyVersion서비스에서 정책 조건을 만들 수 없습니다.createPolicyVersion서비스가 정책 조건을 생성하는지 확인하려면getQuoteDetail서비스의disableAttributeCategories플래그를 false로 설정합니다.
세금 및 수수료
다음은 세금 및 수수료에 대해 이 서비스가 작동하는 방식입니다.
-
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 옵션(아래 참조)이 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"
]
}