hl-core 0.0.9-beta.50 → 0.0.9-beta.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,7 +8,10 @@
8
8
  :text="$dataStore.t('preliminaryCalculation')"
9
9
  icon="mdi-alert text-[#FCB016]"
10
10
  ></base-message-block>
11
- <base-form-section v-if="isUnderwriterRole && $dataStore.hasClientAnketa && $dataStore.isClientAnketaCondition" :title="$dataStore.t('policyholderForm')">
11
+ <base-form-section
12
+ v-if="isUnderwriterRole && $dataStore.hasClientAnketa && $dataStore.isClientAnketaCondition && whichProduct !== 'pensionannuity'"
13
+ :title="$dataStore.t('policyholderForm')"
14
+ >
12
15
  <base-form-input
13
16
  v-model="productConditionsForm.lifeMultiplyClient"
14
17
  :maska="$maska.numbers"
@@ -33,7 +36,7 @@
33
36
  <base-form-input v-model="formStore.policyholderForm.gender.nameRu" class="mb-4" :label="$dataStore.t('form.gender')" :readonly="true" />
34
37
  </base-form-section>
35
38
  <base-form-section
36
- v-if="isUnderwriterRole && $dataStore.members.insuredApp.has === true && whichProduct !== 'lifebusiness' && whichProduct !== 'gns'"
39
+ v-if="isUnderwriterRole && $dataStore.members.insuredApp.has === true && whichProduct !== 'lifebusiness' && whichProduct !== 'gns' && whichProduct !== 'pensionannuity'"
37
40
  :title="$dataStore.t('insuredForm')"
38
41
  >
39
42
  <div v-for="(insured, index) of formStore.insuredForm" :key="index">
@@ -45,7 +48,10 @@
45
48
  <base-form-input v-model="insured.gender.nameRu" class="mb-4" :label="$dataStore.t('form.gender')" :readonly="true" />
46
49
  </div>
47
50
  </base-form-section>
48
- <base-form-section v-if="isUnderwriterRole && whichProduct !== 'lifebusiness' && whichProduct !== 'gns'" :title="$dataStore.t('recalculationInfo')">
51
+ <base-form-section
52
+ v-if="isUnderwriterRole && whichProduct !== 'lifebusiness' && whichProduct !== 'gns' && whichProduct !== 'pensionannuity'"
53
+ :title="$dataStore.t('recalculationInfo')"
54
+ >
49
55
  <base-form-input
50
56
  v-model="productConditionsForm.lifeMultiply"
51
57
  :maska="$maska.numbers"
@@ -275,6 +281,119 @@
275
281
  @append="openPanel($dataStore.t('productConditionsForm.processGfot'), $dataStore.processGfot, 'processGfot', $dataStore.getProcessGfot)"
276
282
  />
277
283
  </base-form-section>
