Untitled
unknown
plain_text
2 years ago
66 kB
9
Indexable
package ru.tinkoff.util.sampledata
uses com.guidewire.pl.system.bundle.EntityBundleImpl
uses gw.api.builder.CancellationBuilder
uses gw.api.builder.CoverageBuilder
uses gw.api.builder.PolicyAddlNamedInsuredBuilder
uses gw.api.builder.PolicyChangeBuilder
uses gw.api.builder.ReinstatementBuilder
uses gw.api.builder.RenewalBuilder
uses gw.api.builder.SubmissionBuilder
uses gw.api.builder.UWRuleBuilder
uses gw.api.database.Query
uses gw.api.database.Relop
uses gw.api.productmodel.Product
uses gw.api.upgrade.PCCoercions
uses gw.api.util.MonetaryAmounts
uses gw.bizrules.databuilder.RuleConditionBuilder
uses gw.sampledata.AbstractSampleDataCollection
uses gw.sampledata.SampleDataConstants
uses ru.tinkoff.databuilder.AccountVehicle_ToiBuilder
uses ru.tinkoff.util.PolicyPeriodUtil
uses ru.tinkoff.util.sampledata.builder.CartSelectionBuilder
uses ru.tinkoff.util.sampledata.builder.CartToPeriodBuilder
uses ru.tinkoff.util.sampledata.builder.DealBuilder
uses ru.tinkoff.util.sampledata.scenario.ksk.builder.KSKLineBuilder
uses ru.tinkoff.util.sampledata.scenario.ksk.builder.KSKVehicleBuilder
uses ru.tinkoff.util.sampledata.scenario.ksk.builder.KSKVehicleOwnerBuilder
uses ru.tinkoff.util.sampledata.scenario.osg.builder.OSGDriverBuilder
uses ru.tinkoff.util.sampledata.scenario.osg.builder.OSGLineBuilder
uses ru.tinkoff.util.sampledata.scenario.osg.builder.OSGVehicleBuilder
uses ru.tinkoff.util.sampledata.scenario.osg.builder.OSGVehicleOwnerBuilder
uses ru.tinkoff.util.sampledata.scenario.tpproperty.builder.TPLineBuilder
uses ru.tinkoff.util.sampledata.scenario.travel.builder.TVLLineExtBuilder
uses ru.tinkoff.util.sampledata.scenario.travel.builder.TravellerExtBuilder
uses typekey.PolicyContactRole
uses ru.tinkoff.webservice.quote.bean.kasko.PatternCode
uses java.time.LocalDate
uses java.time.ZoneId
/**
* Sample set of sample Jobs and Policies.
*
* @see gw.sampledata.large.LargeSamplePolicyData
*/
@Export
class SamplePolicyData extends AbstractSampleDataCollection {
/**
* The name of this sample data collection, for logging and debugging
*/
public override property get CollectionName() : String {
return "Sample Policies"
}
/**
* Checks the database, returning true if this set is already loaded (and thus doesn't need reloading)
*/
public override property get AlreadyLoaded() : boolean {
return jobLoaded("456783759")
}
/**
* Loads the contents of this sample data set into the DB
*/
override function load() {
setDefaultInstances()
// SIMPLE SUBMISSIONS
runBlockAsUser("su", "SamplePolicyData -- su", \-> {
loadSubmission("456783759", "C000148456", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), new String[0], true)
loadSubmission("477788800", "C000123321", PCCoercions.makeProductModel<Product>("TVLTravel"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), new String[0], true)
loadSubmission("446437866", "C000212105", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), SampleDataConstants.ACCOUNT_COMPANY_NAMES, true)
loadSubmission("467394852", "B000666776", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
Date.from(LocalDate.of(2019, 2, 2).atStartOfDay(ZoneId.systemDefault()).toInstant()),
SampleDataConstants.ACCOUNT_COMPANY_NAMES, true, "test:99756")
loadSubmissionWithPopulator("467394853", "B000481821", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDatePlus(0, 0, 7),
SampleDataConstants.ACCOUNT_COMPANY_NAMES, true, "test:99757")
loadSubmissionWithPopulator("467394854", "B000481822", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90),
SampleDataConstants.ACCOUNT_COMPANY_NAMES, false, "test:99758")
loadSubmissionWithPopulator("467394855", "B000481823", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDatePlus(0, 0, 7),
SampleDataConstants.ACCOUNT_COMPANY_NAMES, false, "test:99759")
loadSubmissionWithPopulator("467394856", "B000481824", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDatePlus(0, 0, 7),
SampleDataConstants.ACCOUNT_COMPANY_NAMES, false, "test:99760")
// CreateActivityTest.testOk
loadSubmissionWithPopulator("4543465645", "CAT01", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(10), SampleDataConstants.ACCOUNT_COMPANY_NAMES, false, "сreateActivityTest:001")
var karemza5Submission = loadSubmissionWithPopulator("467394857", "B000481825", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDatePlus(0, 0, 7),
SampleDataConstants.ACCOUNT_COMPANY_NAMES, false, "test:99761",
:populator = \pp -> {
pp.IsEPolicy = true
pp.UpdateSystem_Toi = UpdateSystemType_Toi.TC_DEALER
pp.CalculateSystem_Toi = UpdateSystemType_Toi.TC_RAMI
})
runTransactionAsUser(null, "Valid submission", \bundle -> {
karemza5Submission = bundle.add(karemza5Submission)
karemza5Submission.PaymentMethodOSAGO_TOI = TPPaymentMethodOSAGO_TOI.TC_CARDCURRENTLY
karemza5Submission.Policy.MarkChannel_TOI = MarketingChannelType_Toi.TC_OFFICIAL_DEALER.Code
karemza5Submission.PeriodBusinessStatus_Toi.Status = PolicyBusinessStatus_Toi.TC_QQ3
var driver = karemza5Submission.OSGLine.Drivers[0]
var driverPerson = driver.AccountContactRole.AccountContact.Contact as Person
var driverPersonPolicy = driver.ContactDenorm as Person
driverPerson.Nationality_TOI = Country.TC_RU
driverPersonPolicy.Nationality_TOI = Country.TC_RU
})
var karemza6Submission = loadSubmissionWithPopulator("467394858", "B000481826", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDatePlus(0, 0, 7),
SampleDataConstants.ACCOUNT_COMPANY_NAMES, false, "test:99762",
:populator = \pp -> {
pp.IsEPolicy = true
pp.UpdateSystem_Toi = UpdateSystemType_Toi.TC_DEALER
pp.PolicyNumber = "123456789"
pp.TermNumber = 1
})
runTransactionAsUser(null, "Valid submission", \bundle -> {
karemza6Submission = bundle.add(karemza6Submission)
karemza6Submission.PaymentMethodOSAGO_TOI = TPPaymentMethodOSAGO_TOI.TC_CARDCURRENTLY
karemza6Submission.Policy.MarkChannel_TOI = MarketingChannelType_Toi.TC_OFFICIAL_DEALER.Code
var driver = karemza6Submission.OSGLine.Drivers[0]
var driverPerson = driver.AccountContactRole.AccountContact.Contact as Person
var driverPersonPolicy = driver.ContactDenorm as Person
driverPerson.Nationality_TOI = Country.TC_RU
driverPersonPolicy.Nationality_TOI = Country.TC_RU
})
var karemza7Submission = loadSubmissionWithPopulator("467394859", "B000481827", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDatePlus(0, 0, 7),
SampleDataConstants.ACCOUNT_COMPANY_NAMES, false, "test:99763",
:populator = \pp -> {
pp.IsEPolicy = true
pp.UpdateSystem_Toi = UpdateSystemType_Toi.TC_DEALER
})
runTransactionAsUser(null, "UWIssue submission", \bundle -> {
karemza7Submission = bundle.add(karemza7Submission)
karemza7Submission.PaymentMethodOSAGO_TOI = TPPaymentMethodOSAGO_TOI.TC_CARDCURRENTLY
karemza7Submission.Policy.MarkChannel_TOI = MarketingChannelType_Toi.TC_OFFICIAL_DEALER.Code
var driver = karemza7Submission.OSGLine.Drivers[0]
var driverPerson = driver.AccountContactRole.AccountContact.Contact as Person
var driverPersonPolicy = driver.ContactDenorm as Person
var uwIssueType = Query.make(UWIssueType)
.compare(UWIssueType#Code, Relop.Equals, "IsTransition")
.select().FirstResult
var uwIssue = new UWIssue(karemza7Submission)
uwIssue = bundle.add(uwIssue)
uwIssue.Active = true
uwIssue.CanEditApprovalBeforeBind = true
uwIssue.HasApprovalOrRejection = false
uwIssue.IssueKey = "issueKey"
uwIssue.IssueType = uwIssueType
driverPerson.Nationality_TOI = Country.TC_RU
driverPersonPolicy.Nationality_TOI = Country.TC_RU
})
var karemza8Submission = loadSubmissionWithPopulator("467394860", "B000481828", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDatePlus(0, 0, 7),
SampleDataConstants.ACCOUNT_COMPANY_NAMES, false, "test:99764",
:populator = \pp -> {
pp.IsEPolicy = true
pp.UpdateSystem_Toi = UpdateSystemType_Toi.TC_DEALER
})
runTransactionAsUser(null, "Valid submission", \bundle -> {
karemza8Submission = bundle.add(karemza8Submission)
karemza8Submission.PaymentMethodOSAGO_TOI = TPPaymentMethodOSAGO_TOI.TC_CARDCURRENTLY
karemza8Submission.Policy.MarkChannel_TOI = MarketingChannelType_Toi.TC_OFFICIAL_DEALER.Code
var driver = karemza8Submission.OSGLine.Drivers[0]
var driverPerson = driver.AccountContactRole.AccountContact.Contact as Person
var driverPersonPolicy = driver.ContactDenorm as Person
driverPerson.Nationality_TOI = Country.TC_RU
driverPersonPolicy.Nationality_TOI = Country.TC_RU
})
var karemza9Submission = loadSubmissionWithPopulator("467394861", "B000481829", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDatePlus(0, 0, 7),
SampleDataConstants.ACCOUNT_COMPANY_NAMES, false, "test:99765",
:populator = \pp -> {
pp.IsEPolicy = true
pp.UpdateSystem_Toi = UpdateSystemType_Toi.TC_DEALER
}
)
runTransactionAsUser(null, "Valid submission", \bundle -> {
karemza9Submission = bundle.add(karemza9Submission)
karemza9Submission.PaymentMethodOSAGO_TOI = TPPaymentMethodOSAGO_TOI.TC_CARDCURRENTLY
karemza9Submission.Policy.MarkChannel_TOI = MarketingChannelType_Toi.TC_OFFICIAL_DEALER.Code
var driver = karemza9Submission.OSGLine.Drivers[0]
var driverPerson = driver.AccountContactRole.AccountContact.Contact as Person
var driverPersonPolicy = driver.ContactDenorm as Person
driverPerson.Nationality_TOI = Country.TC_RU
driverPersonPolicy.Nationality_TOI = Country.TC_RU
})
var karemza10Submission = loadSubmissionWithPopulator("467394862", "B000481830", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDatePlus(0, 0, 7),
SampleDataConstants.ACCOUNT_COMPANY_NAMES, false, "test:99766",
:populator = \pp -> {
pp.IsEPolicy = true
pp.UpdateSystem_Toi = UpdateSystemType_Toi.TC_DEALER
})
runTransactionAsUser(null, "Valid submission", \bundle -> {
karemza10Submission = bundle.add(karemza10Submission)
karemza10Submission.PaymentMethodOSAGO_TOI = TPPaymentMethodOSAGO_TOI.TC_CARDCURRENTLY
karemza10Submission.Policy.MarkChannel_TOI = MarketingChannelType_Toi.TC_OFFICIAL_DEALER.Code
var driver = karemza10Submission.OSGLine.Drivers[0]
var driverPerson = driver.AccountContactRole.AccountContact.Contact as Person
var driverPersonPolicy = driver.ContactDenorm as Person
var issueTypeCode = "code3"
var uwIssueType = Query.make(UWIssueType)
.compare(UWIssueType#Code, Relop.Equals, issueTypeCode)
.select().FirstResult
var uwIssue = new UWIssue(karemza10Submission)
uwIssue = bundle.add(uwIssue)
uwIssue.Active = true
uwIssue.BlockingPoint_Toi = UWIssueBlockingPoint.TC_BLOCKSISSUANCE
uwIssue.CheckingSet_Toi = UWIssueCheckingSet.TC_MANUAL
uwIssue.CanEditApprovalBeforeBind = true
uwIssue.HasApprovalOrRejection = false
uwIssue.IssueKey = "issueKey"
uwIssue.IssueType = uwIssueType
// Чтобы задать uwIssue.IssueType.ActiveVersion
new UWRuleBuilder()
.withCode(issueTypeCode)
.withIssueKeyParam(issueTypeCode)
.withRuleContextDefinitionKey(TC_GENERICPOLICY)
.withRuleCondition(new RuleConditionBuilder()
.addRuleConditionLine("1", RuleOperator.TC_EQUALS, "1")) // random
.withDefaultApprovalBlockingPoint(TC_NONBLOCKING)
.withTriggeringPointKey(TC_PREQUOTE)
.create(bundle)
driverPerson.Nationality_TOI = Country.TC_RU
driverPersonPolicy.Nationality_TOI = Country.TC_RU
})
// invalid test case for testCheckTransitionProgramConditions
var maxkoz3coverage = new CoverageBuilder(KSKVehicleCov_Toi)
.withPatternByCodeIdentifier(PatternCode.KSK_Theft_TOI.Code)
.withCurrency(Currency.TC_RUB)
.withDirectTermByCodeIdentifier("KSK_TheftLimit_TOI", 1000L)
var maxkoz3Submission = loadSubmissionWithPopulator("3004200113", "M30042001", PCCoercions.makeProductModel<Product>("TinkoffKASKO"),
SampleDataConstants.getBaseDatePlus(0, 0, 7),
SampleDataConstants.ACCOUNT_COMPANY_NAMES, false, "m_test:00003", :coverages = {maxkoz3coverage}, :populator = \period -> {
period.ProducerCodeOfRecord.MarketingChannel_Toi = MarketingChannelType_Toi.TC_OFFICIAL_DEALER
})
runTransactionAsUser(null, "Valid submission", \bundle -> {
maxkoz3Submission = bundle.add(maxkoz3Submission)
maxkoz3Submission.PaymentMethodOSAGO_TOI = TPPaymentMethodOSAGO_TOI.TC_CARDCURRENTLY
maxkoz3Submission.Policy.MarkChannel_TOI = MarketingChannelType_Toi.TC_OFFICIAL_DEALER.Code
maxkoz3Submission.KSKLine.DriversListType = KSKDriversListType_Toi.TC_MULTIDRIVE
maxkoz3Submission.KSKLine.DriversMinAge = 18
maxkoz3Submission.KSKLine.DriversMinExperience = 2
maxkoz3Submission.KSKLine.IsTransition_Toi = false
maxkoz3Submission.KSKLine.TransitionInsuranceCompany_Toi = new Company()
maxkoz3Submission.KSKLine.TransitionPolicyExpDate_Toi = SampleDataConstants.getBaseDate()
maxkoz3Submission.KSKLine.TransitionPolicyPremium_Toi = 1
maxkoz3Submission.KSKLine.TransitionPolicyAmount_Toi = 1
})
// оплаченный Е-ОСАГО
loadSubmissionWithPopulator("999983999", "C001456496", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(10), {}, true, :populator = \p -> {
p.IsEPolicy = true
})
loadSubmissionWithPopulator("999983734", "C000148456", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(10), {}, true, :populator = \p -> {
p.IsEPolicy = true
})
loadSubmissionWithPopulator("999983998", "C001456496", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(10), {}, true, :populator = \p -> {
p.IsEPolicy = true
p.OSGLine.addToSubperiods(new OSGSubperiod_Toi(p) {
:StartDate = p.PeriodStart,
:EndDate = p.PeriodStart.addDays(10)
})
})
loadSubmissionWithPopulator("IssueByIDTest", "C001456496", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(10), {}, true, :populator = \p -> {
p.IsEPolicy = true
})
// Е-ОСАГО с ожиданием оплаты
loadSubmissionWithPopulator("999983777", "C000148456", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(10), {}, true, :populator = \p -> {
p.IsEPolicy = true
})
// расторгнутый Е-ОСАГО
loadSubmissionWithPopulator("777783777", "C000148456", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(10), {}, true, :populator = \p -> {
p.IsEPolicy = true
})
runTransactionAsUser(null, "777783777 cancellation", \bundle -> {
var basedOnPeriod = findPeriodByJobNumber("777783777", bundle)
new CancellationBuilder().withJobNumber("777783778")
.withBasedOnPeriod(basedOnPeriod)
.withEffectiveDate(basedOnPeriod.PeriodStart.addMonths(1))
.canceledByCarrier()
.canceledForNonpayment()
.withProrataRefund()
.create(bundle)
})
// will be cancelled in tests
loadSubmission("446437999", "C000212105", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), SampleDataConstants.ACCOUNT_COMPANY_NAMES, true)
loadSubmission("446447999", "C000212105", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), SampleDataConstants.ACCOUNT_COMPANY_NAMES, true)
runTransactionAsUser(null, "Business status 446447999", \bundle -> {
var basedOnPeriod = findPeriodByJobNumber("446447999", bundle)
PolicyPeriodUtil.addNewPaymentStatus(basedOnPeriod, BCPaymentStatus.TC_PAID)
})
//policy with unbound renewall
loadSubmission("446435555", "C000212105", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), SampleDataConstants.ACCOUNT_COMPANY_NAMES, true)
runTransactionAsUser(null, "Renewall", \bundle ->
new RenewalBuilder()
.withJobNumber("446435556")
.withBasedOnPeriod(findPeriodByJobNumber("446435555", bundle))
.isQuoted()
.create(bundle)
)
// с другим PaymentStatus
loadSubmission("463334852", "B000666777", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(0, 0, 90), SampleDataConstants.ACCOUNT_COMPANY_NAMES, true, "test:93336")
// С созданным PreRenewalDirection
loadSubmission("634565543", "C000456353", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), new String[0], true)
runTransactionAsUser(null, "PreRenewalDirection", \bundle -> {
var basedOnPeriod = findPeriodByJobNumber("634565543", bundle)
basedOnPeriod.PolicyTerm.PreRenewalDirection = PreRenewalDirection.TC_NONRENEW
})
// Невыпущенный полис
loadSubmission("857465378", "C000456353", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), new String[0], false)
//PolicyContactRolesAPIGetContactInformationTest.testGetUserInformation()
loadSubmission("Job:PCRAPI01", "PCRAPI01", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), new String[0], false)
loadSubmission("452310124", "C-PCR-00001", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), SampleDataConstants.ACCOUNT_COMPANY_NAMES, true)
runTransactionAsUser(null, "PolicyChange 4523101246", \bundle ->
new PolicyChangeBuilder()
.withJobNumber("4523101246")
.withBasedOnPeriod(findPeriodByJobNumber("452310124", bundle))
.create(bundle)
)
// Полис с IsEPolicy = false
loadSubmissionWithPopulator("857465301", "C000456353", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), new String[0], true, :populator = \pp -> {
pp.IsEPolicy = false
})
// Еще один полис с невыпущенным изменением
loadSubmission("857465311", "C000456353", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), new String[0], true)
runTransactionAsUser(null, "PolicyChange 526345361", \bundle ->
new PolicyChangeBuilder().withJobNumber("526345361")
.withBasedOnPeriod(findPeriodByJobNumber("857465311", bundle))
.isQuoted().create(bundle))
// policyChange
loadSubmission("56676455555", "C000212105", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), SampleDataConstants.ACCOUNT_COMPANY_NAMES, true)
runTransactionAsUser(null, "PolicyChange 999998467", \bundle ->
new PolicyChangeBuilder()
.withJobNumber("999998467")
.withBasedOnPeriod(findPeriodByJobNumber("56676455555", bundle))
.create(bundle)
)
loadSubmission("56676455551", "C000212105", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(2, 0, 130), SampleDataConstants.ACCOUNT_COMPANY_NAMES, true)
runTransactionAsUser(null, "PolicyChange 999998411", \bundle -> {
var prevPeriod = findPeriodByJobNumber("56676455551", bundle)
new PolicyChangeBuilder()
.withJobNumber("999998411")
.withBasedOnPeriod(prevPeriod)
.withPeriodStart(prevPeriod.PeriodStart)
.withPeriodEnd(prevPeriod.PeriodStart.addMonths(1).addDays(12))
.withPolicyTerm(TermType.TC_OTHER)
.withSelectedTermType(TermType.TC_OTHER)
.create(bundle)
})
loadSubmission("56676455552", "C000212105", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(2, 0, 130), SampleDataConstants.ACCOUNT_COMPANY_NAMES, true)
runTransactionAsUser(null, "PolicyChange 999998412", \bundle -> {
var prevPeriod = findPeriodByJobNumber("56676455552", bundle)
new PolicyChangeBuilder()
.withJobNumber("999998412")
.withBasedOnPeriod(prevPeriod)
.withPeriodStart(prevPeriod.PeriodStart)
.withPeriodEnd(prevPeriod.PeriodStart.addMonths(1).addDays(9))
.withPolicyTerm(TermType.TC_MONTHLY)
.withSelectedTermType(TermType.TC_MONTHLY)
.create(bundle)
})
loadSubmission("100100100", "C00010000", PCCoercions.makeProductModel<Product>("TinkoffKASKO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), SampleDataConstants.ACCOUNT_COMPANY_NAMES, true)
runTransactionAsUser(null, "PolicyChange 101101101", \bundle -> {
(bundle as EntityBundleImpl).CommitOptions.setIgnorePreUpdateRules(true)
(bundle as EntityBundleImpl).CommitOptions.setIgnoreBeanChangeEvents(true)
new PolicyChangeBuilder()
.withJobNumber("101101101")
.withBasedOnPeriod(findPeriodByJobNumber("100100100", bundle))
.withPolicyLine(new KSKLineBuilder().withVehicle(new KSKVehicleBuilder()
.withCoverage(new CoverageBuilder(KSKVehicleCov_Toi)
.withPatternByCodeIdentifier(PatternCode.KSK_Theft_TOI.Code))))
.create(bundle)
})
loadSubmission("200200200", "C00010000", PCCoercions.makeProductModel<Product>("TinkoffKASKO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), SampleDataConstants.ACCOUNT_COMPANY_NAMES, true)
runTransactionAsUser(null, "PolicyChange 201201201", \bundle -> {
(bundle as EntityBundleImpl).CommitOptions.setIgnorePreUpdateRules(true)
(bundle as EntityBundleImpl).CommitOptions.setIgnoreBeanChangeEvents(true)
new PolicyChangeBuilder()
.withJobNumber("201201201")
.withBasedOnPeriod(findPeriodByJobNumber("200200200", bundle))
.withPolicyLine(new KSKLineBuilder().withVehicle(new KSKVehicleBuilder()
.withCoverage(new CoverageBuilder(KSKVehicleCov_Toi)
.withPatternByCodeIdentifier(PatternCode.KSK_MiniKASKO_TOI.Code))))
.create(bundle)
})
loadSubmission("300300300", "C00010000", PCCoercions.makeProductModel<Product>("TinkoffKASKO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), SampleDataConstants.ACCOUNT_COMPANY_NAMES, true)
runTransactionAsUser(null, "PolicyChange 301301301", \bundle -> {
(bundle as EntityBundleImpl).CommitOptions.setIgnorePreUpdateRules(true)
(bundle as EntityBundleImpl).CommitOptions.setIgnoreBeanChangeEvents(true)
new PolicyChangeBuilder()
.withJobNumber("301301301")
.withBasedOnPeriod(findPeriodByJobNumber("300300300", bundle))
.withPolicyLine(new KSKLineBuilder().withVehicle(new KSKVehicleBuilder()
.withCoverage(new CoverageBuilder(KSKVehicleCov_Toi)
.withPatternByCodeIdentifier(PatternCode.KSK_Damage_TOI.Code))))
.create(bundle)
})
var coverage = new CoverageBuilder(KSKVehicleCov_Toi)
.withPatternByCodeIdentifier(PatternCode.KSK_Damage_TOI.Code)
.withCurrency(Currency.TC_RUB)
.withBooleanCovTermByCodeIdentifier("KSK_DamageTotal_TOI", true)
.withDirectTermByCodeIdentifier("KSK_DamageLimit_TOI", 1000L)
SamplePolicyData.loadSubmissionWithPopulator("DamageOrTheftFromOfficialDealerAndLessThenLimit", "C00010000",
PCCoercions.makeProductModel<Product>("TinkoffKASKO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), SampleDataConstants.ACCOUNT_COMPANY_NAMES, true,
:coverages = {coverage}, :populator = \period -> {
period.ProducerCodeOfRecord.MarketingChannel_Toi = MarketingChannelType_Toi.TC_OFFICIAL_DEALER
})
var coverage1 = new CoverageBuilder(KSKVehicleCov_Toi)
.withPatternByCodeIdentifier(PatternCode.KSK_Damage_TOI.Code)
.withCurrency(Currency.TC_RUB)
.withBooleanCovTermByCodeIdentifier("KSK_DamageTotal_TOI", true)
.withDirectTermByCodeIdentifier("KSK_DamageLimit_TOI", 1000L)
SamplePolicyData.loadSubmissionWithPopulator("DamageOrTheftWithBusinessTestAndLessThenLimit", "C00010000",
PCCoercions.makeProductModel<Product>("TinkoffKASKO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), SampleDataConstants.ACCOUNT_COMPANY_NAMES, true,
:coverages = {coverage1}, :populator = \period -> {
period.BusinessTests_Toi = {new () {:PolicyPeriod = period, :Code = "psi_removal", :Value = "true"}}
})
SamplePolicyData.loadSubmissionWithPopulator("SubmissionBoundAfterAppointment", "C00010000",
PCCoercions.makeProductModel<Product>("TinkoffKASKO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), SampleDataConstants.ACCOUNT_COMPANY_NAMES, true,
:coverages = {new CoverageBuilder(KSKVehicleCov_Toi)
.withPatternByCodeIdentifier(PatternCode.KSK_Damage_TOI.Code)}, :populator = \period -> {
period.KSKLine.IsBoundAfterAppointment_Toi = true
})
loadSubmission("123421212", "C000212105", PCCoercions.makeProductModel<Product>("TinkoffKASKO"),
SampleDataConstants.getBaseDatePlus(0, 12, 1), SampleDataConstants.ACCOUNT_COMPANY_NAMES, true)
runTransactionAsUser(null, "PolicyChange 123421000", \bundle -> {
(bundle as EntityBundleImpl).CommitOptions.setIgnorePreUpdateRules(true)
(bundle as EntityBundleImpl).CommitOptions.setIgnoreBeanChangeEvents(true)
new PolicyChangeBuilder()
.withJobNumber("123421000")
.withPeriodEnd(Date.CurrentDate.addYears(1).addDays(2))
.withPeriodStart(Date.CurrentDate.addDays(1))
.withBasedOnPeriod(AbstractSampleDataCollection.findPeriodByJobNumber("123421212", bundle))
.withPolicyLine(new KSKLineBuilder().withVehicle(new KSKVehicleBuilder()
.withCoverage(new CoverageBuilder(KSKVehicleCov_Toi)
.withPatternByCodeIdentifier(PatternCode.KSK_Damage_TOI.Code))))
.isQuoted().create(bundle)
})
loadSubmission("343434343", "C000212105", PCCoercions.makeProductModel<Product>("TinkoffKASKO"),
SampleDataConstants.getBaseDatePlus(0, 12, 1), SampleDataConstants.ACCOUNT_COMPANY_NAMES, true)
runTransactionAsUser(null, "PolicyChange 343434343", \bundle -> {
(bundle as EntityBundleImpl).CommitOptions.setIgnorePreUpdateRules(true)
(bundle as EntityBundleImpl).CommitOptions.setIgnoreBeanChangeEvents(true)
new PolicyChangeBuilder()
.withJobNumber("876456213")
.withPeriodEnd(Date.CurrentDate.addYears(1).addDays(2))
.withPeriodStart(Date.CurrentDate.addDays(1))
.withBasedOnPeriod(AbstractSampleDataCollection.findPeriodByJobNumber("343434343", bundle))
.withPolicyLine(new KSKLineBuilder().withVehicle(new KSKVehicleBuilder()
.withCoverage(new CoverageBuilder(KSKVehicleCov_Toi)
.withPatternByCodeIdentifier(PatternCode.KSK_Damage_TOI.Code))))
.isQuoted().create(bundle)
})
// cancellation
loadSubmission("56676476578", "C000212105", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), SampleDataConstants.ACCOUNT_COMPANY_NAMES, true)
runTransactionAsUser(null, "PolicyChange 967868467", \bundle ->
new PolicyChangeBuilder()
.withJobNumber("967868467")
.withBasedOnPeriod(findPeriodByJobNumber("56676476578", bundle))
.create(bundle)
)
runTransactionAsUser(null, "Cancellation 5456456763", \bundle -> {
var basedOnPeriod = findPeriodByJobNumber("967868467", bundle)
new CancellationBuilder().withJobNumber("5456456763")
.withBasedOnPeriod(basedOnPeriod)
.withEffectiveDate(basedOnPeriod.PeriodStart.addMonths(1))
.canceledByCarrier()
.canceledForNonpayment()
.withProrataRefund()
.create(bundle)
})
loadSubmission("64129035698", "C000212105", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDatePlus(0, 12, 1), SampleDataConstants.ACCOUNT_COMPANY_NAMES, true)
runTransactionAsUser(null, "PolicyChange 64129035698", \bundle -> {
new PolicyChangeBuilder()
.withJobNumber("64129035603")
.withPeriodEnd(Date.CurrentDate.addYears(1).addDays(2))
.withPeriodStart(Date.CurrentDate.addDays(1))
.withBasedOnPeriod(findPeriodByJobNumber("64129035698", bundle))
.isQuoted().create(bundle)
var basedOnPeriod = findPeriodByJobNumber("64129035698", bundle)
basedOnPeriod.PeriodAdditional_Toi.CommissionAccountingDate = Date.CurrentDate
basedOnPeriod.ProducerCodeOfRecord.Code = "TCS-Test"
var document = new Document(bundle)
document.DocUID = "document_for_job_64129035603"
document.PolicyPeriod = basedOnPeriod
document.Type = DocumentType.TC_EOSAGO_POLICY
})
loadSubmission("64129035697", "C000212105", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDatePlus(0, 12, 1), SampleDataConstants.ACCOUNT_COMPANY_NAMES, true)
loadSubmission("64129035699", "C000212105", PCCoercions.makeProductModel<Product>("TinkoffKASKO"),
SampleDataConstants.getBaseDatePlus(0, 12, 1), SampleDataConstants.ACCOUNT_COMPANY_NAMES, true)
// business status
loadSubmission("44444455555", "C000212105", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), SampleDataConstants.ACCOUNT_COMPANY_NAMES, true)
runTransactionAsUser(null, "Business status 44444455555", \bundle -> {
var basedOnPeriod = findPeriodByJobNumber("44444455555", bundle)
basedOnPeriod.PeriodBusinessStatus_Toi.Status = PolicyBusinessStatus_Toi.TC_POLICY
})
loadSubmission("44444455556", "C000212105", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), SampleDataConstants.ACCOUNT_COMPANY_NAMES, true)
runTransactionAsUser(null, "Business status 44444455556", \bundle -> {
var basedOnPeriod = findPeriodByJobNumber("44444455556", bundle)
PolicyPeriodUtil.addNewPaymentStatus(basedOnPeriod, BCPaymentStatus.TC_PAID)
})
// producer code
loadSubmission("33333355555", "C000212105", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), SampleDataConstants.ACCOUNT_COMPANY_NAMES, true)
runTransactionAsUser(null, "Business status 33333355555", \bundle -> {
var basedOnPeriod = findPeriodByJobNumber("33333355555", bundle)
basedOnPeriod.ProducerCodeOfRecord.Code = "TCS-VIP"
})
//SiebelServiceTOIAPICloseAppointmentTest.testSuccessOnValidParams()
loadSubmission("0914100001", "C000456353", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), {}, true)
//TinkoffPolicyStatusUpdateEventMessageTransportTest.testSuccessEvent()
loadSubmission("Job:TPSUEM01", "TPSUEM01", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), {}, true)
// SiebelService.getAppointmentPolicyInfo
// полис, связанный со встречей
loadSubmission("siebel:001", "C000212105", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(10), {}, false)
runTransactionAsUser(null, "SiebelService.getAppointmentPolicyInfo", \bundle -> {
var pp = findPeriodByJobNumber("siebel:001", bundle)
pp.TotalCostRPT = MonetaryAmounts.zeroOfDefaultCurrency()
})
// SiebelService.setAppointmentBookTimeSlotV2
// полис, связанный с назначенной встречей
loadSubmission("siebel:002", "B000457766", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(10), {}, true)
// полис, не связанный со встречей
loadSubmission("siebel:003", "B000457766", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(10), {}, true)
// TinkoffEmailMessageTransport (https://wiki.tcsbank.ru/display/TOIIT/TinkoffEmailMessageTransport)
runTransactionAsUser(null, "TinkoffEmailMessageTransport - B000457766 contact email", \bundle -> {
var contact = Account.finder.findAccountByAccountNumber("B000457766").AccountHolderContact
bundle.add(contact).EmailAddress1 = "email@test.org"
})
// ISSUE_POLICY_EVENT_NAME Other (KASKO Submission)
loadSubmission("email:001", "B000457766", PCCoercions.makeProductModel<Product>("TinkoffKASKO"),
SampleDataConstants.getBaseDateMinus(10), {}, false)
// ISSUE_POLICY_EVENT_NAME EOSAGOPolicy; п. 6 вариант 2 (оплаченный Е-ОСАГО)
loadSubmissionWithPopulator("email:002", "B000457766", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(10), {}, false,
:populator = \pp -> {
pp.IsEPolicy = true
})
// TRAVEL_SUBMISSION_PACK_CREATED
loadSubmissionWithPopulator("email:003", "B000457766", PCCoercions.makeProductModel<Product>("TVLTravel"),
SampleDataConstants.getBaseDateMinus(10), {}, false,
:populator = \pp ->
pp.TVLLine.addToTVLAreas_Toi(new TVLArea_Toi(pp.Bundle) {
:Area = GeographicalRegion.TC_SHENGEN
})
)
// TRAVEL_SUBMISSION_PACK_CREATED (Travel VIP с род. пролонгацией)
loadSubmissionWithPopulator("email:003_vip_base", "B000457766",
PCCoercions.makeProductModel<Product>("TVLTravel"), SampleDataConstants.getBaseDateMinus(10), {}, true,
:populator = \pp ->
pp.TVLLine.addToTVLAreas_Toi(new TVLArea_Toi(pp.Bundle) {
:Area = GeographicalRegion.TC_SHENGEN
}))
loadSubmissionWithPopulator("email:003_vip", "B000457766", PCCoercions.makeProductModel<Product>("TVLTravel"),
SampleDataConstants.getBaseDateMinus(10), {}, false,
:populator = \pp -> {
pp.ProducerCodeOfRecord.Code = "TCS-VIP"
pp.PeriodAdditional_Toi.ParentRenewal = Job.finder.findJobByJobNumber("email:003_vip_base").LatestPeriod
}
)
// ISSUE_POLICY_EVENT_NAME (KASKO Change)
loadSubmission("email:004_base", "B000457766", PCCoercions.makeProductModel<Product>("TinkoffKASKO"),
SampleDataConstants.getBaseDateMinus(10), {}, true)
runTransactionAsUser(null, "TinkoffEmailMessageTransport - B000457766 kasko change", \bundle -> {
var basedOnPeriod = findPeriodByJobNumber("email:004_base", bundle)
new PolicyChangeBuilder()
.withJobNumber("email:004")
.withBasedOnPeriod(basedOnPeriod)
.create(bundle)
})
// п. 2 (КАСКО, переход в бизнес-статус Полис)
loadSubmissionWithPopulator("email:005", "B000457766", PCCoercions.makeProductModel<Product>("TinkoffKASKO"),
SampleDataConstants.getBaseDateMinus(10), {}, false,
:populator = \pp -> {
pp.PeriodBusinessStatus_Toi.Status = PolicyBusinessStatus_Toi.TC_POLICY
pp.PeriodAdditional_Toi.NeedToSendPolicy = true
})
// п. 3 (email_toi); п. 9 (FOIVCheckFailed)
loadSubmission("email:006_base", "B000457766", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(10), {}, true)
runTransactionAsUser(null, "TinkoffEmailMessageTransport - B000457766 osago change", \bundle -> {
var basedOnPeriod = findPeriodByJobNumber("email:006_base", bundle)
var changePeriod = new PolicyChangeBuilder()
.withJobNumber("email:006")
.withBasedOnPeriod(basedOnPeriod)
.isQuoted()
.create(bundle)
changePeriod.IsEPolicy = true
})
// п. 4 вариант 1 (расторжение ВЗР)
loadSubmission("email:007_base", "B000457766", PCCoercions.makeProductModel<Product>("TVLTravel"),
SampleDataConstants.getBaseDateMinus(10), {}, true)
runTransactionAsUser(null, "TinkoffEmailMessageTransport - B000457766 travel cancellation", \bundle -> {
var basedOnPeriod = findPeriodByJobNumber("email:007_base", bundle)
var cancellationPeriod = new CancellationBuilder()
.withJobNumber("email:007")
.withBasedOnPeriod(basedOnPeriod)
.withCancellationSource(CancellationSource.TC_INSURED)
.withCancelReasonCode(ReasonCode.TC_TECHINCALERROR_TOI)
.isQuoted()
.create(bundle)
cancellationPeriod.SendEmailByCancellation_TOI = true
(bundle as EntityBundleImpl).CommitOptions.setIgnoreBeanChangeEvents(true)
})
// п. 4 вариант 2 (расторжение КАСКО)
loadSubmission("email:008_base", "TEMT01", PCCoercions.makeProductModel<Product>("TinkoffKASKO"),
SampleDataConstants.getBaseDateMinus(10), {}, true)
runTransactionAsUser(null, "TinkoffEmailMessageTransport - B000457766 kasko cancellation", \bundle -> {
var basedOnPeriod = findPeriodByJobNumber("email:008_base", bundle)
var cancellationPeriod = new CancellationBuilder()
.withJobNumber("email:008")
.withBasedOnPeriod(basedOnPeriod)
.isQuoted()
.create(bundle)
cancellationPeriod.SendEmailByCancellation_TOI = true
(bundle as EntityBundleImpl).CommitOptions.setIgnoreBeanChangeEvents(true)
})
// п. 4 вариант 3 (расторжение ОСАГО)
loadSubmissionWithPopulator("email:009_base", "B000457766", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(10), {}, true,
:populator = \pp -> {
pp.PeriodAdditional_Toi.NeedToSendPolicy = true
})
runTransactionAsUser(null, "TinkoffEmailMessageTransport - B000457766 osago cancellation", \bundle -> {
var basedOnPeriod = findPeriodByJobNumber("email:009_base", bundle)
var cancellationPeriod = new CancellationBuilder()
.withJobNumber("email:009")
.withBasedOnPeriod(basedOnPeriod)
.isQuoted()
.create(bundle)
cancellationPeriod.SendEmailByCancellation_TOI = true
cancellationPeriod.Vehicle.VIN = null
(bundle as EntityBundleImpl).CommitOptions.setIgnoreBeanChangeEvents(true)
})
// п. 6 вариант 1 (изменение КАСКО с положительным изменением премии)
loadSubmission("email:010_base", "B000457766", PCCoercions.makeProductModel<Product>("TinkoffKASKO"),
SampleDataConstants.getBaseDateMinus(10), {}, true)
runTransactionAsUser(null, "TinkoffEmailMessageTransport - B000457766 kasko change with positive premium change",
\bundle -> {
var basedOnPeriod = findPeriodByJobNumber("email:010_base", bundle)
var changePeriod = new PolicyChangeBuilder()
.withJobNumber("email:010")
.withBasedOnPeriod(basedOnPeriod)
.create(bundle)
changePeriod.TransactionCostRPT = MonetaryAmounts.ofDefaultCurrency(100)
})
// п. 7 вариант 1
loadSubmissionWithPopulator("email:011", "B000457766", PCCoercions.makeProductModel<Product>("TinkoffKASKO"),
SampleDataConstants.getBaseDateMinus(10), {}, false,
:populator = \pp -> {
pp.PolicyNumber = "email:011"
pp.TermNumber = 1
pp.IsPSIRequired_TOI = true
})
// п. 8
loadSubmissionWithPopulator("email:012", "B000457766", PCCoercions.makeProductModel<Product>("TPTinkoffProperty"),
SampleDataConstants.getBaseDateMinus(10), {}, false,
:populator = \pp -> {
pp.TPLine.CalculationType = HCCalcType_Toi.TC_PROPERTY1
pp.TermType = TermType.TC_ANNUAL
})
loadSubmission("email:0013", "B000457766", PCCoercions.makeProductModel<Product>("TVLTravel"),
SampleDataConstants.getBaseDateMinus(10), {}, true)
runTransactionAsUser(null, "TinkoffEmailMessageTransport - B000457766 travel cancellation", \bundle -> {
var basedOnPeriod = findPeriodByJobNumber("email:007_base", bundle)
var changePeriod = new PolicyChangeBuilder()
.withJobNumber("email:0014")
.withBasedOnPeriod(basedOnPeriod)
.isQuoted()
.create(bundle)
(bundle as EntityBundleImpl).CommitOptions.setIgnoreBeanChangeEvents(true)
})
// Полисы для тестирования AccountVehicleAPI
// 1. Полис не выпущен
loadSubmission("100000000", "A-AVAPI-000", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(0, 0, 30), new String[0], false)
loadSubmission("100000018", "A-AVAPI-006", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(0, 0, 30), new String[0], false)
// 2. Полис выпущен, нет оплаты
loadSubmission("100000002", "A-AVAPI-001", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(0, 0, 30), new String[0], true)
// 3. Полис выпущен, есть оплата
loadSubmission("100000003", "A-AVAPI-002", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(0, 0, 30), new String[0], true)
// 4. Полис выпущен, есть полата, выпущена отмена
loadSubmission("100000004", "A-AVAPI-003", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(0, 0, 30), new String[0], true)
runTransactionAsUser(null, "Cancellation 100000004", \bundle -> {
var basedOnPeriod = findPeriodByJobNumber("100000004", bundle)
new CancellationBuilder().withJobNumber("100000005")
.withBasedOnPeriod(basedOnPeriod)
.withEffectiveDate(basedOnPeriod.PeriodStart.addMonths(1))
.canceledByCarrier()
.canceledForNonpayment()
.withProrataRefund()
.create(bundle)
})
// Полисы для тестирования AccountVehicleService
// 1. Полис не выпущен
loadSubmission("100000010", "A-AVAPI-000", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(0, 0, 30), new String[0], false)
// 2. Полис выпущен, нет оплаты
loadSubmission("100000012", "A-AVAPI-001", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(0, 0, 30), new String[0], true)
// 3. Полис выпущен, есть оплата
loadSubmission("100000013", "A-AVAPI-002", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(0, 0, 30), new String[0], true)
// 4. Полис выпущен, есть полата, выпущена отмена
loadSubmission("100000014", "A-AVAPI-003", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(0, 0, 30), new String[0], true)
runTransactionAsUser(null, "Cancellation 100000004", \bundle -> {
var basedOnPeriod = findPeriodByJobNumber("100000004", bundle)
new CancellationBuilder().withJobNumber("100000005")
.withBasedOnPeriod(basedOnPeriod)
.withEffectiveDate(basedOnPeriod.PeriodStart.addMonths(1))
.canceledByCarrier()
.canceledForNonpayment()
.withProrataRefund()
.create(bundle)
})
//ImplByParamsForPolicyPeriodV2Test.testSuccessOnValidVehicleOwnerBlock()
loadSubmission("Job:IBPFPP01", "IBPFPP01", PCCoercions.makeProductModel<Product>("TinkoffKASKO"),
SampleDataConstants.getBaseDateMinus(0, 0, 20), new String[0], true, "Policy:IBPFPP01")
//FindProlongationHistoryTest.testSuccessOnValidParams()
loadSubmission("FindProlongationHistoryTest01", "FPH01", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), new String[0], true)
//ContactServicePoliciesVehiclesTest.testSuccess()
loadSubmission("PoliciesVehiclesTest01", "CSPV01", PCCoercions.makeProductModel<Product>("TinkoffKASKO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), new String[0], true)
//GetSilverDatInformationTest.testSuccess()
loadSubmission("Job:GSDI01", "GSDI01", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(0, 0, 30), new String[0], true)
loadSubmission("SmevTest01", "GSDI01", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(0, 0, 30), new String[0], true)
loadSubmission("SmevTest02", "GPDBAV01", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(0, 0, 30), new String[0], true)
// TinkoffSubmissionAPITest
loadSubmissionWithPopulator("createandbindpolicy", "B000457766", PCCoercions.makeProductModel<Product>("TPTinkoffProperty"),
SampleDataConstants.getBaseDateMinus(10), {}, true,
:populator = \pp -> {
pp.TPLine.CalculationType = HCCalcType_Toi.TC_PROPERTY1
pp.TermType = TermType.TC_ANNUAL
pp.PolicyTerm.BankAgreementNumber_Toi = "BankAgreement1"
})
//полис для тестирования TinkoffRenewalAPI
loadSubmission("APIRenewalTest00", "B000457766", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), new String[0], true)
runTransactionAsUser(null,
"APIRenewalTest - B000457766 OSG with Owner", \bundle -> {
var period = findPeriodByJobNumber("APIRenewalTest00", bundle)
period.PolicyNumber = "APIRenewalTest00"
period.TermNumber = 1
period.addNewPolicyContactRoleForContact(period.Policy.Account.AccountHolderContact,
PolicyContactRole.TC_OSGVEHICLEOWNER_TOI)
period.TermType = TermType.TC_ANNUAL
(bundle as EntityBundleImpl).CommitOptions.setIgnoreBeanChangeEvents(true)
})
runTransactionAsUser(null, "APIRenewalTest01", \bundle -> {
var ren = new RenewalBuilder()
.withJobNumber("APIRenewalTest01")
.withBasedOnPeriod(findPeriodByJobNumber("APIRenewalTest00", bundle))
.isWithdrawn()
.create(bundle)
var cart = new CartSelectionBuilder()
.withCartNumber("5326891123")
.withCartStatus(SharedCartStatus_Toi.TC_DRAFT_SELECTION)
.create(bundle)
var deal = new DealBuilder()
.create(bundle)
var cartToPeriod = new CartToPeriodBuilder()
.withCart(cart)
.withPolicyPeriod(ren)
.withStartDate(Date.CurrentDate)
.create(bundle)
cart.Deal = deal
ren.addToLinkedCarts(cartToPeriod)
}
)
runTransactionAsUser(null, "APIRenewalTest02", \bundle -> {
var ren = new RenewalBuilder()
.withJobNumber("APIRenewalTest02")
.withBasedOnPeriod(findPeriodByJobNumber("APIRenewalTest00", bundle))
.isDraft()
.create(bundle)
var cart = new CartSelectionBuilder()
.withCartNumber("5326891124")
.withCartStatus(SharedCartStatus_Toi.TC_DRAFT_SELECTION)
.create(bundle)
var deal = new DealBuilder()
.create(bundle)
var cartToPeriod = new CartToPeriodBuilder()
.withCart(cart)
.withPolicyPeriod(ren)
.withStartDate(Date.CurrentDate)
.create(bundle)
cart.Deal = deal
ren.addToLinkedCarts(cartToPeriod)
})
//полис для тестирования RenewalServiceToiAPI
loadSubmission("RenewalTest01", "B000457766", PCCoercions.makeProductModel<Product>("TinkoffOSAGO"),
SampleDataConstants.getBaseDateMinus(2, 0, 90), new String[0], true)
runTransactionAsUser(null,
"RenewalServiceToiAPI - B000457766 OSG with Owner", \bundle -> {
var period = findPeriodByJobNumber("RenewalTest01", bundle)
period.PolicyNumber = "RenewalTest01"
period.TermNumber = 1
period.addNewPolicyContactRoleForContact(period.Policy.Account.AccountHolderContact,
PolicyContactRole.TC_OSGVEHICLEOWNER_TOI)
period.TermType = TermType.TC_ANNUAL
(bundle as EntityBundleImpl).CommitOptions.setIgnoreBeanChangeEvents(true)
})
runTransactionAsUser(null, "Renewal02", \bundle ->
new RenewalBuilder()
.withJobNumber("RenewalTest02")
.withBasedOnPeriod(findPeriodByJobNumber("RenewalTest01", bundle))
.isWithdrawn()
.create(bundle))
loadSubmissionWithPopulator("TVLS7001", "B000457766", PCCoercions.makeProductModel<Product>("TVLTravel"),
SampleDataConstants.getBaseDateMinus(10), {}, true, :populator = \period -> {
period.ProducerCodeOfRecord.Code = "S7ProdCode"
period.ProducerCodeOfRecord.Agreement = new Agreement_Toi(period)
})
loadSubmissionWithPopulator("TPHPU01", "B000481818", PCCoercions.makeProductModel<Product>("TPTinkoffProperty"),
SampleDataConstants.getBaseDateMinus(10), {}, true,
:populator = \pp -> {
pp.Offering = gw.api.productmodel.OfferingLookup.getByCodeIdentifier("TPHPU1")
pp.TermType = TermType.TC_MONTHLY
})
//Полис для тестирования testKaskoPolicyReistatment
loadSubmission("100000015", "A-AVAPI-005", PCCoercions.makeProductModel<Product>("TinkoffKASKO"),
SampleDataConstants.getBaseDateMinus(0, 0, 30), new String[0], true)
runTransactionAsUser(null, "100000015 cancellation", \bundle -> {
var basedOnPeriod = findPeriodByJobNumber("100000015", bundle)
PolicyPeriodUtil.addNewPaymentStatus(basedOnPeriod, BCPaymentStatus.TC_PAID)
new CancellationBuilder().withJobNumber("100000016")
.withBasedOnPeriod(basedOnPeriod)
.canceledByCarrier()
.withProrataRefund()
.create(bundle)
})
runTransactionAsUser(null, "100000016 reistatment", \bundle -> {
var basedOnPeriod = findPeriodByJobNumber("100000016", bundle)
new ReinstatementBuilder().withJobNumber("100000017")
.withBasedOnPeriod(basedOnPeriod)
.withEffectiveDate(basedOnPeriod.PeriodStart.addMonths(1))
.create(bundle)
})
})
}
/**
* @see AbstractSampleDataCollection#loadSubmission
*/
public static function loadSubmission(jobNumber : String, accountNumber : String, product : Product,
effDate : Date, insuredNames : String[], bound : Boolean,
publicID : String = null) : PolicyPeriod {
return loadSubmissionWithPopulator(jobNumber, accountNumber, product, effDate, insuredNames, bound, publicID)
}
public static function loadSubmissionWithPopulator(jobNumber : String, accountNumber : String, product : Product,
effDate : Date, insuredNames : String[], bound : Boolean,
publicID : String = null,
vehicleCategory : VehicleCategory_Toi = null,
vehicleUsage : VehicleUsage_Toi = null,
populator : block(PolicyPeriod) = null,
covPatternCodes : String[] = null,
coverages : CoverageBuilder[] = null,
offering : String = null) : PolicyPeriod {
var account = findAccount(accountNumber)
if (account == null) {
throw "Cannot find account #" + accountNumber + " for generating Submission " + jobNumber
}
var policyPeriod : PolicyPeriod
runTransactionAsUser("su", "Submission " + jobNumber, \b -> {
account = b.loadBean(account?.ID) as Account
// var offeringoffering = gw.api.productmodel.OfferingLookup.getByCodeIdentifier("TPHPU1")
var builder = new SubmissionBuilder()
.withAccount(account)
.withProduct(product)
.withEffectiveDate(effDate)
.withJobNumber(jobNumber)
.withTotalCostRPT(10000)
.withTotalPremiumRPT(10000)
.withProducerSelection(new SubmissionBuilder().makeProducerSelection(b))
// .withOffering(gw.api.productmodel.OfferingLookup.getByCodeIdentifier("TPHPU1"))
builder.addPopulator(\pp -> {
(pp.Job as Submission).addToGroup()
})
if (publicID != null) {
builder.withPublicId(publicID)
}
if (!bound) {
builder = builder.isQuoted()
}
var accountContacts = new ArrayList<AccountContact>()
for (insuredName in insuredNames) {
var accountContact = findAccountContact(account, typekey.AccountContactRole.TC_NAMEDINSURED, insuredName)
accountContacts.add(accountContact)
}
if (product == PCCoercions.makeProductModel<Product>("TinkoffOSAGO")) {
configureBuilderForOsago(builder, account, vehicleCategory, vehicleUsage)
} else if (product == PCCoercions.makeProductModel<Product>("TinkoffKASKO")) {
configureBuilderForKasko(builder, account, accountContacts, vehicleCategory, covPatternCodes, coverages)
} else if (product == PCCoercions.makeProductModel<Product>("TVLTravel")) {
configureBuilderForTvlTravel(builder, account)
} else if (product == PCCoercions.makeProductModel("TPTinkoffProperty")) {
configureForTpTinkoffProperty(builder, accountContacts)
} else {
configureBuilderDefault(builder, accountContacts)
}
if (offering != null) {
builder.withOffering(offering)
}
if (populator != null) {
builder.addPopulator(populator)
}
policyPeriod = builder.create(b)
})
try {
validatePeriod(policyPeriod)
} catch (e) {
LOGGER.warn("PolicyPeriod validation failed", e)
}
return policyPeriod
}
private static function configureBuilderForOsago(builder : SubmissionBuilder,
account : Account,
vehicleCategory : VehicleCategory_Toi,
vehicleUsage : VehicleUsage_Toi) {
var accountDriver = findAccountContact(account, typekey.AccountContactRole.TC_DRIVER)
var personDriver = account.Bundle.add(accountDriver.Contact as Person)
personDriver.General_DrvLicDate = Date.CurrentDate.addYears(-1).formatDate(SHORT)
var accountVehicle = account.Vehicles?.first() ?: new AccountVehicle_ToiBuilder()
.withAccount(account).withVIN("XXX111XXX222XXX333XX")
.withRegistrationNumber("А001СС99")
.createAndCommitInNewBundle()
var vehicle = new OSGVehicleBuilder()
.withAccountVehicle(accountVehicle)
.withCategory(vehicleCategory ?: VehicleCategory_Toi.TC_B)
.withVehicleUsage(vehicleUsage ?: TC_PERSONAL)
var driver = new OSGDriverBuilder().withAccountContactRole(accountDriver.getRole(TC_DRIVER))
if (account.AccountContacts*.Roles?.hasMatch(\role -> role.Subtype == TC_VEHICLEOWNER_TOI)) {
var accountVehicleOwnerRole = findAccountContact(account, typekey.AccountContactRole.TC_VEHICLEOWNER_TOI)
.getRole(TC_VEHICLEOWNER_TOI)
var vehicleOwner = new OSGVehicleOwnerBuilder()
.withOSGLine(new OSGLineBuilder())
.withAccountContactRole(accountVehicleOwnerRole)
vehicleOwner.syncFields(accountVehicleOwnerRole)
builder.withPolicyContactRole(vehicleOwner)
}
builder.withPolicyLine(new OSGLineBuilder()
.withVehicle(vehicle)
.withPolicyDriver(driver))
.withPolicyContactRole(driver)
builder.addPopulator(\pp -> {
pp.IsEPolicy = true
pp.Job.addToEramies_Toi(new ERAMI_Toi() {:BSONumber = '1234'})
})
builder.addPopulator(\pp -> {
pp.BusinessTests_Toi = {
new BusinessTest_Toi() {
:PolicyPeriod = pp,
:Code = "Test Code 1",
:Value = "Test Value 1"
}}
})
builder.addPopulator(\pp -> {
pp.Policy.MarkChannel_TOI = "MarkChannel_GW"
pp.Policy.MarketingSrc_TOI = "MarketingSrc_GW"
})
}
private static function configureBuilderForKasko(builder : SubmissionBuilder,
account : Account,
accountContacts : List<AccountContact>,
vehicleCategory : VehicleCategory_Toi,
covPatternCodes : String[],
coverages : CoverageBuilder[]) {
var accountVehicle = account.Vehicles?.first() ?: new AccountVehicle_ToiBuilder()
.withAccount(account).withVIN("XXX111XXX222XXX333X9")
.withRegistrationNumber("А001СС97")
.withToiID(202836)
.withYear("2019")
.createAndCommitInNewBundle()
var kskVehicleBuilder = new KSKVehicleBuilder(accountVehicle)
.withCategory(vehicleCategory).withInsuranceTerritory(KSKTerritory_Toi.TC_RUSSIA)
for (code in covPatternCodes) {
kskVehicleBuilder.withCoverage(new CoverageBuilder(KSKVehicleCov_Toi)
.withPatternByCodeIdentifier(code))
}
for (coverage in coverages) {
kskVehicleBuilder.withCoverage(coverage)
}
builder
.withPolicyLine(new KSKLineBuilder()
.withVehicle(kskVehicleBuilder))
if (account.AccountContacts*.Roles?.hasMatch(\role -> role.Subtype == TC_VEHICLEOWNER_TOI)) {
var accountVehicleOwnerRole = findAccountContact(account, typekey.AccountContactRole.TC_VEHICLEOWNER_TOI)
.getRole(TC_VEHICLEOWNER_TOI)
var vehicleOwner = new KSKVehicleOwnerBuilder()
.withAccountContactRole(accountVehicleOwnerRole)
vehicleOwner.syncFields(accountVehicleOwnerRole)
builder.withPolicyContactRole(vehicleOwner)
}
for (accountContact in accountContacts) {
//every other line, we add additional name insured
builder.withPolicyContactRole(new PolicyAddlNamedInsuredBuilder()
.withAccountContactRole(accountContact.getRole(TC_NAMEDINSURED)))
}
builder.addPopulator(\p -> {
p.NonDiscountedPrem_TOI = MonetaryAmounts.ofDefaultCurrency(10000)
})
builder.addPopulator(11, \pp -> {
if (pp.KSKVehicleOwner != null) {
pp.KSKVehicleOwner.KSKVehicle = pp.Vehicle as KSKVehicle_Toi
}
})
}
private static function configureBuilderForTvlTravel(builder : SubmissionBuilder, account : Account) {
var person = findAccountContact(account, typekey.AccountContactRole.TC_ACCOUNTHOLDER).Contact as Person
var tvlLineBuilder = new TVLLineExtBuilder()
.withDayCount(7)
.withTripEnd(Date.CurrentDate.addDays(15))
.withCountry(new TPCountry_TOI() {:Country_TOI = TC_RU})
.withAssistanceCompany(findCompany("Wright Construction", "818-446-1206")) // todo удалить скрипт параметр хелпер в SMSTest
.withBookingCode("test")
.withTraveller(new TravellerExtBuilder()
.withCoveredPerson(person))
builder
.withPolicyLine(tvlLineBuilder)
.withPeriodStart(Date.CurrentDate.addDays(10))
.withPeriodEnd(Date.CurrentDate.addDays(10).addYears(1).addDays(-1))
builder.addPopulator(\period -> {
period.addToDeliveryMethod_TOI(new TPDeliveryMethod_TOI(period) {:DeliveryMethod = TC_EMAIL})
})
}
private static function configureForTpTinkoffProperty(builder : SubmissionBuilder,
accountContacts : List<AccountContact>) {
var tpLineBuilder = new TPLineBuilder()
.withPolicyType(SharedPolicyType_TOI.TC_BUILDING)
builder.withPolicyLine(tpLineBuilder)
builder.addPopulator(\period -> {
period.addToDeliveryMethod_TOI(new TPDeliveryMethod_TOI(period) {:DeliveryMethod = TC_EMAIL})
period.TPLine.addToDwellings(new DwellingTOI(period) {:Recipient = "SamplePolicyData Test Recipient"})
})
for (accountContact in accountContacts) {
//every other line, we add additional name insured
builder.withPolicyContactRole(new PolicyAddlNamedInsuredBuilder()
.withAccountContactRole(accountContact.getRole(TC_NAMEDINSURED)))
}
}
private static function configureBuilderDefault(builder : SubmissionBuilder, accountContacts : List<AccountContact>) {
for (accountContact in accountContacts) {
//every other line, we add additional name insured
builder.withPolicyContactRole(new PolicyAddlNamedInsuredBuilder()
.withAccountContactRole(accountContact.getRole(TC_NAMEDINSURED)))
}
}
}
Editor is loading...
Leave a Comment