Untitled
unknown
plain_text
a year ago
66 kB
4
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