hl-core 0.0.10-beta.50 → 0.0.10-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.
- package/api/base.api.ts +20 -2
- package/components/Dialog/FamilyDialog.vue +15 -4
- package/components/Pages/Documents.vue +20 -4
- package/components/Pages/MemberForm.vue +75 -12
- package/components/Pages/ProductConditions.vue +134 -10
- package/components/Panel/PanelHandler.vue +16 -1
- package/composables/classes.ts +3 -0
- package/composables/constants.ts +1 -0
- package/composables/index.ts +4 -0
- package/locales/ru.json +15 -7
- package/package.json +1 -1
- package/store/data.store.ts +51 -0
- package/types/enum.ts +2 -0
- package/types/index.ts +1 -0
package/api/base.api.ts
CHANGED
|
@@ -285,6 +285,13 @@ export class ApiClass {
|
|
|
285
285
|
});
|
|
286
286
|
}
|
|
287
287
|
|
|
288
|
+
async getProcessDividendPeriods(processCode: string | number) {
|
|
289
|
+
return await this.axiosCall<Value[]>({
|
|
290
|
+
method: Methods.GET,
|
|
291
|
+
url: `/Arm/api/Dictionary/ProcessDividendPeriod/${processCode}`,
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
|
|
288
295
|
async getContragentById(id: number) {
|
|
289
296
|
return await this.axiosCall<Types.GetContragentResponse>({
|
|
290
297
|
method: Methods.GET,
|
|
@@ -705,10 +712,10 @@ export class ApiClass {
|
|
|
705
712
|
});
|
|
706
713
|
}
|
|
707
714
|
|
|
708
|
-
async
|
|
715
|
+
async getGlobalIdByNumber(insuranceTypeEnum: number, policyNo: string) {
|
|
709
716
|
return await this.axiosCall<number>({
|
|
710
717
|
method: Methods.GET,
|
|
711
|
-
url: `/Ekk/api/PolicyInsis/
|
|
718
|
+
url: `/Ekk/api/PolicyInsis/GetGlobalIDbyNumber`,
|
|
712
719
|
params: {
|
|
713
720
|
insuranceTypeEnum,
|
|
714
721
|
policyNo,
|
|
@@ -1132,6 +1139,17 @@ export class ApiClass {
|
|
|
1132
1139
|
data: data,
|
|
1133
1140
|
});
|
|
1134
1141
|
},
|
|
1142
|
+
getDividendSchedule: async (processInstanceId: string | number) => {
|
|
1143
|
+
return await this.axiosCall<{
|
|
1144
|
+
scheduleDividend: Value[] | null;
|
|
1145
|
+
scheduleDividend2: Value[] | null;
|
|
1146
|
+
}>({
|
|
1147
|
+
method: Methods.GET,
|
|
1148
|
+
baseURL: getStrValuePerEnv('efoBaseApi'),
|
|
1149
|
+
url: `${this.pensionannuityNew.base}/GetDividendSchedule`,
|
|
1150
|
+
params: { processInstanceId: processInstanceId },
|
|
1151
|
+
});
|
|
1152
|
+
},
|
|
1135
1153
|
};
|
|
1136
1154
|
|
|
1137
1155
|
externalServices = {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<v-list lines="two" v-if="formStore.birthInfos && formStore.birthInfos.length" class="w-full !py-0">
|
|
2
|
+
<v-list lines="two" v-if="(formStore.birthInfos && formStore.birthInfos.length) || $dataStore.isGons" class="w-full !py-0">
|
|
3
3
|
<v-list-item
|
|
4
4
|
@click="$emit('reset')"
|
|
5
5
|
:append-icon="selected && Object.keys(selected).length === 0 ? `mdi-radiobox-marked ${$styles.greenText}` : 'mdi-radiobox-blank text-[#636363]'"
|
|
@@ -10,7 +10,11 @@
|
|
|
10
10
|
v-for="familyMember of formStore.birthInfos"
|
|
11
11
|
:key="familyMember.childIIN"
|
|
12
12
|
@click="$emit('selectFamilyMember', familyMember)"
|
|
13
|
-
:append-icon="
|
|
13
|
+
:append-icon="
|
|
14
|
+
familyMember && selected && typeof selected === 'object' && selected.childIIN === familyMember.childIIN
|
|
15
|
+
? `mdi-radiobox-marked ${$styles.greenText}`
|
|
16
|
+
: 'mdi-radiobox-blank text-[#636363]'
|
|
17
|
+
"
|
|
14
18
|
>
|
|
15
19
|
<v-list-item-title :class="[$styles.greenText, $styles.textTitle]">{{
|
|
16
20
|
`${familyMember.childSurName} ${familyMember.childName} ${familyMember.childPatronymic ? familyMember.childPatronymic : ''}`
|
|
@@ -20,6 +24,13 @@
|
|
|
20
24
|
>{{ ` ${$reformatIin(familyMember.childIIN!)}` }}</v-list-item-subtitle
|
|
21
25
|
>
|
|
22
26
|
</v-list-item>
|
|
27
|
+
<v-list-item
|
|
28
|
+
v-if="$dataStore.isGons"
|
|
29
|
+
@click="$emit('addChild')"
|
|
30
|
+
:append-icon="selected && selected === $dataStore.t('form.addBeneficiary') ? `mdi-radiobox-marked ${$styles.greenText}` : 'mdi-radiobox-blank text-[#636363]'"
|
|
31
|
+
>
|
|
32
|
+
<v-list-item-title :class="[$styles.greenText, $styles.textTitle]">{{ $dataStore.t('form.addBeneficiary') }}</v-list-item-title>
|
|
33
|
+
</v-list-item>
|
|
23
34
|
</v-list>
|
|
24
35
|
<base-list-empty class="w-full" v-else />
|
|
25
36
|
</template>
|
|
@@ -30,10 +41,10 @@ import type { Api } from '../../types';
|
|
|
30
41
|
export default defineComponent({
|
|
31
42
|
props: {
|
|
32
43
|
selected: {
|
|
33
|
-
type: Object as PropType<Api.GKB.BirthInfo>,
|
|
44
|
+
type: [Object, String] as PropType<Api.GKB.BirthInfo | string>,
|
|
34
45
|
},
|
|
35
46
|
},
|
|
36
|
-
emits: ['selectFamilyMember', 'reset'],
|
|
47
|
+
emits: ['selectFamilyMember', 'reset', 'addChild'],
|
|
37
48
|
setup() {
|
|
38
49
|
const formStore = useFormStore();
|
|
39
50
|
return {
|
|
@@ -125,6 +125,15 @@
|
|
|
125
125
|
:loading="$dataStore.isLoading"
|
|
126
126
|
@input="uploadAdditionalFile($event, '50', member.iin)"
|
|
127
127
|
/>
|
|
128
|
+
<base-file-input
|
|
129
|
+
v-if="
|
|
130
|
+
formStore.signedDocumentList.filter(i => i.fileTypeCode === '29' && i.iin === String(member.iin).replaceAll('-', '')).length !==
|
|
131
|
+
formStore.requiredDocuments.filter(i => i.code === '29' && i.iin === String(member.iin).replaceAll('-', '')).length
|
|
132
|
+
"
|
|
133
|
+
:label="$dataStore.t('pension.KSJagreement')"
|
|
134
|
+
:loading="$dataStore.isLoading"
|
|
135
|
+
@input.prevent="uploadAdditionalFile($event, '29', member.iin)"
|
|
136
|
+
/>
|
|
128
137
|
</base-form-section>
|
|
129
138
|
</div>
|
|
130
139
|
</section>
|
|
@@ -300,7 +309,7 @@ export default defineComponent({
|
|
|
300
309
|
const documentType = ref<DigitalDocNames | null>(null);
|
|
301
310
|
const otpCode = ref<string>('');
|
|
302
311
|
const currentIin = ref<string>('');
|
|
303
|
-
const deleteFilesId = ['1', '2', '4', '46'];
|
|
312
|
+
const deleteFilesId = ['1', '2', '3', '4', '46'];
|
|
304
313
|
const documentItems: Array<{ title: DigitalDocNames; value: DigitalDocTypes }> = [
|
|
305
314
|
{ title: 'Удостоверение личности', value: 'IdentityCard' },
|
|
306
315
|
{ title: 'Паспорт', value: 'Passport' },
|
|
@@ -377,7 +386,7 @@ export default defineComponent({
|
|
|
377
386
|
const insuredFiltered = computed(() => formStore.insuredForm.filter(i => i.iin !== formStore.policyholderForm.iin) as Base.Document.Digital[]);
|
|
378
387
|
const beneficiaryFiltered = computed(() => formStore.beneficiaryForm.filter(i => i.iin !== formStore.policyholderForm.iin) as Base.Document.Digital[]);
|
|
379
388
|
const slaveInsuredForm = computed(() => formStore.slaveInsuredForm as Base.Document.Digital);
|
|
380
|
-
const documentListFiltered = computed(() => formStore.signedDocumentList.filter(i => !['1', '2', '4'].includes(String(i.fileTypeCode))));
|
|
389
|
+
const documentListFiltered = computed(() => formStore.signedDocumentList.filter(i => !['1', '2', '3', '4'].includes(String(i.fileTypeCode))));
|
|
381
390
|
const jointMembers = ref<Member[]>([formStore.insuredForm[0]]);
|
|
382
391
|
|
|
383
392
|
const openPanel = async (document: DocumentItem) => {
|
|
@@ -499,7 +508,13 @@ export default defineComponent({
|
|
|
499
508
|
dataStore.rightPanel.open = false;
|
|
500
509
|
dataStore.panelAction = null;
|
|
501
510
|
await dataStore.getSignedDocList(formStore.applicationData.processInstanceId);
|
|
502
|
-
if (
|
|
511
|
+
if (
|
|
512
|
+
hasDigitalDocuments.value &&
|
|
513
|
+
(currentDocument.value.fileTypeCode === '1' ||
|
|
514
|
+
currentDocument.value.fileTypeCode === '2' ||
|
|
515
|
+
currentDocument.value.fileTypeCode === '3' ||
|
|
516
|
+
currentDocument.value.fileTypeCode === '4')
|
|
517
|
+
) {
|
|
503
518
|
getDigitalDocs();
|
|
504
519
|
}
|
|
505
520
|
}
|
|
@@ -545,7 +560,8 @@ export default defineComponent({
|
|
|
545
560
|
let commonDocs: IDocument[] = [];
|
|
546
561
|
for (let member of members) {
|
|
547
562
|
const matchingDoc = formStore.signedDocumentList.find(
|
|
548
|
-
doc =>
|
|
563
|
+
doc =>
|
|
564
|
+
doc.iin === String(member.iin).replaceAll('-', '') && (doc.fileTypeCode === '1' || doc.fileTypeCode === '2' || doc.fileTypeCode === '3' || doc.fileTypeCode === '4'),
|
|
549
565
|
);
|
|
550
566
|
if (matchingDoc) commonDocs.push(matchingDoc);
|
|
551
567
|
}
|
|
@@ -64,6 +64,16 @@
|
|
|
64
64
|
:title="$dataStore.t('isInsuredUnderage')"
|
|
65
65
|
:has-border="false"
|
|
66
66
|
/>
|
|
67
|
+
<base-panel-input
|
|
68
|
+
v-if="whichForm === formStore.beneficiaryFormKey && $dataStore.isGons"
|
|
69
|
+
v-model="member.chooseChild"
|
|
70
|
+
:value="member.chooseChild"
|
|
71
|
+
:label="$dataStore.t('form.chooseChild')"
|
|
72
|
+
:readonly="isDisabled"
|
|
73
|
+
:clearable="!isDisabled"
|
|
74
|
+
append-inner-icon="mdi mdi-chevron-right"
|
|
75
|
+
@append="searchMember($dataStore.t('form.chooseChild'))"
|
|
76
|
+
/>
|
|
67
77
|
<base-form-input
|
|
68
78
|
v-model="member.phoneNumber"
|
|
69
79
|
:label="$dataStore.t('form.phoneNumber')"
|
|
@@ -166,8 +176,8 @@
|
|
|
166
176
|
<base-panel-input
|
|
167
177
|
v-model="member.gender"
|
|
168
178
|
:value="member.gender?.nameRu"
|
|
169
|
-
:readonly="isDisabled || isDataFromGov"
|
|
170
|
-
:clearable="!isDisabled && !isDataFromGov"
|
|
179
|
+
:readonly="isDisabled || isDataFromGov || !isChooseChild"
|
|
180
|
+
:clearable="(!isDisabled && !isDataFromGov) || !!isChooseChild"
|
|
171
181
|
:label="$dataStore.t('form.gender')"
|
|
172
182
|
:rules="$rules.objectRequired"
|
|
173
183
|
append-inner-icon="mdi mdi-chevron-right"
|
|
@@ -188,12 +198,12 @@
|
|
|
188
198
|
v-if="hasRelationDegree"
|
|
189
199
|
v-model="member.relationDegree"
|
|
190
200
|
:value="member.relationDegree?.nameRu"
|
|
191
|
-
:readonly="isDisabled"
|
|
192
|
-
:clearable="!isDisabled"
|
|
201
|
+
:readonly="isDisabled || !isChooseChild"
|
|
202
|
+
:clearable="!isDisabled || !!isChooseChild"
|
|
193
203
|
:label="$dataStore.t('form.relations')"
|
|
194
204
|
:rules="$rules.objectRequired"
|
|
195
205
|
append-inner-icon="mdi mdi-chevron-right"
|
|
196
|
-
@append="openPanel($dataStore.t('form.relations'),
|
|
206
|
+
@append="openPanel($dataStore.t('form.relations'), filteredRelationsData, 'relationDegree')"
|
|
197
207
|
/>
|
|
198
208
|
<base-form-input
|
|
199
209
|
v-if="whichForm === formStore.beneficiaryFormKey"
|
|
@@ -769,7 +779,7 @@
|
|
|
769
779
|
/>
|
|
770
780
|
<base-dialog v-model="familyDialog" :subtitle="$dataStore.t('dialog.familyMember')" :icon="{ mdi: 'hand-pointing-up' }" actions="familyDialog">
|
|
771
781
|
<template #actions>
|
|
772
|
-
<base-family-dialog :selected="selectedFamilyMember" @selectFamilyMember="selectFamilyMember" @reset="closeFamilyDialog(true)" />
|
|
782
|
+
<base-family-dialog :selected="selectedFamilyMember" @selectFamilyMember="selectFamilyMember" @reset="closeFamilyDialog(true)" @addChild="addChild" />
|
|
773
783
|
</template>
|
|
774
784
|
</base-dialog>
|
|
775
785
|
<base-dialog v-model="documentChooseDialog" :subtitle="$dataStore.t('labels.chooseDoc')" :icon="{ mdi: 'file-document-outline' }" actions="documentChooseDialog">
|
|
@@ -831,7 +841,7 @@ export default {
|
|
|
831
841
|
const getMember = (whichForm: keyof typeof StoreMembers | 'slaveInsuredForm', whichIndex?: string) =>
|
|
832
842
|
memberStore.getMemberFromStore(whichForm, Number((whichIndex ? whichIndex : '0') as string))!;
|
|
833
843
|
const member = ref(getMember(whichForm.value, whichIndex.value));
|
|
834
|
-
const selectedFamilyMember = ref<Api.GKB.BirthInfo>({});
|
|
844
|
+
const selectedFamilyMember = ref<Api.GKB.BirthInfo | string>({});
|
|
835
845
|
const isPanelOpen = ref<boolean>(false);
|
|
836
846
|
const memberDocument = ref<DocumentItem>();
|
|
837
847
|
const isButtonLoading = ref<boolean>(false);
|
|
@@ -862,13 +872,17 @@ export default {
|
|
|
862
872
|
const isRelative = ref<boolean>(false);
|
|
863
873
|
const additionalDocuments = ref<any[]>([]);
|
|
864
874
|
const contragents = ref<ContragentType[]>([]);
|
|
865
|
-
|
|
875
|
+
const filteredRelationsData = ref<Value[]>(dataStore.relations);
|
|
866
876
|
const currentPanelDeep = ref<string>();
|
|
867
877
|
const currentPanelSubDeep = ref<string>();
|
|
868
|
-
|
|
869
878
|
const memberSetting = computed(() => dataStore.members[memberStore.getMemberApplicationCode(whichForm.value)!]);
|
|
870
879
|
const hasOtp = computed(() => member.value.otpCode && member.value.otpCode.length === useMask().otp.length);
|
|
871
880
|
const isDisabled = computed(() => !memberStore.isStatementEditible(whichForm.value));
|
|
881
|
+
const isChooseChild = computed(() => {
|
|
882
|
+
if (dataStore.isGons) return member.value.chooseChild === dataStore.t('form.addBeneficiary');
|
|
883
|
+
return true;
|
|
884
|
+
});
|
|
885
|
+
|
|
872
886
|
const isTask = computed(() => route.params.taskId === '0' || dataStore.isTask());
|
|
873
887
|
const isIinPhoneDisabled = computed(() => member.value.hasAgreement);
|
|
874
888
|
const gbdDocuments = computed(() => {
|
|
@@ -1104,10 +1118,10 @@ export default {
|
|
|
1104
1118
|
return getOtpConditionByMember();
|
|
1105
1119
|
});
|
|
1106
1120
|
|
|
1107
|
-
const searchMember = async () => {
|
|
1121
|
+
const searchMember = async (title: string = hasDocumentReader.value ? 'Получение данных со скана документа' : 'Поиск контрагента') => {
|
|
1108
1122
|
if (!isDisabled.value) {
|
|
1109
1123
|
dataStore.panelAction = null;
|
|
1110
|
-
dataStore.rightPanel.title =
|
|
1124
|
+
dataStore.rightPanel.title = title;
|
|
1111
1125
|
dataStore.rightPanel.open = true;
|
|
1112
1126
|
isSearchOpen.value = true;
|
|
1113
1127
|
isDocumentOpen.value = false;
|
|
@@ -1431,6 +1445,9 @@ export default {
|
|
|
1431
1445
|
if (formStore.birthInfos.length !== 0) {
|
|
1432
1446
|
familyDialog.value = true;
|
|
1433
1447
|
}
|
|
1448
|
+
if (formStore.birthInfos.length === 0 && dataStore.isGons) {
|
|
1449
|
+
familyDialog.value = true;
|
|
1450
|
+
}
|
|
1434
1451
|
} else {
|
|
1435
1452
|
familyDialog.value = true;
|
|
1436
1453
|
}
|
|
@@ -1446,10 +1463,23 @@ export default {
|
|
|
1446
1463
|
isButtonLoading.value = false;
|
|
1447
1464
|
dataStore.rightPanel.open = false;
|
|
1448
1465
|
isSearchOpen.value = false;
|
|
1466
|
+
if (dataStore.isGons) {
|
|
1467
|
+
member.value.chooseChild = '';
|
|
1468
|
+
}
|
|
1469
|
+
};
|
|
1470
|
+
|
|
1471
|
+
const addChild = () => {
|
|
1472
|
+
member.value.resetMember();
|
|
1473
|
+
familyDialog.value = false;
|
|
1474
|
+
selectedFamilyMember.value = dataStore.t('form.addBeneficiary');
|
|
1475
|
+
isButtonLoading.value = false;
|
|
1476
|
+
dataStore.rightPanel.open = false;
|
|
1477
|
+
isSearchOpen.value = false;
|
|
1478
|
+
member.value.chooseChild = dataStore.t('form.addBeneficiary');
|
|
1449
1479
|
};
|
|
1450
1480
|
|
|
1451
1481
|
const selectFamilyMember = (familyMember: Api.GKB.BirthInfo) => {
|
|
1452
|
-
if (selectedFamilyMember.value && selectedFamilyMember.value.childIIN === familyMember.childIIN) {
|
|
1482
|
+
if (selectedFamilyMember.value && typeof selectedFamilyMember.value === 'object' && selectedFamilyMember.value.childIIN === familyMember.childIIN) {
|
|
1453
1483
|
selectedFamilyMember.value = {};
|
|
1454
1484
|
} else {
|
|
1455
1485
|
selectedFamilyMember.value = familyMember;
|
|
@@ -1458,6 +1488,19 @@ export default {
|
|
|
1458
1488
|
member.value.lastName = selectedFamilyMember.value.childSurName!;
|
|
1459
1489
|
member.value.middleName = selectedFamilyMember.value.childPatronymic ?? '';
|
|
1460
1490
|
member.value.birthDate = reformatDate(selectedFamilyMember.value.childBirthDate!);
|
|
1491
|
+
member.value.gender = dataStore.gender.find(i => {
|
|
1492
|
+
if (typeof selectedFamilyMember.value === 'object') {
|
|
1493
|
+
return i.id === selectedFamilyMember.value.childGender;
|
|
1494
|
+
}
|
|
1495
|
+
})!;
|
|
1496
|
+
member.value.relationDegree = dataStore.relations.find(i => {
|
|
1497
|
+
if (typeof selectedFamilyMember.value === 'object') {
|
|
1498
|
+
return selectedFamilyMember.value.childGender === 1 ? i.nameRu === 'Сын' : i.nameRu === 'Дочь';
|
|
1499
|
+
}
|
|
1500
|
+
})!;
|
|
1501
|
+
if (dataStore.isGons) {
|
|
1502
|
+
member.value.chooseChild = `${selectedFamilyMember.value.childSurName} ${selectedFamilyMember.value.childName} ${selectedFamilyMember.value.childPatronymic ? selectedFamilyMember.value.childPatronymic : ''}`;
|
|
1503
|
+
}
|
|
1461
1504
|
}
|
|
1462
1505
|
familyDialog.value = false;
|
|
1463
1506
|
isButtonLoading.value = false;
|
|
@@ -2029,6 +2072,22 @@ export default {
|
|
|
2029
2072
|
},
|
|
2030
2073
|
);
|
|
2031
2074
|
|
|
2075
|
+
if (dataStore.isGons) {
|
|
2076
|
+
watch(
|
|
2077
|
+
() => member.value.chooseChild,
|
|
2078
|
+
val => {
|
|
2079
|
+
if (val === dataStore.t('form.addBeneficiary')) {
|
|
2080
|
+
const idsToFind = ['14', '15', '21', '20', '24', '25', '27'];
|
|
2081
|
+
const filteredData = dataStore.relations.filter(item => idsToFind.includes(item.ids as string));
|
|
2082
|
+
filteredRelationsData.value = filteredData;
|
|
2083
|
+
} else {
|
|
2084
|
+
filteredRelationsData.value = dataStore.relations;
|
|
2085
|
+
}
|
|
2086
|
+
},
|
|
2087
|
+
{ immediate: true },
|
|
2088
|
+
);
|
|
2089
|
+
}
|
|
2090
|
+
|
|
2032
2091
|
watch(
|
|
2033
2092
|
() => member.value.registrationProvince,
|
|
2034
2093
|
(val, oldVal) => {
|
|
@@ -2175,6 +2234,8 @@ export default {
|
|
|
2175
2234
|
isRelative,
|
|
2176
2235
|
imageDataList,
|
|
2177
2236
|
contragents,
|
|
2237
|
+
filteredRelationsData,
|
|
2238
|
+
|
|
2178
2239
|
// Computed
|
|
2179
2240
|
whichForm,
|
|
2180
2241
|
whichIndex,
|
|
@@ -2202,6 +2263,7 @@ export default {
|
|
|
2202
2263
|
hasGBDFLDocSelection,
|
|
2203
2264
|
isNonResident,
|
|
2204
2265
|
isDataFromGov,
|
|
2266
|
+
isChooseChild,
|
|
2205
2267
|
|
|
2206
2268
|
// Rules
|
|
2207
2269
|
ageRule,
|
|
@@ -2210,6 +2272,7 @@ export default {
|
|
|
2210
2272
|
birthDateRule,
|
|
2211
2273
|
|
|
2212
2274
|
// Functions
|
|
2275
|
+
addChild,
|
|
2213
2276
|
searchMember,
|
|
2214
2277
|
openPanel,
|
|
2215
2278
|
openCustomPanel,
|
|
@@ -466,14 +466,15 @@
|
|
|
466
466
|
:readonly="isDisabled"
|
|
467
467
|
:clearable="!isDisabled"
|
|
468
468
|
:max-date="formatDate(transferMaxDate) ?? undefined"
|
|
469
|
-
:rules="$dataStore.rules.required.concat(
|
|
469
|
+
:rules="$dataStore.rules.required.concat(checkTransferContractDate)"
|
|
470
470
|
append-inner-icon="mdi mdi-calendar-blank-outline"
|
|
471
471
|
/>
|
|
472
472
|
<span v-if="transferMaxDate && !isDisabled" class="px-3 font-light text-sm bg-white py-0 mt-[-5px]" style="color: #a0b3d8 !important"
|
|
473
473
|
>до {{ transferMaxDate }} включительно</span
|
|
474
474
|
>
|
|
475
475
|
</div>
|
|
476
|
-
|
|
476
|
+
<!--
|
|
477
|
+
<base-form-input v-model="contract.transferContractNumber" :label="$dataStore.t('pension.globalId')" :readonly="isDisabled" :clearable="!isDisabled"
|
|
477
478
|
<base-form-input
|
|
478
479
|
v-model="contract.transferContractRegNumber"
|
|
479
480
|
:label="$dataStore.t('pension.transferRegNumber')"
|
|
@@ -481,6 +482,7 @@
|
|
|
481
482
|
:readonly="isDisabled"
|
|
482
483
|
:clearable="!isDisabled"
|
|
483
484
|
/>
|
|
485
|
+
-->
|
|
484
486
|
<base-form-input
|
|
485
487
|
v-model="contract.transferContractFirstPaymentDate"
|
|
486
488
|
:maska="$maska.date"
|
|
@@ -500,7 +502,22 @@
|
|
|
500
502
|
@onClear="onClearPension('transferContractAmount', index)"
|
|
501
503
|
/>
|
|
502
504
|
<base-form-toggle v-model="contract.transferContractIsOppv" :disabled="isDisabled" :has-border="false" :title="$dataStore.t('pension.isOPPVTransfer')" />
|
|
503
|
-
<base-
|
|
505
|
+
<base-form-input
|
|
506
|
+
v-if="contract.transferContractIsOppv"
|
|
507
|
+
v-model="contract.transferContractMonthCount"
|
|
508
|
+
:disabled="$dataStore.isLoading"
|
|
509
|
+
:rules="$rules.required.concat($rules.notZero, $rules.numbers)"
|
|
510
|
+
:label="$dataStore.t('pension.compulsoryProfMonthCount')"
|
|
511
|
+
/>
|
|
512
|
+
<base-btn
|
|
513
|
+
v-if="!isDisabled"
|
|
514
|
+
class="mt-3"
|
|
515
|
+
:text="$dataStore.t('buttons.delete')"
|
|
516
|
+
:disabled="isDisabled"
|
|
517
|
+
size="sm"
|
|
518
|
+
:btn="$styles.redBtn"
|
|
519
|
+
@click="removeTransferContract(index)"
|
|
520
|
+
/>
|
|
504
521
|
</section>
|
|
505
522
|
</base-form-section>
|
|
506
523
|
<base-form-section :title="$dataStore.t('pension.paymentTerms')">
|
|
@@ -519,7 +536,7 @@
|
|
|
519
536
|
<base-form-input v-model="dateOfBegin" :maska="$maska.date" readonly :label="$dataStore.t('pension.paymentsDate')" append-inner-icon="mdi mdi-calendar-blank-outline" />
|
|
520
537
|
<base-rounded-select
|
|
521
538
|
v-model="pensionForm.guaranteedPeriod"
|
|
522
|
-
class="pension-
|
|
539
|
+
class="pension-round-toggle"
|
|
523
540
|
:readonly="isDisabled"
|
|
524
541
|
:clearable="!isDisabled"
|
|
525
542
|
:rules="$rules.notZero"
|
|
@@ -527,6 +544,18 @@
|
|
|
527
544
|
:items="guaranteedPeriodList"
|
|
528
545
|
:hide-details="true"
|
|
529
546
|
/>
|
|
547
|
+
<base-rounded-select
|
|
548
|
+
v-if="dividendPeriods"
|
|
549
|
+
v-model="pensionForm.dividendId"
|
|
550
|
+
class="pension-round-toggle"
|
|
551
|
+
:readonly="isDisabled"
|
|
552
|
+
:rules="$rules.notZero"
|
|
553
|
+
:label="$dataStore.t('pension.dividendPeriod')"
|
|
554
|
+
item-title="nameRu"
|
|
555
|
+
item-value="id"
|
|
556
|
+
:items="dividendPeriods"
|
|
557
|
+
:hide-details="true"
|
|
558
|
+
/>
|
|
530
559
|
<base-form-input v-model="pensionForm.frequencyPayments" disabled :label="$dataStore.t('pension.frequencyPayments')" />
|
|
531
560
|
<base-form-input v-model="pensionForm.periodPayments" disabled :label="$dataStore.t('pension.paymentPeriod')" />
|
|
532
561
|
<base-form-input v-model="pensionForm.insuranceProgramType" disabled :label="$dataStore.t('pension.insuranceProgramType')" />
|
|
@@ -803,6 +832,40 @@
|
|
|
803
832
|
</base-animation>
|
|
804
833
|
<base-btn class="min-h-[60px]" :text="$dataStore.t('buttons.calcPremium')" type="submit" @click.prevent="underwriterCalculate('premium')" :loading="isCalculating" />
|
|
805
834
|
</div>
|
|
835
|
+
<base-fade-transition>
|
|
836
|
+
<base-form-section :title="$dataStore.t('pension.dividendsGraph')" v-if="dividendSchedules.scheduleDividend" class="grid-table">
|
|
837
|
+
<div class="flex justify-between rounded-t-[8px] border-b-[1px]" :class="[$styles.blueBg, $styles.whiteText]">
|
|
838
|
+
<span class="h-full">#</span>
|
|
839
|
+
<span class="h-full">{{ $dataStore.t('pension.dividendDate') }}</span>
|
|
840
|
+
<span class="h-full grow">{{ $dataStore.t('pension.dividendAmount') }}</span>
|
|
841
|
+
</div>
|
|
842
|
+
<v-virtual-scroll :items="dividendSchedules.scheduleDividend" height="300">
|
|
843
|
+
<template v-slot:default="{ item, index }">
|
|
844
|
+
<div class="flex justify-between border-b-[1px]" :class="[$styles.whiteBg, $styles.textSimple, $styles.rounded]">
|
|
845
|
+
<span class="h-full">{{ index + 1 }}</span>
|
|
846
|
+
<span class="h-full">{{ reformatDate(item.date) }}</span>
|
|
847
|
+
<span class="h-full grow">{{ $dataStore.getNumberWithSpaces(item.amount) }}</span>
|
|
848
|
+
</div>
|
|
849
|
+
</template>
|
|
850
|
+
</v-virtual-scroll>
|
|
851
|
+
</base-form-section>
|
|
852
|
+
<base-form-section :title="$dataStore.t('pension.dividendsGraph') + ' 2'" v-if="dividendSchedules.scheduleDividend2" class="grid-table">
|
|
853
|
+
<div class="flex justify-between rounded-t-[8px] border-b-[1px]" :class="[$styles.blueBg, $styles.whiteText]">
|
|
854
|
+
<span class="h-full">#</span>
|
|
855
|
+
<span class="h-full">{{ $dataStore.t('pension.dividendDate') }}</span>
|
|
856
|
+
<span class="h-full grow">{{ $dataStore.t('pension.dividendAmount') }}</span>
|
|
857
|
+
</div>
|
|
858
|
+
<v-virtual-scroll :items="dividendSchedules.scheduleDividend2" height="300">
|
|
859
|
+
<template v-slot:default="{ item, index }">
|
|
860
|
+
<div class="flex justify-between border-b-[1px]" :class="[$styles.whiteBg, $styles.textSimple, $styles.rounded]">
|
|
861
|
+
<span class="h-full">{{ index + 1 }}</span>
|
|
862
|
+
<span class="h-full">{{ reformatDate(item.date) }}</span>
|
|
863
|
+
<span class="h-full grow">{{ $dataStore.getNumberWithSpaces(item.amount) }}</span>
|
|
864
|
+
</div>
|
|
865
|
+
</template>
|
|
866
|
+
</v-virtual-scroll>
|
|
867
|
+
</base-form-section>
|
|
868
|
+
</base-fade-transition>
|
|
806
869
|
<Teleport v-if="isPanelOpen" to="#right-panel-actions">
|
|
807
870
|
<div :class="[$styles.scrollPage]" class="flex flex-col items-center">
|
|
808
871
|
<base-rounded-input v-model.trim="searchQuery" :label="$dataStore.t('labels.search')" class="w-full p-2" :hide-details="true" />
|
|
@@ -923,12 +986,37 @@ export default defineComponent({
|
|
|
923
986
|
const additionalTerms = ref<AddCover[]>([]);
|
|
924
987
|
|
|
925
988
|
const maxDate = ref<string | null>();
|
|
926
|
-
const transferMaxDate = ref();
|
|
927
989
|
const dateOfBegin = ref();
|
|
928
990
|
const contractDate = ref<string | null>();
|
|
929
991
|
const transferContractDate = ref<string | null>();
|
|
930
992
|
const transferContractFirstPaymentDate = ref<string | null>();
|
|
931
993
|
const guaranteedPeriodList = Array.from(Array(35), (_, i) => i + 1);
|
|
994
|
+
const dividendPeriods = ref<Value[] | null>(null);
|
|
995
|
+
|
|
996
|
+
const dividendSchedules = ref(<
|
|
997
|
+
{
|
|
998
|
+
scheduleDividend: any[] | null;
|
|
999
|
+
scheduleDividend2: any[] | null;
|
|
1000
|
+
}
|
|
1001
|
+
>{
|
|
1002
|
+
scheduleDividend: null,
|
|
1003
|
+
scheduleDividend2: null,
|
|
1004
|
+
});
|
|
1005
|
+
const transferMaxDate = computed({
|
|
1006
|
+
get() {
|
|
1007
|
+
if (contractDate.value) {
|
|
1008
|
+
var maxDate = structuredClone(formatDate(contractDate.value))!;
|
|
1009
|
+
maxDate.setFullYear(maxDate.getFullYear() - 2);
|
|
1010
|
+
maxDate.setDate(maxDate.getDate() + 1);
|
|
1011
|
+
return reformatDate(String(maxDate))!;
|
|
1012
|
+
} else {
|
|
1013
|
+
return '';
|
|
1014
|
+
}
|
|
1015
|
+
},
|
|
1016
|
+
set(newValue) {
|
|
1017
|
+
return newValue;
|
|
1018
|
+
},
|
|
1019
|
+
});
|
|
932
1020
|
const isSlavePensionForm = computed(() => route.query.which === 'slave');
|
|
933
1021
|
const pensionForm = computedWithControl(
|
|
934
1022
|
() => formStore.pensionApp,
|
|
@@ -960,6 +1048,18 @@ export default defineComponent({
|
|
|
960
1048
|
const firstAmount = ref<boolean>(true);
|
|
961
1049
|
const isHalykBank = formStore.lfb.policyholder.clientData.iin.replace(/-/g, '') === '940140000385';
|
|
962
1050
|
|
|
1051
|
+
const checkTransferContractDate = (val: any) => {
|
|
1052
|
+
if (val) {
|
|
1053
|
+
if (new Date(formatDate(transferMaxDate.value)!.valueOf() - formatDate(val)!.valueOf()).getUTCFullYear() - 1970 < 0) {
|
|
1054
|
+
return dataStore.t('rules.invalidtransferContractDate');
|
|
1055
|
+
} else {
|
|
1056
|
+
return true;
|
|
1057
|
+
}
|
|
1058
|
+
} else {
|
|
1059
|
+
return true;
|
|
1060
|
+
}
|
|
1061
|
+
};
|
|
1062
|
+
|
|
963
1063
|
const isShownAdditionalTerms = computed(() => {
|
|
964
1064
|
if (whichProduct.value === 'gons') {
|
|
965
1065
|
return false;
|
|
@@ -1836,6 +1936,7 @@ export default defineComponent({
|
|
|
1836
1936
|
|
|
1837
1937
|
const addTransferContract = () => {
|
|
1838
1938
|
transferContracts.value.push(new TransferContract());
|
|
1939
|
+
transferContracts.value[transferContracts.value.length - 1].transferContractDate = transferMaxDate.value;
|
|
1839
1940
|
};
|
|
1840
1941
|
|
|
1841
1942
|
const removeTransferContract = (index: number) => {
|
|
@@ -1992,6 +2093,7 @@ export default defineComponent({
|
|
|
1992
2093
|
}
|
|
1993
2094
|
await dataStore.getApplicationData(String(route.params.taskId), false, false, false, true);
|
|
1994
2095
|
dateOfBegin.value = reformatDate(formStore.applicationData.pensionApp.dateOfBegin);
|
|
2096
|
+
dividendSchedules.value = await dataStore.getDividendSchedule();
|
|
1995
2097
|
} else {
|
|
1996
2098
|
if (whichSum.value === 'requestedSumInsured') {
|
|
1997
2099
|
productConditionsForm.insurancePremiumPerMonth = null;
|
|
@@ -2208,6 +2310,10 @@ export default defineComponent({
|
|
|
2208
2310
|
transferContractDate.value = reformatDate(pensionForm.value.transferContractDate);
|
|
2209
2311
|
transferContractFirstPaymentDate.value = reformatDate(pensionForm.value.transferContractFirstPaymentDate ?? '');
|
|
2210
2312
|
maxDate.value = await dataStore.getVariableData(formStore.applicationData.processCode ?? 19);
|
|
2313
|
+
dividendPeriods.value = await dataStore.getProcessDividendPeriods();
|
|
2314
|
+
if (pensionForm.value.dividendId) {
|
|
2315
|
+
dividendSchedules.value = await dataStore.getDividendSchedule();
|
|
2316
|
+
}
|
|
2211
2317
|
if (!transferContracts.value.length && pensionForm.value.transferContracts && pensionForm.value.transferContracts.length) {
|
|
2212
2318
|
pensionForm.value.transferContracts.forEach((contract: TransferContract) => {
|
|
2213
2319
|
transferContracts.value.push({
|
|
@@ -2372,15 +2478,12 @@ export default defineComponent({
|
|
|
2372
2478
|
if (val !== null && val !== undefined && val.length === 10 && oldVal != undefined && !isSlavePensionForm.value) {
|
|
2373
2479
|
const formattedContractDate = formatDate(val);
|
|
2374
2480
|
if (formattedContractDate) {
|
|
2375
|
-
const transferMax = formattedContractDate;
|
|
2376
|
-
transferMax.setFullYear(transferMax.getFullYear() - 2);
|
|
2377
|
-
transferMax.setDate(transferMax.getDate() + 1);
|
|
2378
|
-
transferMaxDate.value = reformatDate(String(transferMax));
|
|
2379
2481
|
formattedContractDate.setDate(formattedContractDate.getDate() + 20);
|
|
2380
2482
|
dateOfBegin.value = reformatDate(String(formattedContractDate));
|
|
2381
2483
|
}
|
|
2382
2484
|
}
|
|
2383
2485
|
},
|
|
2486
|
+
{ immediate: true },
|
|
2384
2487
|
);
|
|
2385
2488
|
}
|
|
2386
2489
|
|
|
@@ -2499,6 +2602,8 @@ export default defineComponent({
|
|
|
2499
2602
|
hasInsStartDate,
|
|
2500
2603
|
hasInsEndDate,
|
|
2501
2604
|
isSlavePensionForm,
|
|
2605
|
+
dividendPeriods,
|
|
2606
|
+
dividendSchedules,
|
|
2502
2607
|
|
|
2503
2608
|
// Rules
|
|
2504
2609
|
fixInsSumRule,
|
|
@@ -2537,13 +2642,32 @@ export default defineComponent({
|
|
|
2537
2642
|
getContragent,
|
|
2538
2643
|
addTransferContract,
|
|
2539
2644
|
removeTransferContract,
|
|
2645
|
+
checkTransferContractDate,
|
|
2540
2646
|
};
|
|
2541
2647
|
},
|
|
2542
2648
|
});
|
|
2543
2649
|
</script>
|
|
2544
2650
|
|
|
2545
2651
|
<style>
|
|
2546
|
-
.pension-
|
|
2652
|
+
.pension-round-toggle .v-field {
|
|
2547
2653
|
border: none !important;
|
|
2548
2654
|
}
|
|
2655
|
+
.grid-table > div > span {
|
|
2656
|
+
padding-left: 24px;
|
|
2657
|
+
border-right: 1px solid #fff;
|
|
2658
|
+
display: flex;
|
|
2659
|
+
align-items: center;
|
|
2660
|
+
padding-top: 12px;
|
|
2661
|
+
padding-bottom: 12px;
|
|
2662
|
+
min-width: 15%;
|
|
2663
|
+
}
|
|
2664
|
+
.v-virtual-scroll__item > div > span {
|
|
2665
|
+
padding-left: 24px;
|
|
2666
|
+
border-right: 1px solid #fff;
|
|
2667
|
+
display: flex;
|
|
2668
|
+
align-items: center;
|
|
2669
|
+
padding-top: 12px;
|
|
2670
|
+
padding-bottom: 12px;
|
|
2671
|
+
min-width: 15%;
|
|
2672
|
+
}
|
|
2549
2673
|
</style>
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
<div v-if="isScansDocuments" :class="[$styles.flexColNav]">
|
|
42
42
|
<div v-if="isNewSign">
|
|
43
43
|
<div class="flex flex-col gap-2">
|
|
44
|
-
<base-btn v-for="file in
|
|
44
|
+
<base-btn v-for="file in getFilesDownloadButtons" :text="`Скачать ${file.fileName}`" :loading="$dataStore.isButtonsLoading" @click="getDocNew(file)" />
|
|
45
45
|
<base-form-section class="mt-4 flex flex-col !gap-2" :title="$dataStore.t('clients.attachScansSignDocs')">
|
|
46
46
|
<base-file-input v-for="file in signingFiles" :label="`Вложить ${file.fileName}`" @input.prevent="onFileChangeScansNew($event, file)" @onClear="onClearFileNew(file)" />
|
|
47
47
|
</base-form-section>
|
|
@@ -60,6 +60,13 @@
|
|
|
60
60
|
</div>
|
|
61
61
|
<base-btn :text="$dataStore.t('buttons.sign')" :loading="$dataStore.isButtonsLoading || loading" @click="isNewSign ? sendFilesNew() : sendFiles()" />
|
|
62
62
|
<base-btn :text="$dataStore.t('buttons.cancel')" :btn="$styles.whiteBtn" @click="isScansDocuments = false" />
|
|
63
|
+
<base-btn
|
|
64
|
+
v-if="isOnlineEnpf === false && $dataStore.isPension && formStore.applicationData.statusCode === 'AttachAppContractForm'"
|
|
65
|
+
class="mt-[2rem]"
|
|
66
|
+
:text="$dataStore.t('buttons.send')"
|
|
67
|
+
:loading="loading"
|
|
68
|
+
@click="$dataStore.panelAction = constants.actions.signed"
|
|
69
|
+
/>
|
|
63
70
|
</div>
|
|
64
71
|
<div v-if="isQr" :class="[$styles.flexColNav]">
|
|
65
72
|
<base-form-section :title="''">
|
|
@@ -302,6 +309,13 @@ export default defineComponent({
|
|
|
302
309
|
const scansFiles = ref<any[]>([]);
|
|
303
310
|
const isAllPaperSigned = computed(() => formStore.signatories.every((person: any) => person.fileDatas.every((file: any) => file.isSigned === true && file.signedType === 2)));
|
|
304
311
|
const processCode = formStore.applicationData.processCode;
|
|
312
|
+
const getFilesDownloadButtons = computed(() => {
|
|
313
|
+
if (isOnlineEnpf.value === false && dataStore.isPension && formStore.applicationData.statusCode === 'ContractSignedFrom') {
|
|
314
|
+
return signingFiles.value.filter(i => i.fileType === 6);
|
|
315
|
+
} else {
|
|
316
|
+
return signingFiles.value;
|
|
317
|
+
}
|
|
318
|
+
});
|
|
305
319
|
|
|
306
320
|
const openSmsPanel = (signInfo: Types.SignUrlType) => {
|
|
307
321
|
if (signInfo) {
|
|
@@ -1017,6 +1031,7 @@ export default defineComponent({
|
|
|
1017
1031
|
inSigningOrder,
|
|
1018
1032
|
isNewSign,
|
|
1019
1033
|
hasEpayPay,
|
|
1034
|
+
getFilesDownloadButtons,
|
|
1020
1035
|
};
|
|
1021
1036
|
},
|
|
1022
1037
|
});
|
package/composables/classes.ts
CHANGED
|
@@ -497,6 +497,7 @@ export class Member extends Person {
|
|
|
497
497
|
bankInfo: BankInfoClass;
|
|
498
498
|
transferContractCompany: Value;
|
|
499
499
|
digitalDocument: IDocument | null;
|
|
500
|
+
chooseChild: string | null;
|
|
500
501
|
identityDocument: {
|
|
501
502
|
documentType: Value;
|
|
502
503
|
documentNumber: string | null;
|
|
@@ -571,6 +572,7 @@ export class Member extends Person {
|
|
|
571
572
|
confirmDocTypeKz = null,
|
|
572
573
|
confirmDocTypeRod = null,
|
|
573
574
|
isNotary = false,
|
|
575
|
+
chooseChild = null,
|
|
574
576
|
) {
|
|
575
577
|
super(id, type, iin, longName, lastName, firstName, middleName, birthDate, gender, genderName, birthPlace, age);
|
|
576
578
|
this.documentsList = [];
|
|
@@ -642,6 +644,7 @@ export class Member extends Person {
|
|
|
642
644
|
this.bankInfo = new BankInfoClass();
|
|
643
645
|
this.transferContractCompany = new Value();
|
|
644
646
|
this.digitalDocument = null;
|
|
647
|
+
this.chooseChild = chooseChild;
|
|
645
648
|
this.identityDocument = {
|
|
646
649
|
documentType: new Value(),
|
|
647
650
|
documentNumber: null,
|
package/composables/constants.ts
CHANGED
package/composables/index.ts
CHANGED
|
@@ -840,6 +840,7 @@ export class RoleController {
|
|
|
840
840
|
isUpk = () => this.isRole(constants.roles.UPK);
|
|
841
841
|
isUrp = () => this.isRole(constants.roles.URP);
|
|
842
842
|
isUsns = () => this.isRole(constants.roles.USNS);
|
|
843
|
+
isNotAccumulativeSanctionerUSNS = () => this.isRole(constants.roles.NotAccumulativeSanctionerUSNS);
|
|
843
844
|
isAccountant = () => this.isRole(constants.roles.Accountant);
|
|
844
845
|
isDrn = () => this.isRole(constants.roles.DRNSJ);
|
|
845
846
|
isSupport = () => this.isRole(constants.roles.Support);
|
|
@@ -886,12 +887,14 @@ export class RoleController {
|
|
|
886
887
|
this.isSecurity() ||
|
|
887
888
|
baseAccessRoles,
|
|
888
889
|
toDSO:
|
|
890
|
+
this.isUsns() ||
|
|
889
891
|
this.isDsuio() ||
|
|
890
892
|
this.isActuary() ||
|
|
891
893
|
this.isHeadOfDso() ||
|
|
892
894
|
this.isAccountant() ||
|
|
893
895
|
this.isUSNSACCINS() ||
|
|
894
896
|
this.isDsoDirector() ||
|
|
897
|
+
this.isNotAccumulativeSanctionerUSNS() ||
|
|
895
898
|
this.isServiceManager() ||
|
|
896
899
|
this.isUSNSsanctioner() ||
|
|
897
900
|
this.isAccountantDirector() ||
|
|
@@ -931,6 +934,7 @@ export class RoleController {
|
|
|
931
934
|
this.isURAP() ||
|
|
932
935
|
this.isTravelAgent() ||
|
|
933
936
|
this.isHR() ||
|
|
937
|
+
this.isNotAccumulativeSanctionerUSNS() ||
|
|
934
938
|
baseAccessRoles,
|
|
935
939
|
};
|
|
936
940
|
};
|
package/locales/ru.json
CHANGED
|
@@ -150,7 +150,9 @@
|
|
|
150
150
|
"errorOsns": "По данному БИН на дату заключения заявления не найден договор ОСНС. Просим проверить БИН Страхователя.",
|
|
151
151
|
"needDigDoc": "Нужно получить цифровой документ {text}",
|
|
152
152
|
"needToRecalc": "Дата оплаты не совпадает с датой договора, нажмите «Перерасчет» и отправьте клиенту новый QR для подписания.",
|
|
153
|
-
"notDigDoc": "Выданный документ не найден"
|
|
153
|
+
"notDigDoc": "Выданный документ не найден",
|
|
154
|
+
"siblingRelationDoc": "Необходимо вложить документы, подтверждающие родственные связи между Страхователем и Выгодоприобретателем.\nВ случае, если степень родства Выгодоприобретателя выбрано:\n Полнородный брат/сестра или Неполнородный брат/сестра - Необходимо вложить 2 документа: Свидетельство о рождении Выгодоприобретателя и Свидетельство о рождении Страхователя",
|
|
155
|
+
"grandchildRelationDoc": "Необходимо вложить документы, подтверждающие родственные связи между Страхователем и Выгодоприобретателем.\nВ случае, если степень родства Выгодоприобретателя выбрано:\n Внук/Внучка - Необходимо вложить 2 документа: Свидетельство о рождении Выгодоприобретателя и Свидетельство о рождении родителя (который является ребенком страхователя) Выгодоприобретателя"
|
|
154
156
|
},
|
|
155
157
|
"notSignedContract": "Неподписанный Договор",
|
|
156
158
|
"Contract": "Договор страхования",
|
|
@@ -251,7 +253,7 @@
|
|
|
251
253
|
"recalc": "Перерасчет",
|
|
252
254
|
"conclude": "Заключить",
|
|
253
255
|
"agree": "Согласен",
|
|
254
|
-
"disagree": "Не согласен"
|
|
256
|
+
"disagree": "Не согласен"
|
|
255
257
|
},
|
|
256
258
|
"dialog": {
|
|
257
259
|
"title": "Подтверждение",
|
|
@@ -438,7 +440,7 @@
|
|
|
438
440
|
"fixInsSum": "Фиксированная сумма",
|
|
439
441
|
"amountRefunded": "Сумма к возврату",
|
|
440
442
|
"amountPaid": "Сумма к доплате",
|
|
441
|
-
"franchise": "Франшиза"
|
|
443
|
+
"franchise": "Франшиза"
|
|
442
444
|
},
|
|
443
445
|
"calculatorForm": {
|
|
444
446
|
"selectedCountries": "Выбранные страны",
|
|
@@ -590,7 +592,7 @@
|
|
|
590
592
|
"KSJagreement": "Договор с другой КСЖ",
|
|
591
593
|
"ENPFnote": "Выписка из ЕНПФ",
|
|
592
594
|
"getDataENPF": "Получить данные с ЕНПФ",
|
|
593
|
-
"compulsoryProfMonthCount": "Количество месяцев уплаты ОППВ
|
|
595
|
+
"compulsoryProfMonthCount": "Количество месяцев уплаты ОППВ",
|
|
594
596
|
"insuredIIN": "ИИН «Страхователя»",
|
|
595
597
|
"ifHasRelationBeneficiary": "Включите, если у Страхователя есть Родственные связи с Выгодоприобретателем",
|
|
596
598
|
"complianceFinMonitoring": "Приложение 6/ПОДФТ",
|
|
@@ -609,7 +611,11 @@
|
|
|
609
611
|
"fileError": "Ошибка прикрепления файла",
|
|
610
612
|
"parentContractNextPay": "Возврат с учетом очередной выплаты",
|
|
611
613
|
"parentContractNextPayDate": "Очередная выплата по графику",
|
|
612
|
-
"oppvPaymentCertificate": "Справка о количество взносов за счет ОППВ"
|
|
614
|
+
"oppvPaymentCertificate": "Справка о количество взносов за счет ОППВ",
|
|
615
|
+
"dividendPeriod": "Периодичность выплаты дивидендов",
|
|
616
|
+
"dividendsGraph": "График страховых дивидендов",
|
|
617
|
+
"dividendDate": "Дата выплаты",
|
|
618
|
+
"dividendAmount": "Размер периодичной страхового дивиденда (тенге)"
|
|
613
619
|
},
|
|
614
620
|
"agent": {
|
|
615
621
|
"currency": "Валюта",
|
|
@@ -1036,7 +1042,10 @@
|
|
|
1036
1042
|
"deathInsAnyReason": "Смерть Застрахованного по любой причине",
|
|
1037
1043
|
"mark": "Признак",
|
|
1038
1044
|
"signerData": "Данные Подписанта",
|
|
1039
|
-
"individualOwnerData": "Данные владельца ИП"
|
|
1045
|
+
"individualOwnerData": "Данные владельца ИП",
|
|
1046
|
+
"chooseChild": "Выберите ребёнка",
|
|
1047
|
+
"addChild": "Добавить ребёнка",
|
|
1048
|
+
"addBeneficiary": "Добавить выгодоприобретателя"
|
|
1040
1049
|
},
|
|
1041
1050
|
"bankDetailsForm": {
|
|
1042
1051
|
"title": "Банковские реквизиты",
|
|
@@ -1212,5 +1221,4 @@
|
|
|
1212
1221
|
"coverageFrom": "Период действия с",
|
|
1213
1222
|
"coverageTo": "Период действия до",
|
|
1214
1223
|
"recoveredFrom": "Восстановлен с"
|
|
1215
|
-
|
|
1216
1224
|
}
|
package/package.json
CHANGED
package/store/data.store.ts
CHANGED
|
@@ -931,7 +931,9 @@ export const useDataStore = defineStore('data', {
|
|
|
931
931
|
isTerror: member.isTerror,
|
|
932
932
|
isIpdlCompliance: null,
|
|
933
933
|
isTerrorCompliance: null,
|
|
934
|
+
fromService: this.isGons && whichMember === 'Beneficiary' ? (member.chooseChild === 'Добавить выгодоприобретателя' ? false : true) : true,
|
|
934
935
|
};
|
|
936
|
+
|
|
935
937
|
if (this.isPension && memberFromApplicaiton && memberFromApplicaiton.processInstanceId === this.formStore.applicationData.slave?.processInstanceId) {
|
|
936
938
|
data.processInstanceId = this.formStore.applicationData.slave.processInstanceId;
|
|
937
939
|
}
|
|
@@ -2105,6 +2107,21 @@ export const useDataStore = defineStore('data', {
|
|
|
2105
2107
|
}
|
|
2106
2108
|
this.isLoading = false;
|
|
2107
2109
|
},
|
|
2110
|
+
async getDividendSchedule() {
|
|
2111
|
+
this.isLoading = true;
|
|
2112
|
+
try {
|
|
2113
|
+
const response = await this.api.pensionannuityNew.getDividendSchedule(this.formStore.applicationData.processInstanceId);
|
|
2114
|
+
return response;
|
|
2115
|
+
} catch (err) {
|
|
2116
|
+
ErrorHandler(err);
|
|
2117
|
+
return {
|
|
2118
|
+
scheduleDividend: null,
|
|
2119
|
+
scheduleDividend2: null,
|
|
2120
|
+
};
|
|
2121
|
+
} finally {
|
|
2122
|
+
this.isLoading = false;
|
|
2123
|
+
}
|
|
2124
|
+
},
|
|
2108
2125
|
async calcParentContractSums(closeContractCompanyCode: string, closeContractCompanyName: string, isContractClosed: boolean) {
|
|
2109
2126
|
this.isLoading = true;
|
|
2110
2127
|
try {
|
|
@@ -2396,6 +2413,9 @@ export const useDataStore = defineStore('data', {
|
|
|
2396
2413
|
const relationDegree = this.relations.find((i: Value) => i.ids == each.relationId);
|
|
2397
2414
|
this.formStore.beneficiaryForm[index].relationDegree = relationDegree ? relationDegree : new Value();
|
|
2398
2415
|
this.formStore.beneficiaryForm[index].percentageOfPayoutAmount = each.percentage;
|
|
2416
|
+
if (this.isGons) {
|
|
2417
|
+
this.formStore.beneficiaryForm[index].chooseChild = each.fromService === false ? 'Добавить выгодоприобретателя' : each.longName;
|
|
2418
|
+
}
|
|
2399
2419
|
if (this.isLiferenta || this.isBolashak) {
|
|
2400
2420
|
const insurancePay = this.insurancePay.find((i: Value) => i.id == each.beneficiaryInsurancePayId);
|
|
2401
2421
|
this.formStore.beneficiaryForm[index].insurancePay = insurancePay ? insurancePay : new Value();
|
|
@@ -3257,6 +3277,27 @@ export const useDataStore = defineStore('data', {
|
|
|
3257
3277
|
return ErrorHandler(err);
|
|
3258
3278
|
}
|
|
3259
3279
|
}
|
|
3280
|
+
if (this.isGons) {
|
|
3281
|
+
const { relationDegree } = this.formStore.beneficiaryForm[0];
|
|
3282
|
+
const siblingRelationIds = ['14', '15', '24', '25'];
|
|
3283
|
+
const grandchildRelationIds = ['20', '21'];
|
|
3284
|
+
let hasSiblingRelationId = siblingRelationIds.includes(String(relationDegree?.ids));
|
|
3285
|
+
let hasGrandchildRelationId = grandchildRelationIds.includes(String(relationDegree?.ids));
|
|
3286
|
+
const hasRelationDoc = this.formStore.signedDocumentList.filter(i => i.fileTypeCode === '46' || i.fileTypeCode === '53').length >= 2;
|
|
3287
|
+
|
|
3288
|
+
if (hasSiblingRelationId && !hasRelationDoc) {
|
|
3289
|
+
this.isLoading = false;
|
|
3290
|
+
hasSiblingRelationId = false;
|
|
3291
|
+
this.showToaster('error', this.t('toaster.siblingRelationDoc'), 3000);
|
|
3292
|
+
return false;
|
|
3293
|
+
}
|
|
3294
|
+
if (hasGrandchildRelationId && !hasRelationDoc) {
|
|
3295
|
+
this.isLoading = false;
|
|
3296
|
+
hasGrandchildRelationId = false;
|
|
3297
|
+
this.showToaster('error', this.t('toaster.grandchildRelationDoc'), 3000);
|
|
3298
|
+
return false;
|
|
3299
|
+
}
|
|
3300
|
+
}
|
|
3260
3301
|
return true;
|
|
3261
3302
|
},
|
|
3262
3303
|
validateAnketa(whichSurvey: 'surveyByHealthBase' | 'surveyByHealthBasePolicyholder' | 'surveyByCriticalBase' | 'surveyByCriticalBasePolicyholder') {
|
|
@@ -4161,6 +4202,16 @@ export const useDataStore = defineStore('data', {
|
|
|
4161
4202
|
return null;
|
|
4162
4203
|
}
|
|
4163
4204
|
},
|
|
4205
|
+
async getProcessDividendPeriods() {
|
|
4206
|
+
try {
|
|
4207
|
+
if (!this.processCode) return null;
|
|
4208
|
+
const response = await this.api.getProcessDividendPeriods(this.processCode);
|
|
4209
|
+
return response;
|
|
4210
|
+
} catch (err) {
|
|
4211
|
+
ErrorHandler(err);
|
|
4212
|
+
return null;
|
|
4213
|
+
}
|
|
4214
|
+
},
|
|
4164
4215
|
async checkIIN(iin: string) {
|
|
4165
4216
|
try {
|
|
4166
4217
|
const response = await this.api.checkIIN(iin);
|
package/types/enum.ts
CHANGED
|
@@ -125,6 +125,7 @@ export enum Roles {
|
|
|
125
125
|
URAP = 'URAP',
|
|
126
126
|
TravelAgent = 'TravelAgent',
|
|
127
127
|
HR = 'HR',
|
|
128
|
+
NotAccumulativeSanctionerUSNS = 'NotAccumulativeSanctionerUSNS',
|
|
128
129
|
}
|
|
129
130
|
|
|
130
131
|
export enum Statuses {
|
|
@@ -151,6 +152,7 @@ export enum Statuses {
|
|
|
151
152
|
JuristForm = 'JuristForm',
|
|
152
153
|
AccountantForm = 'AccountantForm',
|
|
153
154
|
HeadManagerForm = 'HeadManagerForm',
|
|
155
|
+
DeferredContract = 'DeferredContract',
|
|
154
156
|
}
|
|
155
157
|
|
|
156
158
|
export enum MemberCodes {
|