hl-core 0.0.9-beta.46 → 0.0.9-beta.48
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.
- package/api/base.api.ts +9 -2
- package/components/Form/FormToggle.vue +17 -3
- package/components/Pages/ProductConditions.vue +8 -5
- package/components/Panel/PanelHandler.vue +12 -5
- package/composables/classes.ts +6 -2
- package/composables/constants.ts +1 -0
- package/composables/index.ts +43 -0
- package/locales/ru.json +3 -1
- package/package.json +1 -1
- package/store/data.store.ts +72 -32
- package/store/rules.ts +12 -0
- package/types/enum.ts +2 -2
package/api/base.api.ts
CHANGED
|
@@ -712,10 +712,10 @@ export class ApiClass {
|
|
|
712
712
|
data: data,
|
|
713
713
|
});
|
|
714
714
|
}
|
|
715
|
-
async downloadTemplate(fileType: number) {
|
|
715
|
+
async downloadTemplate(fileType: number, processInstanceId?: string | number) {
|
|
716
716
|
return await this.axiosCall({
|
|
717
717
|
method: Methods.GET,
|
|
718
|
-
url: `/${this.productUrl}/api/Application/DownloadTemplate?fileType=${fileType}`,
|
|
718
|
+
url: `/${this.productUrl}/api/Application/DownloadTemplate?fileType=${fileType}&processInstanceId=${processInstanceId}`,
|
|
719
719
|
responseType: 'arraybuffer',
|
|
720
720
|
});
|
|
721
721
|
}
|
|
@@ -727,6 +727,13 @@ export class ApiClass {
|
|
|
727
727
|
});
|
|
728
728
|
}
|
|
729
729
|
|
|
730
|
+
async sendInvoiceToEmail(processInstanceId: string | number, email: string) {
|
|
731
|
+
return await this.axiosCall({
|
|
732
|
+
method: Methods.GET,
|
|
733
|
+
url: `/${this.productUrl}/api/Application/SendInvoiceToEmail?processInstanceId=${processInstanceId}&emailTo=${email}`,
|
|
734
|
+
});
|
|
735
|
+
}
|
|
736
|
+
|
|
730
737
|
async getCalculator(data: SetApplicationRequest) {
|
|
731
738
|
return await this.axiosCall<number>({
|
|
732
739
|
method: Methods.POST,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div
|
|
3
|
-
class="
|
|
4
|
-
:class="[$styles.whiteBg, hasBorder ? 'border-[1px] rounded-lg' : 'border-b-[1px] border-b-[#f3f6fc] rounded']"
|
|
3
|
+
class="!pl-2 md:!pl-5 flex items-center justify-start gap-5"
|
|
4
|
+
:class="[$styles.whiteBg, height, hasBorder ? 'border-[1px] rounded-lg' : 'border-b-[1px] border-b-[#f3f6fc] rounded']"
|
|
5
5
|
>
|
|
6
6
|
<v-switch
|
|
7
7
|
class="base-toggle"
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
"
|
|
13
13
|
color="#009C73"
|
|
14
14
|
hide-details
|
|
15
|
+
:true-value="trueValue"
|
|
16
|
+
:false-value="falseValue"
|
|
15
17
|
:disabled="disabled"
|
|
16
18
|
/>
|
|
17
19
|
<p class="p-2" :class="[$styles.textSimple]">{{ `${title}` }}</p>
|
|
@@ -25,7 +27,7 @@
|
|
|
25
27
|
export default defineComponent({
|
|
26
28
|
props: {
|
|
27
29
|
modelValue: {
|
|
28
|
-
type: Boolean
|
|
30
|
+
type: Boolean as PropType<any>,
|
|
29
31
|
default: '',
|
|
30
32
|
},
|
|
31
33
|
title: {
|
|
@@ -44,6 +46,18 @@ export default defineComponent({
|
|
|
44
46
|
type: Boolean,
|
|
45
47
|
default: true,
|
|
46
48
|
},
|
|
49
|
+
trueValue: {
|
|
50
|
+
type: Boolean as PropType<any>,
|
|
51
|
+
default: true,
|
|
52
|
+
},
|
|
53
|
+
falseValue: {
|
|
54
|
+
type: Boolean as PropType<any>,
|
|
55
|
+
default: false,
|
|
56
|
+
},
|
|
57
|
+
height: {
|
|
58
|
+
type: String,
|
|
59
|
+
default: 'min-h-[74px] '
|
|
60
|
+
}
|
|
47
61
|
},
|
|
48
62
|
emits: ['update:modelValue', 'clicked'],
|
|
49
63
|
});
|
|
@@ -763,6 +763,9 @@ export default defineComponent({
|
|
|
763
763
|
if (whichProduct.value === 'halykkazyna') {
|
|
764
764
|
return baseCondition.concat(dataStore.rules.coverPeriodFrom2to20);
|
|
765
765
|
}
|
|
766
|
+
if (whichProduct.value === 'amuletlife') {
|
|
767
|
+
return baseCondition.concat(dataStore.rules.coverPeriodFrom1or5to15);
|
|
768
|
+
}
|
|
766
769
|
return baseCondition;
|
|
767
770
|
});
|
|
768
771
|
const currencySymbolsAddTerm = computed(() => {
|
|
@@ -1071,11 +1074,11 @@ export default defineComponent({
|
|
|
1071
1074
|
};
|
|
1072
1075
|
|
|
1073
1076
|
const filterList = (list: Value[], key: string) => {
|
|
1074
|
-
if (whichProduct.value === 'baiterek') {
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
}
|
|
1077
|
+
// if (whichProduct.value === 'baiterek') {
|
|
1078
|
+
// if (dataStore.isManagerHalykBank()) {
|
|
1079
|
+
// if (key === 'paymentPeriod') return list.filter(i => i.code !== 'single');
|
|
1080
|
+
// }
|
|
1081
|
+
// }
|
|
1079
1082
|
return list;
|
|
1080
1083
|
};
|
|
1081
1084
|
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
</div>
|
|
63
63
|
</section>
|
|
64
64
|
<section v-if="choosePayActions">
|
|
65
|
-
<div v-if="!isEpayPay" :class="[$styles.flexColNav]">
|
|
65
|
+
<div v-if="!isEpayPay && !isOfflinePay" :class="[$styles.flexColNav]">
|
|
66
66
|
<base-btn :text="$dataStore.t('buttons.payEpay')" :loading="loading" @click="handlePayAction('epay')" />
|
|
67
67
|
<base-btn :text="$dataStore.t('buttons.payOffline')" :loading="loading" @click="handlePayAction('offline')" />
|
|
68
68
|
</div>
|
|
@@ -178,6 +178,7 @@ export default defineComponent({
|
|
|
178
178
|
const isQrLoading = ref<boolean>(false);
|
|
179
179
|
const urlCopy = ref<string>('');
|
|
180
180
|
const isEpayPay = ref<boolean>(false);
|
|
181
|
+
const isOfflinePay = ref<boolean>(false);
|
|
181
182
|
|
|
182
183
|
const vForm = ref<any>();
|
|
183
184
|
const isSendNumberOpen = ref<boolean>(false);
|
|
@@ -282,7 +283,7 @@ export default defineComponent({
|
|
|
282
283
|
}
|
|
283
284
|
closePanel();
|
|
284
285
|
dataStore.showToaster('success', dataStore.t('toaster.successOperation'));
|
|
285
|
-
await dataStore.handleTask(constants.actions.
|
|
286
|
+
await dataStore.handleTask(constants.actions.signed, route.params.taskId as string, 'scans');
|
|
286
287
|
};
|
|
287
288
|
const submitForm = async () => {
|
|
288
289
|
await vForm.value.validate().then(async (v: { valid: Boolean; errors: any }) => {
|
|
@@ -322,7 +323,7 @@ export default defineComponent({
|
|
|
322
323
|
// loading.value = false;
|
|
323
324
|
// return;
|
|
324
325
|
// }
|
|
325
|
-
if (dataStore.isAML || dataStore.isCheckContract || dataStore.isCheckContragent || dataStore.isDas) {
|
|
326
|
+
if (dataStore.isAML || dataStore.isCheckContract || dataStore.isCheckContragent || dataStore.isDas || dataStore.isUU) {
|
|
326
327
|
emit('task', [dataStore.panelAction, route.params.taskId as string, actionCause.value]);
|
|
327
328
|
} else {
|
|
328
329
|
await dataStore.handleTask(dataStore.panelAction, route.params.taskId as string, actionCause.value);
|
|
@@ -403,7 +404,7 @@ export default defineComponent({
|
|
|
403
404
|
const price = computed(() => dataStore.getNumberWithSpaces(formStore.productConditionsForm.calculatorForm.price));
|
|
404
405
|
const insuredAmount = computed(() => formStore.productConditionsForm.calculatorForm.amount!.nameRu! + dataStore.currency);
|
|
405
406
|
const hasConditionsInfo = computed(() => {
|
|
406
|
-
if (dataStore.isLifetrip || dataStore.isDas) {
|
|
407
|
+
if (dataStore.isLifetrip || dataStore.isDas || dataStore.isUU) {
|
|
407
408
|
return false;
|
|
408
409
|
}
|
|
409
410
|
if (dataStore.isFinCenter()) {
|
|
@@ -436,7 +437,7 @@ export default defineComponent({
|
|
|
436
437
|
return true;
|
|
437
438
|
});
|
|
438
439
|
const downloadTemplate = async (documentType: number, fileType: string) => {
|
|
439
|
-
await dataStore.downloadTemplate(documentType, fileType);
|
|
440
|
+
await dataStore.downloadTemplate(documentType, fileType, formStore.applicationData.processInstanceId);
|
|
440
441
|
};
|
|
441
442
|
|
|
442
443
|
const handleSignAction = async (type: 'paper' | 'electronic' | 'scans' | 'qr') => {
|
|
@@ -468,6 +469,11 @@ export default defineComponent({
|
|
|
468
469
|
if (type === 'epay') {
|
|
469
470
|
await payEpay();
|
|
470
471
|
}
|
|
472
|
+
if (type === 'offline') {
|
|
473
|
+
await dataStore.handleTask(constants.actions.payed, route.params.taskId as string, 'offline');
|
|
474
|
+
isOfflinePay.value = true;
|
|
475
|
+
}
|
|
476
|
+
loading.value = false;
|
|
471
477
|
};
|
|
472
478
|
|
|
473
479
|
// TODO Рефактор QR c npm
|
|
@@ -579,6 +585,7 @@ export default defineComponent({
|
|
|
579
585
|
isQrLoading,
|
|
580
586
|
urlCopy,
|
|
581
587
|
isEpayPay,
|
|
588
|
+
isOfflinePay,
|
|
582
589
|
|
|
583
590
|
// Functions
|
|
584
591
|
closePanel,
|
package/composables/classes.ts
CHANGED
|
@@ -1513,7 +1513,8 @@ export class BaseGroupClass {
|
|
|
1513
1513
|
documentNumber: string;
|
|
1514
1514
|
series: string;
|
|
1515
1515
|
issuedBy: Value;
|
|
1516
|
-
|
|
1516
|
+
issuedOn: string;
|
|
1517
|
+
validUntil: string;
|
|
1517
1518
|
};
|
|
1518
1519
|
bankInfo: BankInfoClass;
|
|
1519
1520
|
kbe: string;
|
|
@@ -1541,6 +1542,7 @@ export class BaseGroupClass {
|
|
|
1541
1542
|
documentNumber: '',
|
|
1542
1543
|
series: '',
|
|
1543
1544
|
issuedBy: new Value(),
|
|
1545
|
+
issuedOn: '',
|
|
1544
1546
|
validUntil: '',
|
|
1545
1547
|
};
|
|
1546
1548
|
this.bankInfo = new BankInfoClass();
|
|
@@ -1552,7 +1554,8 @@ export class PhysGroupClass extends BaseGroupClass {
|
|
|
1552
1554
|
lastName: string;
|
|
1553
1555
|
firstName: string;
|
|
1554
1556
|
middleName: string;
|
|
1555
|
-
birthDate: string
|
|
1557
|
+
birthDate: string;
|
|
1558
|
+
gender: Value;
|
|
1556
1559
|
placeOfBirth: Value;
|
|
1557
1560
|
workDetails: { workplace: string; position: string; jobDuties: string };
|
|
1558
1561
|
hasContactPerson: boolean;
|
|
@@ -1562,6 +1565,7 @@ export class PhysGroupClass extends BaseGroupClass {
|
|
|
1562
1565
|
this.firstName = '';
|
|
1563
1566
|
this.middleName = '';
|
|
1564
1567
|
this.birthDate = '';
|
|
1568
|
+
this.gender = new Value();
|
|
1565
1569
|
this.placeOfBirth = new Value();
|
|
1566
1570
|
this.workDetails = { workplace: '', position: '', jobDuties: '' };
|
|
1567
1571
|
this.hasContactPerson = false;
|
package/composables/constants.ts
CHANGED
package/composables/index.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { useDisplay } from 'vuetify';
|
|
|
2
2
|
import jwt_decode from 'jwt-decode';
|
|
3
3
|
import { XMLParser } from 'fast-xml-parser';
|
|
4
4
|
import { AxiosError } from 'axios';
|
|
5
|
+
import { PolicyholderClass } from '../composables/classes';
|
|
5
6
|
|
|
6
7
|
export const getBaseCredentials = () => {
|
|
7
8
|
return {
|
|
@@ -202,6 +203,48 @@ export const ErrorHandler = (err: unknown, errorText?: string) => {
|
|
|
202
203
|
return false;
|
|
203
204
|
};
|
|
204
205
|
|
|
206
|
+
export const policyholderToBeneficialOwner = (isPolicyholderBeneficialOwner: boolean, policyholder?: PolicyholderClass) => {
|
|
207
|
+
const formStore = useFormStore();
|
|
208
|
+
const dataStore = useDataStore();
|
|
209
|
+
const beneficialOwner = formStore.lfb.beneficialOwners[0].beneficialOwnerData;
|
|
210
|
+
if (isPolicyholderBeneficialOwner && policyholder) {
|
|
211
|
+
beneficialOwner.iin = policyholder.clientData.authoritedPerson.iin;
|
|
212
|
+
beneficialOwner.firstName = policyholder.clientData.authoritedPerson.firstName;
|
|
213
|
+
beneficialOwner.middleName = policyholder.clientData.authoritedPerson.middleName;
|
|
214
|
+
beneficialOwner.lastName = policyholder.clientData.authoritedPerson.lastName;
|
|
215
|
+
beneficialOwner.citizenship = policyholder.clientData.authoritedPerson.citizenship;
|
|
216
|
+
beneficialOwner.birthDate = policyholder.clientData.authoritedPerson.birthDate;
|
|
217
|
+
beneficialOwner.gender = policyholder.clientData.authoritedPerson.gender;
|
|
218
|
+
beneficialOwner.resident = policyholder.clientData.resident;
|
|
219
|
+
beneficialOwner.taxResidentCountry = policyholder.clientData.taxResidentCountry;
|
|
220
|
+
beneficialOwner.economySectorCode = policyholder.clientData.economySectorCode;
|
|
221
|
+
beneficialOwner.identityDocument.issuedOn = policyholder.clientData.authoritedPerson.identityDocument.issuedOn;
|
|
222
|
+
beneficialOwner.identityDocument.documentNumber = policyholder.clientData.authoritedPerson.identityDocument.documentNumber;
|
|
223
|
+
beneficialOwner.identityDocument.documentType = policyholder.clientData.authoritedPerson.identityDocument.documentType;
|
|
224
|
+
beneficialOwner.identityDocument.issuedBy = policyholder.clientData.authoritedPerson.identityDocument.issuedBy;
|
|
225
|
+
beneficialOwner.identityDocument.validUntil = policyholder.clientData.authoritedPerson.identityDocument.validUntil;
|
|
226
|
+
beneficialOwner.identityDocument.series = policyholder.clientData.authoritedPerson.identityDocument.series;
|
|
227
|
+
dataStore.showToaster('warning', dataStore.t('toaster.formFieldEmptyWarning'));
|
|
228
|
+
} else {
|
|
229
|
+
beneficialOwner.iin = '';
|
|
230
|
+
beneficialOwner.firstName = '';
|
|
231
|
+
beneficialOwner.middleName = '';
|
|
232
|
+
beneficialOwner.lastName = '';
|
|
233
|
+
beneficialOwner.citizenship = new Value();
|
|
234
|
+
beneficialOwner.birthDate = '';
|
|
235
|
+
beneficialOwner.gender = new Value();
|
|
236
|
+
beneficialOwner.resident = new Value();
|
|
237
|
+
beneficialOwner.taxResidentCountry = new Value();
|
|
238
|
+
beneficialOwner.economySectorCode = new Value();
|
|
239
|
+
beneficialOwner.identityDocument.issuedOn = '';
|
|
240
|
+
beneficialOwner.identityDocument.documentNumber = '';
|
|
241
|
+
beneficialOwner.identityDocument.documentType = new Value();
|
|
242
|
+
beneficialOwner.identityDocument.issuedBy = new Value();
|
|
243
|
+
beneficialOwner.identityDocument.validUntil = '';
|
|
244
|
+
beneficialOwner.identityDocument.series = '';
|
|
245
|
+
}
|
|
246
|
+
};
|
|
247
|
+
|
|
205
248
|
export const setAddressBeneficiary = (whichIndex: number, sameAddress: boolean) => {
|
|
206
249
|
const formStore = useFormStore();
|
|
207
250
|
const dataStore = useDataStore();
|
package/locales/ru.json
CHANGED
|
@@ -220,7 +220,8 @@
|
|
|
220
220
|
"sendEgovMob": "Отправить на подпись через Egov Mobile",
|
|
221
221
|
"sendToPay": "Отправить на оплату",
|
|
222
222
|
"payEpay": "Оплатить через EPAY",
|
|
223
|
-
"payOffline": "Оплатить офлайн"
|
|
223
|
+
"payOffline": "Оплатить офлайн",
|
|
224
|
+
"paymentInvoice": "Cчет на оплату"
|
|
224
225
|
},
|
|
225
226
|
"dialog": {
|
|
226
227
|
"title": "Подтверждение",
|
|
@@ -366,6 +367,7 @@
|
|
|
366
367
|
"requestedProductConditions": "Запрашиваемые условия страхования",
|
|
367
368
|
"coverPeriodFrom3to20": "Срок страхования (от 3-х до 20 лет)",
|
|
368
369
|
"coverPeriodFrom2to20": "Срок страхования (от 2-х до 20 лет)",
|
|
370
|
+
"coverPeriodFrom1or5to15": "Срок страхования (1 год или от 5 до 15 лет)",
|
|
369
371
|
"insurancePremiumAmount": "Размер Страховой премии (страховой взнос) в тенге",
|
|
370
372
|
"insurancePremiumAmountInDollar": "Размер Страховой премии (страховой взнос) в долларах",
|
|
371
373
|
"dollarExchangeRateNBRK": "Курс доллара НБРК",
|
package/package.json
CHANGED
package/store/data.store.ts
CHANGED
|
@@ -2281,7 +2281,8 @@ export const useDataStore = defineStore('data', {
|
|
|
2281
2281
|
case constants.actions.return:
|
|
2282
2282
|
case constants.actions.signed:
|
|
2283
2283
|
case constants.actions.rejectclient:
|
|
2284
|
-
case constants.actions.accept:
|
|
2284
|
+
case constants.actions.accept:
|
|
2285
|
+
case constants.actions.payed: {
|
|
2285
2286
|
try {
|
|
2286
2287
|
const sended = await this.sendTask(taskId, action, comment);
|
|
2287
2288
|
if (!sended) return;
|
|
@@ -2427,10 +2428,10 @@ export const useDataStore = defineStore('data', {
|
|
|
2427
2428
|
ErrorHandler(err);
|
|
2428
2429
|
}
|
|
2429
2430
|
},
|
|
2430
|
-
async downloadTemplate(documentType: number, fileType: string = 'pdf') {
|
|
2431
|
+
async downloadTemplate(documentType: number, fileType: string = 'pdf', processInstanceId?: string | number) {
|
|
2431
2432
|
try {
|
|
2432
2433
|
this.isButtonsLoading = true;
|
|
2433
|
-
const response: any = await this.api.downloadTemplate(documentType);
|
|
2434
|
+
const response: any = await this.api.downloadTemplate(documentType, processInstanceId);
|
|
2434
2435
|
const blob = new Blob([response], {
|
|
2435
2436
|
type: `application/${fileType}`,
|
|
2436
2437
|
});
|
|
@@ -2453,6 +2454,9 @@ export const useDataStore = defineStore('data', {
|
|
|
2453
2454
|
case constants.documentTypes.questionnaireInsured:
|
|
2454
2455
|
link.setAttribute('download', 'Анкета Застрахованного.docx');
|
|
2455
2456
|
break;
|
|
2457
|
+
case constants.documentTypes.invoicePayment:
|
|
2458
|
+
link.setAttribute('download', 'Счет на оплату.pdf');
|
|
2459
|
+
break;
|
|
2456
2460
|
}
|
|
2457
2461
|
document.body.appendChild(link);
|
|
2458
2462
|
link.click();
|
|
@@ -2471,6 +2475,16 @@ export const useDataStore = defineStore('data', {
|
|
|
2471
2475
|
}
|
|
2472
2476
|
this.isButtonsLoading = false;
|
|
2473
2477
|
},
|
|
2478
|
+
async sendInvoiceToEmail(processInstanceId: string | number, email: string) {
|
|
2479
|
+
try {
|
|
2480
|
+
this.isButtonsLoading = true;
|
|
2481
|
+
await this.api.sendInvoiceToEmail(processInstanceId, email);
|
|
2482
|
+
this.showToaster('info', this.t('toaster.successfullyDocSent'), 5000);
|
|
2483
|
+
} catch (err) {
|
|
2484
|
+
ErrorHandler(err);
|
|
2485
|
+
}
|
|
2486
|
+
this.isButtonsLoading = false;
|
|
2487
|
+
},
|
|
2474
2488
|
async generateDocument() {
|
|
2475
2489
|
try {
|
|
2476
2490
|
this.isButtonsLoading = true;
|
|
@@ -3147,20 +3161,26 @@ export const useDataStore = defineStore('data', {
|
|
|
3147
3161
|
},
|
|
3148
3162
|
async startApplicationV2(data: PolicyholderClass) {
|
|
3149
3163
|
const policyholder = JSON.parse(JSON.stringify(data)) as any;
|
|
3150
|
-
this.preparePersonData(policyholder);
|
|
3151
|
-
delete policyholder.clientData.beneficalOwnerQuest;
|
|
3152
|
-
delete policyholder.clientData.identityDocument;
|
|
3153
|
-
delete policyholder.clientData.activityTypes;
|
|
3154
|
-
delete policyholder.clientData.citizenship;
|
|
3155
|
-
delete policyholder.clientData.authoritedPerson.identityDocument;
|
|
3156
|
-
delete policyholder.clientData.authoritedPerson.actualAddress;
|
|
3157
|
-
delete policyholder.clientData.authoritedPerson.bankInfo;
|
|
3158
|
-
delete policyholder.clientData.authoritedPerson.economySectorCode;
|
|
3159
|
-
delete policyholder.clientData.authoritedPerson.legalAddress;
|
|
3160
|
-
delete policyholder.clientData.authoritedPerson.placeOfBirth;
|
|
3161
|
-
delete policyholder.clientData.authoritedPerson.resident;
|
|
3162
|
-
delete policyholder.clientData.authoritedPerson.taxResidentCountry;
|
|
3163
3164
|
if (!policyholder.clientData.iin) return false;
|
|
3165
|
+
this.preparePersonData(policyholder);
|
|
3166
|
+
keyDeleter(policyholder as PolicyholderClass, [
|
|
3167
|
+
'clientData.beneficalOwnerQuest',
|
|
3168
|
+
'clientData.identityDocument',
|
|
3169
|
+
'clientData.activityTypes',
|
|
3170
|
+
'clientData.citizenship',
|
|
3171
|
+
'clientData.addTaxResidency',
|
|
3172
|
+
'clientData.gender',
|
|
3173
|
+
'clientData.placeOfBirth',
|
|
3174
|
+
'clientData.authoritedPerson.actualAddress',
|
|
3175
|
+
'clientData.authoritedPerson.bankInfo',
|
|
3176
|
+
'clientData.authoritedPerson.economySectorCode',
|
|
3177
|
+
'clientData.authoritedPerson.legalAddress',
|
|
3178
|
+
'clientData.authoritedPerson.placeOfBirth',
|
|
3179
|
+
'clientData.authoritedPerson.resident',
|
|
3180
|
+
'clientData.authoritedPerson.taxResidentCountry',
|
|
3181
|
+
'clientData.authoritedPerson.addTaxResidency',
|
|
3182
|
+
]);
|
|
3183
|
+
policyholder.clientData.authoritedPerson.gender = policyholder.clientData.authoritedPerson.gender.nameRu === 'Мужской' ? 1 : 2;
|
|
3164
3184
|
try {
|
|
3165
3185
|
const response = await this.api.startApplication(policyholder);
|
|
3166
3186
|
this.sendToParent(constants.postActions.applicationCreated, response.processInstanceId);
|
|
@@ -3171,6 +3191,7 @@ export const useDataStore = defineStore('data', {
|
|
|
3171
3191
|
},
|
|
3172
3192
|
async saveClient(data: PolicyholderClass) {
|
|
3173
3193
|
const policyholder = JSON.parse(JSON.stringify(data)) as any;
|
|
3194
|
+
policyholder.clientData.authoritedPerson.gender = policyholder.clientData.authoritedPerson.gender.nameRu === 'Мужской' ? 1 : 2;
|
|
3174
3195
|
this.preparePersonData(policyholder);
|
|
3175
3196
|
try {
|
|
3176
3197
|
await this.api.saveClient(this.formStore.applicationData.processInstanceId, this.formStore.lfb.clientId, policyholder);
|
|
@@ -3218,6 +3239,11 @@ export const useDataStore = defineStore('data', {
|
|
|
3218
3239
|
this.formStore.lfb.policyholder.clientData.authoritedPerson.iin = reformatIin(clientData.authoritedPerson.iin);
|
|
3219
3240
|
this.formStore.lfb.clientId = clientId;
|
|
3220
3241
|
this.formStore.lfb.policyholder.clientData.authorityDetails.date = reformatDate(clientData.authorityDetails.date);
|
|
3242
|
+
this.formStore.lfb.policyholder.clientData.authoritedPerson.birthDate = reformatDate(clientData.authoritedPerson.birthDate) ?? '';
|
|
3243
|
+
this.formStore.lfb.policyholder.clientData.authoritedPerson.identityDocument.issuedOn = reformatDate(clientData.authoritedPerson.identityDocument.issuedOn) ?? '';
|
|
3244
|
+
this.formStore.lfb.policyholder.clientData.authoritedPerson.identityDocument.validUntil = reformatDate(clientData.authoritedPerson.identityDocument.validUntil) ?? '';
|
|
3245
|
+
const gender = this.gender.find((i: Value) => i.id === clientData.authoritedPerson.gender);
|
|
3246
|
+
this.formStore.lfb.policyholder.clientData.authoritedPerson.gender = gender ? gender : new Value();
|
|
3221
3247
|
|
|
3222
3248
|
if (clientData && clientData.activityTypes !== null) {
|
|
3223
3249
|
this.formStore.lfb.policyholderActivities = clientData.activityTypes;
|
|
@@ -3227,9 +3253,13 @@ export const useDataStore = defineStore('data', {
|
|
|
3227
3253
|
this.formStore.lfb.beneficialOwners = beneficialOwnerApp;
|
|
3228
3254
|
this.formStore.lfb.isPolicyholderBeneficialOwner = clientData.authoritedPerson.iin.replace(/-/g, '') === beneficialOwnerApp[0].beneficialOwnerData.iin ? true : false;
|
|
3229
3255
|
this.formStore.lfb.beneficialOwners.forEach(beneficial => {
|
|
3230
|
-
beneficial.beneficialOwnerData.birthDate = reformatDate(beneficial.beneficialOwnerData.birthDate as string);
|
|
3231
|
-
beneficial.beneficialOwnerData.identityDocument
|
|
3256
|
+
beneficial.beneficialOwnerData.birthDate = reformatDate(beneficial.beneficialOwnerData.birthDate as string) ?? '';
|
|
3257
|
+
beneficial.beneficialOwnerData.identityDocument.validUntil = reformatDate(beneficial.beneficialOwnerData.identityDocument.validUntil as string) ?? '';
|
|
3232
3258
|
beneficial.beneficialOwnerData.iin = reformatIin(beneficial.beneficialOwnerData.iin as string);
|
|
3259
|
+
beneficial.beneficialOwnerData.identityDocument.issuedOn = reformatDate(beneficial.beneficialOwnerData.identityDocument.issuedOn as string) ?? '';
|
|
3260
|
+
//@ts-ignore
|
|
3261
|
+
const gender = this.gender.find((i: Value) => i.id === beneficial.beneficialOwnerData.gender);
|
|
3262
|
+
beneficial.beneficialOwnerData.gender = gender ? gender : new Value();
|
|
3233
3263
|
});
|
|
3234
3264
|
}
|
|
3235
3265
|
|
|
@@ -3286,20 +3316,19 @@ export const useDataStore = defineStore('data', {
|
|
|
3286
3316
|
async saveBeneficialOwnerList(data: BeneficialOwner[]) {
|
|
3287
3317
|
const beneficialOwnerList = JSON.parse(JSON.stringify(data)) as any;
|
|
3288
3318
|
for (const item of beneficialOwnerList) {
|
|
3289
|
-
|
|
3290
|
-
|
|
3291
|
-
|
|
3292
|
-
|
|
3293
|
-
|
|
3294
|
-
|
|
3295
|
-
|
|
3296
|
-
|
|
3297
|
-
|
|
3298
|
-
|
|
3299
|
-
|
|
3300
|
-
delete item.beneficialOwnerData.taxResidentCountry;
|
|
3301
|
-
delete item.beneficialOwnerData.typeOfEconomicActivity;
|
|
3319
|
+
keyDeleter(item as BeneficialOwner, [
|
|
3320
|
+
'beneficialOwnerData.activityTypes',
|
|
3321
|
+
'beneficialOwnerData.actualAddress',
|
|
3322
|
+
'beneficialOwnerData.addTaxResidency',
|
|
3323
|
+
'beneficialOwnerData.authoritedPerson',
|
|
3324
|
+
'beneficialOwnerData.authorityDetails',
|
|
3325
|
+
'beneficialOwnerData.bankInfo',
|
|
3326
|
+
'beneficialOwnerData.legalAddress',
|
|
3327
|
+
'beneficialOwnerData.placeOfBirth',
|
|
3328
|
+
'beneficialOwnerData.typeOfEconomicActivity',
|
|
3329
|
+
]);
|
|
3302
3330
|
item.processInstanceId = this.formStore.applicationData.processInstanceId;
|
|
3331
|
+
item.beneficialOwnerData.gender = item.beneficialOwnerData.gender.nameRu === 'Мужской' ? 1 : 2;
|
|
3303
3332
|
this.preparePersonData(item.beneficialOwnerData);
|
|
3304
3333
|
}
|
|
3305
3334
|
try {
|
|
@@ -3311,7 +3340,18 @@ export const useDataStore = defineStore('data', {
|
|
|
3311
3340
|
},
|
|
3312
3341
|
async saveBeneficialOwner(data: BeneficialOwner) {
|
|
3313
3342
|
const beneficialOwner = JSON.parse(JSON.stringify(data)) as any;
|
|
3314
|
-
|
|
3343
|
+
keyDeleter(beneficialOwner as BeneficialOwner, [
|
|
3344
|
+
'beneficialOwnerData.activityTypes',
|
|
3345
|
+
'beneficialOwnerData.actualAddress',
|
|
3346
|
+
'beneficialOwnerData.addTaxResidency',
|
|
3347
|
+
'beneficialOwnerData.authoritedPerson',
|
|
3348
|
+
'beneficialOwnerData.authorityDetails',
|
|
3349
|
+
'beneficialOwnerData.bankInfo',
|
|
3350
|
+
'beneficialOwnerData.legalAddress',
|
|
3351
|
+
'beneficialOwnerData.placeOfBirth',
|
|
3352
|
+
'beneficialOwnerData.typeOfEconomicActivity',
|
|
3353
|
+
]);
|
|
3354
|
+
beneficialOwner.beneficialOwnerData.gender = beneficialOwner.beneficialOwnerData.gender.nameRu === 'Мужской' ? 1 : 2;
|
|
3315
3355
|
this.preparePersonData(beneficialOwner.beneficialOwnerData);
|
|
3316
3356
|
try {
|
|
3317
3357
|
const response = await this.api.saveBeneficialOwner(this.formStore.applicationData.processInstanceId, String(beneficialOwner.id), beneficialOwner);
|
package/store/rules.ts
CHANGED
|
@@ -190,6 +190,18 @@ export const rules = {
|
|
|
190
190
|
}
|
|
191
191
|
},
|
|
192
192
|
],
|
|
193
|
+
coverPeriodFrom1or5to15: [
|
|
194
|
+
(v: any) => {
|
|
195
|
+
if (v !== null) {
|
|
196
|
+
if (v == 1 || (v >= 5 && v <= 15)) {
|
|
197
|
+
return true;
|
|
198
|
+
}
|
|
199
|
+
return t('productConditionsForm.coverPeriodFrom1or5to15');
|
|
200
|
+
} else {
|
|
201
|
+
return t('productConditionsForm.coverPeriodFrom1or5to15');
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
],
|
|
193
205
|
requestedSumInsuredMycar: [
|
|
194
206
|
(v: any) => {
|
|
195
207
|
if (v !== null) {
|
package/types/enum.ts
CHANGED
|
@@ -46,8 +46,8 @@ export enum Actions {
|
|
|
46
46
|
choosePay = 'choosePay',
|
|
47
47
|
choosePayCustom = 'choosePayCustom',
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
payed = 'payed',
|
|
50
|
+
payedCustom = 'payedCustom',
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
export enum PostActions {
|