284
+ <section v-if="whichProduct === 'pensionannuity'">
285
+ <base-form-section :title="$dataStore.t('pension.compulsoryAmount&Prof')">
286
+ <base-form-input
287
+ v-model="pensionCalculationParams.compulsoryContractAmount"
288
+ :maska="$maska.numbers"
289
+ :readonly="isDisabled"
290
+ :clearable="!isDisabled"
291
+ :label="$dataStore.t('pension.compulsoryContractAmount')"
292
+ />
293
+ <base-form-input
294
+ v-model="pensionCalculationParams.compulsoryProfContractAmount"
295
+ :maska="$maska.numbers"
296
+ :readonly="isDisabled"
297
+ :clearable="!isDisabled"
298
+ :label="$dataStore.t('pension.compulsoryProfContractAmount')"
299
+ />
300
+ <base-animation>
301
+ <base-form-input
302
+ v-if="pensionCalculationParams.compulsoryProfContractAmount && pensionCalculationParams.compulsoryProfContractAmount != 0"
303
+ v-model="pensionForm.compulsoryProfMonthCount"
304
+ :maska="$maska.numbers"
305
+ :readonly="isDisabled"
306
+ :clearable="!isDisabled"
307
+ :label="$dataStore.t('pension.compulsoryProfMonthCount')"
308
+ />
309
+ </base-animation>
310
+ <base-form-input
311
+ v-model="pensionCalculationParams.voluntaryContractAmount"
312
+ :maska="$maska.numbers"
313
+ :readonly="isDisabled"
314
+ :clearable="!isDisabled"
315
+ :label="$dataStore.t('pension.voluntaryContractAmount')"
316
+ />
317
+ <base-form-input
318
+ v-model="pensionCalculationParams.ownFundsRaisAmount"
319
+ :maska="$maska.numbers"
320
+ :readonly="isDisabled"
321
+ :clearable="!isDisabled"
322
+ :label="$dataStore.t('pension.ownFundsRaisAmount')"
323
+ />
324
+ </base-form-section>
325
+ <base-form-section :title="$dataStore.t('pension.companyName')">
326
+ <base-panel-input
327
+ v-model="pensionForm.transferContractCompany"
328
+ :value="pensionForm.transferContractCompany?.nameRu"
329
+ :label="$dataStore.t('pension.transferContractCompany')"
330
+ :readonly="isDisabled"
331
+ :clearable="!isDisabled"
332
+ append-inner-icon="mdi mdi-chevron-right"
333
+ @append="openPanel($dataStore.t('pension.transferContractCompany'), $dataStore.transferContractCompanies, 'transferContractCompany', $dataStore.getInsuranceCompanies)"
334
+ />
335
+ <base-form-input
336
+ v-model="transferContractDate"
337
+ :maska="$maska.date"
338
+ :label="$dataStore.t('pension.contractDate')"
339
+ :readonly="isDisabled"
340
+ append-inner-icon="mdi mdi-calendar-blank-outline"
341
+ :clearable="!isDisabled"
342
+ :rules="pensionForm.transferContractCompany?.ids ? $rules.required.concat($rules.date) : []"
343
+ />
344
+ <base-form-input
345
+ v-model="pensionForm.transferContractNumber"
346
+ :label="$dataStore.t('pension.globalId')"
347
+ :readonly="isDisabled"
348
+ :clearable="!isDisabled"
349
+ :rules="pensionForm.transferContractCompany?.ids ? $rules.required : []"
350
+ />
351
+ <base-form-input
352
+ v-model="transferContractFirstPaymentDate"
353
+ :maska="$maska.date"
354
+ :label="$dataStore.t('pension.transferContractFirstPaymentDate')"
355
+ append-inner-icon="mdi mdi-calendar-blank-outline"
356
+ :readonly="isDisabled"
357
+ :clearable="!isDisabled"
358
+ :rules="pensionForm.transferContractCompany?.ids ? $rules.required.concat($rules.date) : []"
359
+ />
360
+ <base-form-input
361
+ v-model="pensionCalculationParams.transferContractAmount"
362
+ :maska="$maska.numbers"
363
+ :label="$dataStore.t('pension.transferContractAmount')"
364
+ :rules="pensionForm.transferContractCompany?.ids ? $rules.required : []"
365
+ />
366
+ <base-form-toggle v-model="pensionForm.transferContractIsOppv" :disabled="isDisabled" :has-border="false" :title="$dataStore.t('pension.isOPPVTransfer')" />
367
+ </base-form-section>
368
+ <base-form-section :title="$dataStore.t('pension.paymentTerms')">
369
+ <base-form-input
370
+ v-model="contractDate"
371
+ :maska="$maska.date"
372
+ :rules="!isDisabled ? $rules.required.concat($rules.date) : []"
373
+ :readonly="isDisabled"
374
+ :clearable="!isDisabled"
375
+ :min-date="new Date()"
376
+ :label="$dataStore.t('pension.contractDate')"
377
+ append-inner-icon="mdi mdi-calendar-blank-outline"
378
+ />
379
+ <span v-if="maxDate && !isDisabled" class="px-3 font-light text-sm bg-white py-0 mt-[-5px]" style="color: #a0b3d8 !important">до {{ maxDate }}</span>
380
+ <base-form-input v-model="dateOfBegin" :maska="$maska.date" readonly :label="$dataStore.t('pension.paymentsDate')" append-inner-icon="mdi mdi-calendar-blank-outline" />
381
+ <base-rounded-select
382
+ v-model="pensionForm.guaranteedPeriod"
383
+ class="pension-guaranteed-period"
384
+ :readonly="isDisabled"
385
+ :clearable="!isDisabled"
386
+ :label="$dataStore.t('pension.guaranteedPeriod')"
387
+ :items="guaranteedPeriodList"
388
+ :hide-details="true"
389
+ />
390
+ <base-form-input v-model="pensionForm.frequencyPayments" disabled :label="$dataStore.t('pension.frequencyPayments')" />
391
+ <base-form-input v-model="pensionForm.periodPayments" disabled :label="$dataStore.t('pension.paymentPeriod')" />
392
+ <base-form-input v-model="pensionForm.insuranceProgramType" disabled :label="$dataStore.t('pension.insuranceProgramType')" />
393
+ <base-form-input v-model="pensionAmount" readonly :maska="$maska.numbers" :label="$dataStore.t('pension.pensionAmount')" />
394
+ <base-form-input v-model="pensionForm.payment" readonly :maska="$maska.numbers" :label="$dataStore.t('pension.pensionPayment')" />
395
+ </base-form-section>
396
+ </section>
278
397
  <base-form-section v-if="hasAnnuityPayments" :title="$dataStore.t('calculationAnnuityPayments')">
279
398
  <base-form-toggle
280
399
  v-model="productConditionsForm.additionalConditionAnnuityPayments"
@@ -488,8 +607,9 @@
488
607
  </base-form-section>
489
608
  </v-form>
490
609
  <base-btn v-if="!$dataStore.isCalculator && isCalculator && hasCalculated" :btn="$styles.greenLightBtn" :text="$dataStore.t('buttons.toStatement')" @click="toStatement" />
610
+ <base-btn v-if="!isDisabled && $dataStore.isPension && isTask" :text="$dataStore.t('buttons.save')" :loading="$dataStore.isLoading" type="submit" @click="submitForm" />
491
611
  <base-btn
492
- v-if="$dataStore.isCalculator ? true : !isDisabled && isTask && ($dataStore.isInitiator() || $dataStore.isUnderwriter())"
612
+ v-if="$dataStore.isCalculator ? true : !isDisabled && isTask && ($dataStore.isInitiator() || $dataStore.isUnderwriter()) && !$dataStore.isPension"
493
613
  :loading="isCalculating"
494
614
  :text="$dataStore.t('buttons.calculate')"
495
615
  @click="submitForm"
@@ -603,19 +723,25 @@ export default defineComponent({
603
723
 
604
724
  const additionalTerms = ref<AddCover[]>([]);
605
725
 
606
- const isShownAdditionalTerms = computed(() => {
607
- if (whichProduct.value === 'gons') {
608
- return false;
609
- }
610
- return true;
611
- });
726
+ const maxDate = ref();
727
+ const dateOfBegin = ref();
728
+ const contractDate = ref();
729
+ const transferContractDate = ref();
730
+ const transferContractFirstPaymentDate = ref();
731
+ const guaranteedPeriodList = Array.from(Array(35), (e, i) => i + 1);
732
+ const pensionForm = formStore.applicationData?.pensionApp ?? undefined;
612
733
 
613
734
  const isMultiplePanelOpen = ref<boolean>(false);
614
-
615
735
  const multiplePanelValue = ref<CountryValue>(new CountryValue());
616
736
  const multiplePanelList = ref<CountryValue[]>([]);
617
737
  const calculatorForm = productConditionsForm.calculatorForm;
618
738
 
739
+ const isShownAdditionalTerms = computed(() => {
740
+ if (whichProduct.value === 'gons') {
741
+ return false;
742
+ }
743
+ return true;
744
+ });
619
745
  const isUnderwriterForm = computed(() => {
620
746
  if (route.params.taskId === '0 ' || props.isCalculator === true) {
621
747
  return false;
@@ -845,7 +971,7 @@ export default defineComponent({
845
971
  return isDisabled.value;
846
972
  });
847
973
  const hasDefault = computed(() => {
848
- if (whichProduct.value === 'lifetrip') {
974
+ if (whichProduct.value === 'lifetrip' || whichProduct.value === 'pensionannuity') {
849
975
  return false;
850
976
  }
851
977
  return true;
@@ -896,6 +1022,25 @@ export default defineComponent({
896
1022
  return dataStore.t('generalConditions');
897
1023
  });
898
1024
 
1025
+ const pensionCalculationParams = ref({
1026
+ compulsoryContractAmount: pensionForm && pensionForm.compulsoryContractAmount && pensionForm.compulsoryContractAmount != 0 ? pensionForm.compulsoryContractAmount : null,
1027
+ voluntaryContractAmount: pensionForm && pensionForm.voluntaryContractAmount && pensionForm.voluntaryContractAmount != 0 ? pensionForm.voluntaryContractAmount : null,
1028
+ ownFundsRaisAmount: pensionForm && pensionForm.ownFundsRaisAmount && pensionForm.ownFundsRaisAmount != 0 ? pensionForm.ownFundsRaisAmount : null,
1029
+ compulsoryProfContractAmount:
1030
+ pensionForm && pensionForm.compulsoryProfContractAmount && pensionForm.compulsoryProfContractAmount != 0 ? pensionForm.compulsoryProfContractAmount : null,
1031
+ transferContractAmount: pensionForm && pensionForm.transferContractAmount && pensionForm.transferContractAmount != 0 ? pensionForm.transferContractAmount : null,
1032
+ });
1033
+
1034
+ const pensionAmount = computed(() =>
1035
+ pensionCalculationParams.value
1036
+ ? (Number(pensionCalculationParams.value.compulsoryContractAmount) ?? 0) +
1037
+ (Number(pensionCalculationParams.value.voluntaryContractAmount) ?? 0) +
1038
+ (Number(pensionCalculationParams.value.ownFundsRaisAmount) ?? 0) +
1039
+ (Number(pensionCalculationParams.value.compulsoryProfContractAmount) ?? 0) +
1040
+ (Number(pensionCalculationParams.value.transferContractAmount) ?? 0)
1041
+ : 0,
1042
+ );
1043
+
899
1044
  const formatTermValue = (term: number) => {
900
1045
  if (term !== null) {
901
1046
  const termNumber = Number(term);
@@ -933,6 +1078,9 @@ export default defineComponent({
933
1078
  if (whichProduct.value === 'lifetrip') {
934
1079
  // @ts-ignore
935
1080
  calculatorForm[currentPanel.value] = item.nameRu === null ? new Value() : item;
1081
+ } else if (whichProduct.value === 'pensionannuity') {
1082
+ // @ts-ignore
1083
+ pensionForm[currentPanel.value] = item.nameRu === null ? new Value() : item;
936
1084
  } else {
937
1085
  // @ts-ignore
938
1086
  productConditionsForm[currentPanel.value] = item.nameRu === null ? new Value() : item;
@@ -1281,6 +1429,32 @@ export default defineComponent({
1281
1429
  } else {
1282
1430
  await dataStore.calculatePrice();
1283
1431
  }
1432
+ } else if (whichProduct.value === 'pensionannuity') {
1433
+ if (
1434
+ pensionCalculationParams.value &&
1435
+ pensionCalculationParams.value.compulsoryProfContractAmount &&
1436
+ pensionForm &&
1437
+ pensionForm.compulsoryProfContractAmount != 0 &&
1438
+ pensionForm.compulsoryProfMonthCount < 60
1439
+ ) {
1440
+ dataStore.showToaster('error', 'Минимальное число дней уплаты ОППВ должно быть больше 60');
1441
+ return;
1442
+ }
1443
+ const data = {
1444
+ ...pensionForm,
1445
+ ...(pensionCalculationParams.value = {
1446
+ ...pensionCalculationParams.value,
1447
+ compulsoryContractAmount: Number(pensionCalculationParams.value.compulsoryContractAmount),
1448
+ voluntaryContractAmount: Number(pensionCalculationParams.value.voluntaryContractAmount),
1449
+ ownFundsRaisAmount: Number(pensionCalculationParams.value.ownFundsRaisAmount),
1450
+ compulsoryProfContractAmount: Number(pensionCalculationParams.value.compulsoryProfContractAmount),
1451
+ transferContractAmount: Number(pensionCalculationParams.value.transferContractAmount),
1452
+ }),
1453
+ transferContractCompany: pensionForm.transferContractCompany?.nameRu ?? null,
1454
+ transferContractDate: transferContractDate.value ? formatDate(transferContractDate.value) : null,
1455
+ transferContractFirstPaymentDate: transferContractFirstPaymentDate.value ? formatDate(transferContractFirstPaymentDate.value) : null,
1456
+ };
1457
+ await dataStore.setApplication(data, true);
1284
1458
  } else {
1285
1459
  if (whichSum.value === 'requestedSumInsured') {
1286
1460
  productConditionsForm.insurancePremiumPerMonth = null;
@@ -1360,6 +1534,7 @@ export default defineComponent({
1360
1534
  additionalTerms.value = formStore.additionalInsuranceTerms;
1361
1535
  } else {
1362
1536
  await dataStore.reCalculate(formStore.applicationData.processInstanceId, recalculationData, route.params.taskId as string, whichSum.value);
1537
+ additionalTerms.value = formStore.additionalInsuranceTerms;
1363
1538
  }
1364
1539
  }
1365
1540
  isCalculating.value = true;
@@ -1403,7 +1578,7 @@ export default defineComponent({
1403
1578
  if (dataStore.isCalculator) {
1404
1579
  clearFields();
1405
1580
  }
1406
- if (whichProduct.value !== 'lifetrip') {
1581
+ if (whichProduct.value !== 'lifetrip' && whichProduct.value !== 'pensionannuity') {
1407
1582
  if (
1408
1583
  (dataStore.isCalculator || route.params.taskId === '0') &&
1409
1584
  productConditionsForm.requestedSumInsured === null &&
@@ -1458,6 +1633,13 @@ export default defineComponent({
1458
1633
  }, 0),
1459
1634
  );
1460
1635
  }
1636
+ if (whichProduct.value === 'pensionannuity') {
1637
+ contractDate.value = reformatDate(formStore.applicationData.pensionApp.contractDate);
1638
+ dateOfBegin.value = reformatDate(formStore.applicationData.pensionApp.dateOfBegin);
1639
+ transferContractDate.value = reformatDate(formStore.applicationData.pensionApp.transferContractDate);
1640
+ transferContractFirstPaymentDate.value = reformatDate(formStore.applicationData.pensionApp.transferContractFirstPaymentDate);
1641
+ maxDate.value = await dataStore.getVariableData(formStore.applicationData.processCode ?? 1);
1642
+ }
1461
1643
  });
1462
1644
 
1463
1645
  watch(
@@ -1565,7 +1747,14 @@ export default defineComponent({
1565
1747
  subPanelList,
1566
1748
  subTermValue,
1567
1749
  panelCodeList,
1750
+ pensionForm,
1751
+ dateOfBegin,
1752
+ contractDate,
1753
+ transferContractDate,
1754
+ transferContractFirstPaymentDate,
1568
1755
  enabled,
1756
+ maxDate,
1757
+ guaranteedPeriodList,
1569
1758
 
1570
1759
  // Computed
1571
1760
  isTask,
@@ -1612,6 +1801,8 @@ export default defineComponent({
1612
1801
  isDisabledFixInsSum,
1613
1802
  defaultText,
1614
1803
  hasDeathInsFromNS,
1804
+ pensionAmount,
1805
+ pensionCalculationParams,
1615
1806
  hasDeathInsAnyReason,
1616
1807
 
1617
1808
  // Rules
@@ -1647,3 +1838,9 @@ export default defineComponent({
1647
1838
  },
1648
1839
  });
1649
1840
  </script>
1841
+
1842
+ <style>
1843
+ .pension-guaranteed-period .v-field {
1844
+ border: none !important;
1845
+ }
1846
+ </style>