hl-core 0.0.8-beta.26 → 0.0.8-beta.27
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/components/Form/FormBlock.vue +4 -2
- package/components/Input/FormInput.vue +9 -5
- package/components/Menu/MenuNavItem.vue +5 -2
- package/components/Pages/Auth.vue +3 -1
- package/components/Pages/MemberForm.vue +9 -4
- package/components/Pages/ProductConditions.vue +2 -1
- package/components/Utilities/Chip.vue +28 -0
- package/composables/classes.ts +5 -2
- package/composables/index.ts +2 -1
- package/locales/en.json +10 -9
- package/locales/kz.json +10 -9
- package/locales/ru.json +11 -10
- package/package.json +4 -2
- package/plugins/helperFunctionsPlugins.ts +1 -0
- package/store/data.store.js +106 -88
- package/store/member.store.ts +11 -5
- package/types/index.ts +5 -0
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<div class="flex justify-between mr-5">
|
|
5
5
|
<p :class="[$libStyles.textTitle, $libStyles.greenText]">{{ title }}</p>
|
|
6
6
|
<div
|
|
7
|
-
v-if="isMultiple && more && !isShort"
|
|
7
|
+
v-if="isMultiple && more && !isShort && isActionsAvailable"
|
|
8
8
|
:class="[$libStyles.blueBg, $libStyles.whiteText, $libStyles.textSimple, disabled ? $libStyles.disabled : 'cursor-pointer']"
|
|
9
9
|
class="hidden lg:flex transition-all rounded-lg h-[36px] flex items-center font-medium justify-center opacity-50 hover:opacity-90 w-[120px]"
|
|
10
10
|
@click="!disabled && memberStore.addMember(whichForm)"
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
</div>
|
|
70
70
|
</div>
|
|
71
71
|
<div
|
|
72
|
-
v-if="isMultiple && more && !isShort"
|
|
72
|
+
v-if="isMultiple && more && !isShort && isActionsAvailable"
|
|
73
73
|
:class="[$libStyles.blueBg, $libStyles.whiteText, $libStyles.textSimple, disabled ? $libStyles.disabled : 'cursor-pointer']"
|
|
74
74
|
class="block lg:hidden transition-all rounded-b-lg h-[36px] flex items-center font-medium justify-center opacity-50 hover:opacity-90"
|
|
75
75
|
@click="!disabled && memberStore.addMember(whichForm)"
|
|
@@ -119,6 +119,7 @@ export default defineComponent({
|
|
|
119
119
|
const member: Member = formStore[props.whichForm as MemberKeys];
|
|
120
120
|
|
|
121
121
|
const isShort = computed(() => props.type === 'short');
|
|
122
|
+
const isActionsAvailable = computed(() => memberStore.isStatementEditible(props.whichForm) && memberStore.validateInitiator(false));
|
|
122
123
|
|
|
123
124
|
const getMemberInfo = (memberData: Member) => {
|
|
124
125
|
return {
|
|
@@ -140,6 +141,7 @@ export default defineComponent({
|
|
|
140
141
|
|
|
141
142
|
// Computed
|
|
142
143
|
isShort,
|
|
144
|
+
isActionsAvailable,
|
|
143
145
|
|
|
144
146
|
// Functions
|
|
145
147
|
getMemberInfo,
|
|
@@ -31,11 +31,16 @@
|
|
|
31
31
|
>
|
|
32
32
|
<template v-if="appendInnerIcon && appendInnerIcon.length" v-slot:append-inner>
|
|
33
33
|
<v-icon
|
|
34
|
-
v-if="appendInnerIcon
|
|
34
|
+
v-if="appendInnerIcon.includes('mdi-calendar-blank-outline') === false"
|
|
35
35
|
:icon="appendInnerIcon"
|
|
36
36
|
@click="appendInnerIcon.includes('mdi-magnify') ? $emit('append') : !props.readonly && $emit('append')"
|
|
37
37
|
></v-icon>
|
|
38
|
-
<base-datepicker
|
|
38
|
+
<base-datepicker
|
|
39
|
+
v-if="appendInnerIcon.includes('mdi-calendar-blank-outline') && !props.readonly"
|
|
40
|
+
:model-value="modelValue"
|
|
41
|
+
@update:modelValue="$emit('update:modelValue', $event)"
|
|
42
|
+
:teleport="teleport"
|
|
43
|
+
></base-datepicker>
|
|
39
44
|
</template>
|
|
40
45
|
<template v-if="loading" #loader>
|
|
41
46
|
<v-progress-linear :active="loading" :color="color" absolute height="1" indeterminate></v-progress-linear>
|
|
@@ -148,9 +153,9 @@ export default defineComponent({
|
|
|
148
153
|
border: none !important;
|
|
149
154
|
outline: none !important;
|
|
150
155
|
}
|
|
151
|
-
.form-input input {
|
|
156
|
+
/* .form-input input {
|
|
152
157
|
padding-top: 30px;
|
|
153
|
-
}
|
|
158
|
+
} */
|
|
154
159
|
.form-input .v-field {
|
|
155
160
|
box-shadow: none;
|
|
156
161
|
font-size: 14px;
|
|
@@ -159,7 +164,6 @@ export default defineComponent({
|
|
|
159
164
|
top: 20px;
|
|
160
165
|
}
|
|
161
166
|
.form-input .v-field__append-inner {
|
|
162
|
-
padding-top: 18px;
|
|
163
167
|
padding-right: 6px;
|
|
164
168
|
}
|
|
165
169
|
.form-input .v-field__append-inner i {
|
|
@@ -7,10 +7,13 @@
|
|
|
7
7
|
$libStyles.textSimple,
|
|
8
8
|
disabled ? 'cursor-not-allowed opacity-50' : '',
|
|
9
9
|
]"
|
|
10
|
-
class="h-[60px] flex items-center justify-between hover:bg-[#A0B3D8] hover:!text-white pl-4 cursor-pointer transition-all"
|
|
10
|
+
class="h-[60px] flex items-center justify-between hover:bg-[#A0B3D8] hover:!text-white pl-4 cursor-pointer transition-all group"
|
|
11
11
|
>
|
|
12
12
|
<span>{{ menuItem.title }}</span>
|
|
13
|
-
<
|
|
13
|
+
<div class="flex items-center">
|
|
14
|
+
<i v-if="menuItem.icon" class="mdi text-xl pr-4" :class="[menuItem.icon]"></i>
|
|
15
|
+
<base-chip :chip="menuItem.chip"></base-chip>
|
|
16
|
+
</div>
|
|
14
17
|
<v-tooltip v-if="menuItem.description" activator="parent" location="bottom">{{ menuItem.description }}</v-tooltip>
|
|
15
18
|
</div>
|
|
16
19
|
</template>
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<section class="flex h-full" :class="$libStyles.blueBgLight">
|
|
3
|
+
<!-- @vue-ignore -->
|
|
3
4
|
<aside :class="{ '!hidden': !$display().lgAndUp.value }" class="w-full lg:w-1/4 bg-white flex flex-col justify-between border-r-2 relative px-8">
|
|
4
5
|
<img draggable="false" class="w-[50%] mt-8" src="~/assets/auth-logo.svg" />
|
|
5
6
|
<div class="self-center flex flex-col items-center justify-center base-auth">
|
|
@@ -16,6 +17,7 @@
|
|
|
16
17
|
<base-btn :text="$t('buttons.more')" :disabled="true" class="mb-28"></base-btn>
|
|
17
18
|
</aside>
|
|
18
19
|
<section v-if="isLogin" class="w-full lg:w-3/4 flex flex-col justify-center">
|
|
20
|
+
<!-- @vue-ignore -->
|
|
19
21
|
<img :class="{ '!block': !$display().lgAndUp.value }" draggable="false" class="hidden w-2/4 sm:w-1/3 mb-10 self-center" src="~/assets/auth-logo.svg" />
|
|
20
22
|
<div class="flex flex-col items-center mb-8 text-center">
|
|
21
23
|
<h1 class="text-[28px] font-medium mb-1">{{ $t('labels.welcomeHL') }}</h1>
|
|
@@ -158,7 +160,7 @@ export default defineComponent({
|
|
|
158
160
|
numAttempts.value++;
|
|
159
161
|
authLoading.value = false;
|
|
160
162
|
if (!!dataStore.user.id) {
|
|
161
|
-
router.push({ name: 'index' });
|
|
163
|
+
await router.push({ name: 'index' });
|
|
162
164
|
}
|
|
163
165
|
} else {
|
|
164
166
|
// TODO Reset password
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
v-model="member.phoneNumber"
|
|
7
7
|
:label="$t('form.phoneNumber')"
|
|
8
8
|
:maska="$maska.phone"
|
|
9
|
-
:readonly="isDisabled || isIinPhoneDisabled"
|
|
9
|
+
:readonly="!!isDisabled || !!isIinPhoneDisabled"
|
|
10
10
|
:clearable="!isDisabled"
|
|
11
11
|
:append-inner-icon="otpCondition ? 'mdi mdi-phone-message' : ''"
|
|
12
12
|
@append="openCustomPanel('otp')"
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
v-model="member.iin"
|
|
18
18
|
:label="$t('form.iin')"
|
|
19
19
|
:maska="$maska.iin"
|
|
20
|
-
:readonly="isDisabled || isIinPhoneDisabled"
|
|
20
|
+
:readonly="!!isDisabled || !!isIinPhoneDisabled"
|
|
21
21
|
:clearable="!isDisabled"
|
|
22
22
|
:append-inner-icon="showSaveButton ? 'mdi mdi-magnify' : ''"
|
|
23
23
|
@append="searchMember"
|
|
@@ -689,7 +689,7 @@ export default {
|
|
|
689
689
|
const searchMember = async () => {
|
|
690
690
|
if (!isDisabled.value) {
|
|
691
691
|
dataStore.panelAction = null;
|
|
692
|
-
dataStore.panel.title = 'Поиск
|
|
692
|
+
dataStore.panel.title = 'Поиск контрагента';
|
|
693
693
|
dataStore.panel.open = true;
|
|
694
694
|
isSearchOpen.value = true;
|
|
695
695
|
isDocumentOpen.value = false;
|
|
@@ -1019,6 +1019,7 @@ export default {
|
|
|
1019
1019
|
if (typeof member.value.id !== 'number' || (typeof member.value.id === 'number' && member.value.id > 0 === false)) {
|
|
1020
1020
|
return false;
|
|
1021
1021
|
}
|
|
1022
|
+
const wasInsuredAction = ref<boolean>(false);
|
|
1022
1023
|
const isSaved = await dataStore.saveMember(member.value, memberStore.getMemberCode(whichForm.value as MemberKeys), memberFromApplicaiton);
|
|
1023
1024
|
if (!isSaved) return false;
|
|
1024
1025
|
if (whichForm.value === formStore.policyholderFormKey) {
|
|
@@ -1030,13 +1031,17 @@ export default {
|
|
|
1030
1031
|
memberStore.getMemberFromApplication(formStore.insuredFormKey as MemberKeys, formStore.insuredFormIndex),
|
|
1031
1032
|
);
|
|
1032
1033
|
if (!isInsuredSaved) return false;
|
|
1034
|
+
wasInsuredAction.value = true;
|
|
1033
1035
|
}
|
|
1034
1036
|
}
|
|
1037
|
+
if (whichForm.value === formStore.insuredFormKey) {
|
|
1038
|
+
wasInsuredAction.value = true;
|
|
1039
|
+
}
|
|
1035
1040
|
await router.replace({
|
|
1036
1041
|
name: route.name!,
|
|
1037
1042
|
query: { ...route.query, id: member.value.id },
|
|
1038
1043
|
});
|
|
1039
|
-
await dataStore.getApplicationData(route.params.taskId, false, false, true,
|
|
1044
|
+
await dataStore.getApplicationData(route.params.taskId, false, false, true, wasInsuredAction.value);
|
|
1040
1045
|
if (dataStore.controls.hasCalculator) {
|
|
1041
1046
|
if (formStore.additionalInsuranceTermsWithout && formStore.additionalInsuranceTermsWithout.length !== 0) {
|
|
1042
1047
|
formStore.additionalInsuranceTerms.forEach((term: any) => {
|
|
@@ -670,6 +670,7 @@ export default defineComponent({
|
|
|
670
670
|
}
|
|
671
671
|
isCalculating.value = true;
|
|
672
672
|
if (props.isRecalculation) {
|
|
673
|
+
//@ts-ignore
|
|
673
674
|
await dataStore.calculateWithoutApplication(true, whichProduct.value);
|
|
674
675
|
additionalTerms.value = formStore.additionalInsuranceTermsWithout;
|
|
675
676
|
} else {
|
|
@@ -735,7 +736,7 @@ export default defineComponent({
|
|
|
735
736
|
whichSum.value = 'requestedSumInsured';
|
|
736
737
|
}
|
|
737
738
|
if (dataStore.isCalculator) {
|
|
738
|
-
dataStore.processCode = constants.products[whichProduct.value];
|
|
739
|
+
dataStore.processCode = constants.products[whichProduct.value as keyof typeof constants.products];
|
|
739
740
|
await dataStore.getProcessPaymentPeriod();
|
|
740
741
|
}
|
|
741
742
|
if (whichProduct.value === 'halykkazyna') {
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<label v-if="chip && chip.title" class="transition-all leading-6 px-3 py-1 rounded-pill border-[1px] border-white mr-4 whitespace-nowrap" :class="[textSize, color]"
|
|
3
|
+
>{{ chip.title }}<v-tooltip v-if="chip.description" activator="parent" location="bottom" :max-width="maxWidth">{{ chip.description }}</v-tooltip></label
|
|
4
|
+
>
|
|
5
|
+
</template>
|
|
6
|
+
|
|
7
|
+
<script lang="ts">
|
|
8
|
+
export default defineComponent({
|
|
9
|
+
props: {
|
|
10
|
+
chip: {
|
|
11
|
+
type: Object as PropType<ChipComponent>,
|
|
12
|
+
required: true,
|
|
13
|
+
},
|
|
14
|
+
color: {
|
|
15
|
+
type: String,
|
|
16
|
+
default: 'bg-[#A0B3D8] text-white group-hover:bg-white group-hover:!text-black',
|
|
17
|
+
},
|
|
18
|
+
textSize: {
|
|
19
|
+
type: String,
|
|
20
|
+
default: '!text-[11px]',
|
|
21
|
+
},
|
|
22
|
+
maxWidth: {
|
|
23
|
+
type: [String, Number],
|
|
24
|
+
default: 230,
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
</script>
|
package/composables/classes.ts
CHANGED
|
@@ -16,6 +16,7 @@ class MenuItemConfig {
|
|
|
16
16
|
disabled?: ComputedRef;
|
|
17
17
|
color?: string;
|
|
18
18
|
show?: ComputedRef;
|
|
19
|
+
chip?: ChipComponent;
|
|
19
20
|
|
|
20
21
|
constructor(
|
|
21
22
|
id: any = null,
|
|
@@ -30,6 +31,7 @@ class MenuItemConfig {
|
|
|
30
31
|
disabled?: ComputedRef,
|
|
31
32
|
color?: string,
|
|
32
33
|
show?: ComputedRef,
|
|
34
|
+
chip?: ChipComponent,
|
|
33
35
|
) {
|
|
34
36
|
this.id = id;
|
|
35
37
|
this.title = title;
|
|
@@ -43,12 +45,13 @@ class MenuItemConfig {
|
|
|
43
45
|
this.disabled = disabled;
|
|
44
46
|
this.color = color;
|
|
45
47
|
this.show = show;
|
|
48
|
+
this.chip = chip;
|
|
46
49
|
}
|
|
47
50
|
}
|
|
48
51
|
|
|
49
52
|
export class MenuItem extends MenuItemConfig {
|
|
50
|
-
constructor({ id, title, link, hasLine, description, url, initial, icon, action, disabled, color, show }: MenuItemConfig = new MenuItemConfig()) {
|
|
51
|
-
super(id, title, link, hasLine, description, url, initial, icon, action, disabled, color, show);
|
|
53
|
+
constructor({ id, title, link, hasLine, description, url, initial, icon, action, disabled, color, show, chip }: MenuItemConfig = new MenuItemConfig()) {
|
|
54
|
+
super(id, title, link, hasLine, description, url, initial, icon, action, disabled, color, show, chip);
|
|
52
55
|
}
|
|
53
56
|
}
|
|
54
57
|
|
package/composables/index.ts
CHANGED
|
@@ -141,10 +141,11 @@ export const parseXML = (xml: boolean | string = true, withTag = false, tag: str
|
|
|
141
141
|
};
|
|
142
142
|
|
|
143
143
|
export const ESBDMessage = (ESBDObject: any, initialPoint: any) => {
|
|
144
|
+
return ESBDObject.errorMsg;
|
|
144
145
|
let result;
|
|
145
146
|
if (ESBDObject.errorCode === 2) {
|
|
146
147
|
if (ESBDObject.errorMsg.indexOf('EMSG') === -1) {
|
|
147
|
-
result = '
|
|
148
|
+
result = 'Контрагент не является резидентом РК!';
|
|
148
149
|
} else {
|
|
149
150
|
result = ESBDObject.errorMsg.substring(ESBDObject.errorMsg.indexOf('EMSG') + 6, ESBDObject.errorMsg.lastIndexOf('EWS-100')).replace(initialPoint, '');
|
|
150
151
|
}
|
package/locales/en.json
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"toaster": {
|
|
24
24
|
"noIinOrPhone": "Missing data to send SMS",
|
|
25
25
|
"ESBDErrorMessage": "Incorrect data entered for this IIN",
|
|
26
|
-
"phoneNotFoundInBMG": "Enter a number registered in BMG or register the
|
|
26
|
+
"phoneNotFoundInBMG": "Enter a number registered in BMG or register the contragent in BMG",
|
|
27
27
|
"errorSumOrPercentage": "The percentage of payout amount cannot be less than or greater than 100",
|
|
28
28
|
"fileWasDeleted": "File successfully deleted",
|
|
29
29
|
"attachManagerError": "Attach the request to the manager",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"fillOneFieldError": "You need to fill in at least one of the {text} fields",
|
|
56
56
|
"notSavedMember": "You need to save the current {text} data",
|
|
57
57
|
"copied": "Copied",
|
|
58
|
-
"clientNotFound": "
|
|
58
|
+
"clientNotFound": "Contragent with this IIN not found",
|
|
59
59
|
"needCalculate": "You need to calculate the insurance premium",
|
|
60
60
|
"incorrectInput": "The value entered is incorrect",
|
|
61
61
|
"error": "An error occurred",
|
|
@@ -74,15 +74,15 @@
|
|
|
74
74
|
"reloadEverySeconds": "Refresh can be done every {text} seconds",
|
|
75
75
|
"successReload": "Refreshed",
|
|
76
76
|
"sendEverySeconds": "SMS can be sent every {text} seconds",
|
|
77
|
-
"waitForClient": "Awaiting
|
|
77
|
+
"waitForClient": "Awaiting contragent confirmation",
|
|
78
78
|
"noSuchProduct": "Error when navigating: incorrect link",
|
|
79
79
|
"affiliationDocumentNotUploaded": "File not attached in the underwriting board decision",
|
|
80
80
|
"documentNumberWasNotFilled": "Document number and date were not filled",
|
|
81
81
|
"valueShouldBeHigher": "The value should be higher than {text} percent",
|
|
82
82
|
"valueShouldBeBetween": "The value should be between {floor} and {ceil} percent",
|
|
83
|
-
"needAgreement": "You need to obtain
|
|
83
|
+
"needAgreement": "You need to obtain contragent's consent",
|
|
84
84
|
"successOtp": "Confirmation code sent successfully",
|
|
85
|
-
"hasSuccessOtp": "
|
|
85
|
+
"hasSuccessOtp": "Contragent has already provided consent",
|
|
86
86
|
"tokenExpire": "Waiting time has expired",
|
|
87
87
|
"requiredBeneficiary": "You need to specify beneficiary's data",
|
|
88
88
|
"requiredInsured": "You need to specify insured person's data",
|
|
@@ -221,20 +221,20 @@
|
|
|
221
221
|
"isMemberIPDL": "Indication of belonging to and/or connections to a public official, their spouse, and close relatives?",
|
|
222
222
|
"isPolicyholderBeneficiary": "Is the policyholder also the beneficiary?",
|
|
223
223
|
"hasRepresentative": "Is the contract signed by a representative?",
|
|
224
|
-
"isActOwnBehalf": "Is the
|
|
224
|
+
"isActOwnBehalf": "Is the contragent acting on their own behalf and in their own interests?",
|
|
225
225
|
"coverPeriod": "Coverage Period",
|
|
226
226
|
"requestedSumInsured": "Requested Sum Insured",
|
|
227
227
|
"insurancePremiumPerMonth": "Insurance Premium per Month",
|
|
228
228
|
"noStatementCalculator": "Cost calculator without entering data",
|
|
229
229
|
"calculator": "Calculator",
|
|
230
230
|
"agreement": "Agreement",
|
|
231
|
-
"clientsStatement": "
|
|
231
|
+
"clientsStatement": "Contragent's Statement",
|
|
232
232
|
"document": "Document",
|
|
233
233
|
"documents": "Documents",
|
|
234
234
|
"invoiceData": "Payment info",
|
|
235
235
|
"statementAndSurvey": "Statement and Questionnaire",
|
|
236
236
|
"underwriterDecisionDocument": "",
|
|
237
|
-
"clientsCard": "
|
|
237
|
+
"clientsCard": "Contragent Card",
|
|
238
238
|
"insuranceProduct": "Insurance Product",
|
|
239
239
|
"historyStatementsAndStatuses": "Application History and Statuses",
|
|
240
240
|
"applicationNumber": "Application Number: ",
|
|
@@ -282,6 +282,7 @@
|
|
|
282
282
|
"number": "Application Number",
|
|
283
283
|
"iin": "IIN",
|
|
284
284
|
"client": "Client",
|
|
285
|
+
"contragent": "Contrangent",
|
|
285
286
|
"product": "Product",
|
|
286
287
|
"status": "Application Status",
|
|
287
288
|
"assignee": "Assignee",
|
|
@@ -463,7 +464,7 @@
|
|
|
463
464
|
"numbers": "Field should contain only numbers",
|
|
464
465
|
"numbersSymbols": "Field should contain numbers",
|
|
465
466
|
"ageExceeds": "Year cannot exceed 50 years",
|
|
466
|
-
"age18": "
|
|
467
|
+
"age18": "Contragent should be adult",
|
|
467
468
|
"sums": "Field should contain only numbers",
|
|
468
469
|
"iinRight": "IIN must consist of 12 digits",
|
|
469
470
|
"onlySymbols": "Field should not contain numbers",
|
package/locales/kz.json
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"toaster": {
|
|
24
24
|
"noIinOrPhone": "SMS жіберу үшін дереккөз мәліметтер жоқ",
|
|
25
25
|
"ESBDErrorMessage": "Бұл ЖСН бойынша дұрыс мәліметтер енгізілмеді",
|
|
26
|
-
"phoneNotFoundInBMG": "БМГ-де тіркелген нөмірді енгізіңіз немесе
|
|
26
|
+
"phoneNotFoundInBMG": "БМГ-де тіркелген нөмірді енгізіңіз немесе контрагентті БМГ-де тіркеу",
|
|
27
27
|
"errorSumOrPercentage": "Төлемдің пайызы 100-ден аз немесе асушыдан көп болмауы керек",
|
|
28
28
|
"fileWasDeleted": "Файл сәтті өшірілді",
|
|
29
29
|
"attachManagerError": "Менеджерге өтініші байланыстырыңыз",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"fillOneFieldError": "{text} деректерін бірін толтыру қажет",
|
|
56
56
|
"notSavedMember": "{text} мәліметтерін сақтау қажет",
|
|
57
57
|
"copied": "Көшірілді",
|
|
58
|
-
"clientNotFound": "Бұл ЖСН-ге қойылатын
|
|
58
|
+
"clientNotFound": "Бұл ЖСН-ге қойылатын контрагент табылмады",
|
|
59
59
|
"needCalculate": "Сақтандыру сыйлықақысысын қайта есептеу қажет",
|
|
60
60
|
"incorrectInput": "Енгізілген мән дұрыс емес",
|
|
61
61
|
"error": "Қате пайда болды",
|
|
@@ -74,15 +74,15 @@
|
|
|
74
74
|
"reloadEverySeconds": "Көшірме еткілеу үшін {text} секунд күту мүмкін",
|
|
75
75
|
"successReload": "Жаңартылды",
|
|
76
76
|
"sendEverySeconds": "SMS жіберу үшін {text} секунд күту мүмкін",
|
|
77
|
-
"waitForClient": "
|
|
77
|
+
"waitForClient": "Контрагенттің растауын күтіңіз",
|
|
78
78
|
"noSuchProduct": "Жолды өту кезінде қате: дұрыссыз сілтеме",
|
|
79
79
|
"affiliationDocumentNotUploaded": "Төлем туралы кеңес сізбен бірге берілген файл жоқ",
|
|
80
80
|
"documentNumberWasNotFilled": "Документ нөмірі және күні толтырылмаған",
|
|
81
81
|
"valueShouldBeHigher": "Мән {text} пайыздан асуы керек",
|
|
82
82
|
"valueShouldBeBetween": "Мән {floor} және {ceil} пайыз аралығында болуы керек",
|
|
83
|
-
"needAgreement": "Мүмкіндікті
|
|
83
|
+
"needAgreement": "Мүмкіндікті контрагентпен келісу керек",
|
|
84
84
|
"successOtp": "Растау коды сәтті жіберілді",
|
|
85
|
-
"hasSuccessOtp": "
|
|
85
|
+
"hasSuccessOtp": "Контрагенттің келісімі бар",
|
|
86
86
|
"tokenExpire": "Күту уақыты аяқталды",
|
|
87
87
|
"requiredBeneficiary": "Бенефициар деректері керек",
|
|
88
88
|
"requiredInsured": "Зақыпталу қажет",
|
|
@@ -221,20 +221,20 @@
|
|
|
221
221
|
"isMemberIPDL": "Социальдық тұлғалар мен олардың отбасының арасындағы өзара байланыстықты және байланысты екендігі туралы белгіленіш болатыны",
|
|
222
222
|
"isPolicyholderBeneficiary": "Сақтанушы азаматтарға арналғаны екенін ма?",
|
|
223
223
|
"hasRepresentative": "Шарттың имзаға алушысы - представитель екеніні білдіреді ме?",
|
|
224
|
-
"isActOwnBehalf": "
|
|
224
|
+
"isActOwnBehalf": "Контрагент өзінің атымен және өз мүлкіншілігімен өзі жасайды ма?",
|
|
225
225
|
"coverPeriod": "Мөлшер",
|
|
226
226
|
"requestedSumInsured": "Сұраулы сақталған сомасы",
|
|
227
227
|
"insurancePremiumPerMonth": "Айына шығыру",
|
|
228
228
|
"noStatementCalculator": "Деректерді енгізбей калғанда бағасыны таңдамау калькуляторы",
|
|
229
229
|
"calculator": "Калькулятор",
|
|
230
230
|
"agreement": "Келісім",
|
|
231
|
-
"clientsStatement": "
|
|
231
|
+
"clientsStatement": "Контрагенттің заявы",
|
|
232
232
|
"document": "Деректер",
|
|
233
233
|
"documents": "Деректер",
|
|
234
234
|
"invoiceData": "Төлем туралы ақпарат",
|
|
235
235
|
"statementAndSurvey": "Заявление және сауалнама",
|
|
236
236
|
"underwriterDecisionDocument": "",
|
|
237
|
-
"clientsCard": "
|
|
237
|
+
"clientsCard": "Контрагенттің картасы",
|
|
238
238
|
"insuranceProduct": "Страховой продукт",
|
|
239
239
|
"historyStatementsAndStatuses": "Тарихи заявкалар және статустар",
|
|
240
240
|
"applicationNumber": "Өтініш нөмірі: ",
|
|
@@ -282,6 +282,7 @@
|
|
|
282
282
|
"number": "Өтінім нөмірі",
|
|
283
283
|
"iin": "ЖСН",
|
|
284
284
|
"client": "Клиент",
|
|
285
|
+
"contragent": "Контрагент",
|
|
285
286
|
"product": "Өнім",
|
|
286
287
|
"status": "Өтінім статусы",
|
|
287
288
|
"assignee": "Орындаушы",
|
|
@@ -463,7 +464,7 @@
|
|
|
463
464
|
"numbers": "Тек сандарды енгізіңіз",
|
|
464
465
|
"numbersSymbols": "Сандарды енгізіңіз",
|
|
465
466
|
"ageExceeds": "Жылдың 50-ден асапауы керек",
|
|
466
|
-
"age18": "
|
|
467
|
+
"age18": "Контрагент 18 жас болуы керек",
|
|
467
468
|
"sums": "Тек сандарды енгізіңіз",
|
|
468
469
|
"iinRight": "ЖСН/БИН 12 сандан тұруы керек",
|
|
469
470
|
"onlySymbols": "Өрісте сан болмауы керек",
|
package/locales/ru.json
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"toaster": {
|
|
24
24
|
"noIinOrPhone": "Отсутствуют данные для отправки СМС",
|
|
25
25
|
"ESBDErrorMessage": "Введены не корректные данные по этому ИИН",
|
|
26
|
-
"phoneNotFoundInBMG": "Введите номер зарегистрированный в БМГ или зарегистрируйте
|
|
26
|
+
"phoneNotFoundInBMG": "Введите номер зарегистрированный в БМГ или зарегистрируйте контрагента в БМГ",
|
|
27
27
|
"errorSumOrPercentage": "Процент от суммы выплат не может быть меньше или больше 100",
|
|
28
28
|
"fileWasDeleted": "Файл успешно удален",
|
|
29
29
|
"attachManagerError": "Прикрепите заявку менеджеру",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"fillOneFieldError": "Нужно заполнить одно из полей {text}",
|
|
56
56
|
"notSavedMember": "Нужно сохранить актуальные данные {text}",
|
|
57
57
|
"copied": "Скопировано",
|
|
58
|
-
"clientNotFound": "
|
|
58
|
+
"clientNotFound": "Контрагент с таким ИИН не обнаружен",
|
|
59
59
|
"needCalculate": "Нужно рассчитать страховую премию",
|
|
60
60
|
"incorrectInput": "Значение введено некорректно",
|
|
61
61
|
"error": "Произошла ошибка ",
|
|
@@ -74,15 +74,15 @@
|
|
|
74
74
|
"reloadEverySeconds": "Обновление можно делать каждые {text} секунд",
|
|
75
75
|
"successReload": "Обновлено",
|
|
76
76
|
"sendEverySeconds": "СМС можно отправлять каждые {text} секунд ",
|
|
77
|
-
"waitForClient": "Ожидайте подтверждения
|
|
77
|
+
"waitForClient": "Ожидайте подтверждения контрагента",
|
|
78
78
|
"noSuchProduct": "Ошибка при переходе: неправильная ссылка",
|
|
79
79
|
"affiliationDocumentNotUploaded": "Не прикреплен файл в решении андеррайтингового совета",
|
|
80
80
|
"documentNumberWasNotFilled": "Номер документа и дата не были заполнены",
|
|
81
81
|
"valueShouldBeHigher": "Значение должно быть больше {text} процентов",
|
|
82
82
|
"valueShouldBeBetween": "Значение должно быть в промежутке от {floor} до {ceil} процентов",
|
|
83
|
-
"needAgreement": "Нужно получить согласие
|
|
83
|
+
"needAgreement": "Нужно получить согласие контрагента",
|
|
84
84
|
"successOtp": "Код подтверждения отправлен успешно",
|
|
85
|
-
"hasSuccessOtp": "По
|
|
85
|
+
"hasSuccessOtp": "По контрагенту уже имеется согласие",
|
|
86
86
|
"tokenExpire": "Истекло время ожидания",
|
|
87
87
|
"requiredBeneficiary": "Необходимо указать данные выгодоприобретателя",
|
|
88
88
|
"requiredInsured": "Необходимо указать данные застрахованного",
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
"fromGBDFL": "Государственная база данных физических лиц",
|
|
143
143
|
"fromGKB": "Государственное кредитное бюро",
|
|
144
144
|
"sendSMS": "Отправить СМС",
|
|
145
|
-
"sendOtp": "Отправить
|
|
145
|
+
"sendOtp": "Отправить код подтверждения",
|
|
146
146
|
"check": "Проверить",
|
|
147
147
|
"toPayment": "Перейти к оплате",
|
|
148
148
|
"calcSum": "Рассчитать сумму",
|
|
@@ -221,20 +221,20 @@
|
|
|
221
221
|
"isMemberIPDL": "Отметка о принадлежности и/или причастности к публичному должностному лицу, его супруге (супругу) и близким родственникам?",
|
|
222
222
|
"isPolicyholderBeneficiary": "Является ли страхователь выгодоприобретателем?",
|
|
223
223
|
"hasRepresentative": "Подписантом договора выступает представитель? ",
|
|
224
|
-
"isActOwnBehalf": "
|
|
224
|
+
"isActOwnBehalf": " Контрагент действует от своего имени и в своих интересах?",
|
|
225
225
|
"coverPeriod": "Срок",
|
|
226
226
|
"requestedSumInsured": "Запрашиваемая сумма",
|
|
227
227
|
"insurancePremiumPerMonth": "Премия в месяц",
|
|
228
228
|
"noStatementCalculator": "Калькулятор стоимости без ввода данных",
|
|
229
229
|
"calculator": "Калькулятор",
|
|
230
230
|
"agreement": "Согласие",
|
|
231
|
-
"clientsStatement": "Заявление
|
|
231
|
+
"clientsStatement": "Заявление контрагента",
|
|
232
232
|
"document": "Документ",
|
|
233
233
|
"documents": "Документы",
|
|
234
234
|
"invoiceData": "Данные об оплате",
|
|
235
235
|
"statementAndSurvey": "Заявление и анкета",
|
|
236
236
|
"underwriterDecisionDocument": "",
|
|
237
|
-
"clientsCard": "Карта
|
|
237
|
+
"clientsCard": "Карта контрагента",
|
|
238
238
|
"insuranceProduct": "Страховой продукт",
|
|
239
239
|
"historyStatementsAndStatuses": "История заявок и статусы",
|
|
240
240
|
"applicationNumber": "Номер заявки: ",
|
|
@@ -282,6 +282,7 @@
|
|
|
282
282
|
"number": "Номер заявки",
|
|
283
283
|
"iin": "ИИН",
|
|
284
284
|
"client": "Клиент",
|
|
285
|
+
"contragent": "Контрагент",
|
|
285
286
|
"product": "Продукт",
|
|
286
287
|
"status": "Статус заявки",
|
|
287
288
|
"assignee": "Исполнитель",
|
|
@@ -463,7 +464,7 @@
|
|
|
463
464
|
"numbers": "Поле должно содержать только цифры",
|
|
464
465
|
"numbersSymbols": "Поле должно содержать цифры",
|
|
465
466
|
"ageExceeds": "Год не может превышать больше 50 лет",
|
|
466
|
-
"age18": "
|
|
467
|
+
"age18": "Контрагент должен быть совершеннолетним",
|
|
467
468
|
"sums": "Поле должно содержать только цифры",
|
|
468
469
|
"iinRight": "ИИН/БИН должен состоять из 12 цифр",
|
|
469
470
|
"onlySymbols": "Поле не должно содержать число",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hl-core",
|
|
3
|
-
"version": "0.0.8-beta.
|
|
3
|
+
"version": "0.0.8-beta.27",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"private": false,
|
|
6
6
|
"main": "nuxt.config.ts",
|
|
@@ -44,11 +44,13 @@
|
|
|
44
44
|
"jwt-decode": "^3.1.2",
|
|
45
45
|
"maska": "1.5.0",
|
|
46
46
|
"pinia": "^2.1.4",
|
|
47
|
+
"typedoc": "^0.24.8",
|
|
48
|
+
"typescript": "5.0.4",
|
|
47
49
|
"v-idle-3": "^0.3.14",
|
|
48
50
|
"vue-i18n": "^9.2.2",
|
|
49
51
|
"vue-json-pretty": "^2.2.4",
|
|
50
52
|
"vue-toastification": "^2.0.0-rc.5",
|
|
51
53
|
"vue-uuid": "^3.0.0",
|
|
52
|
-
"vuetify": "^3.3.
|
|
54
|
+
"vuetify": "^3.3.6"
|
|
53
55
|
}
|
|
54
56
|
}
|
package/store/data.store.js
CHANGED
|
@@ -828,12 +828,15 @@ export const useDataStore = defineStore('data', {
|
|
|
828
828
|
if (
|
|
829
829
|
this.formStore.applicationData &&
|
|
830
830
|
this.formStore.applicationData.insuredApp &&
|
|
831
|
-
this.formStore.applicationData.insuredApp.length
|
|
832
|
-
this.formStore.applicationData.insuredApp.every(i => i.iin !== data.iin) &&
|
|
833
|
-
data.id !== null
|
|
831
|
+
this.formStore.applicationData.insuredApp.length
|
|
834
832
|
) {
|
|
835
|
-
await this.
|
|
836
|
-
|
|
833
|
+
await this.deleteInsuredLogic();
|
|
834
|
+
if(
|
|
835
|
+
this.formStore.applicationData.insuredApp.every(i => i.iin !== data.iin) &&
|
|
836
|
+
data.id !== null) {
|
|
837
|
+
await this.api.deleteMember('Insured', data.id);
|
|
838
|
+
delete data.id;
|
|
839
|
+
}
|
|
837
840
|
}
|
|
838
841
|
data.isDisability = this.formStore.isPolicyholderInsured ? false : member.isDisability.nameRu == 'Да';
|
|
839
842
|
data.disabilityGroupId = data.isDisability ? member.disabilityGroupId.id : null;
|
|
@@ -1331,6 +1334,83 @@ export const useDataStore = defineStore('data', {
|
|
|
1331
1334
|
}
|
|
1332
1335
|
return this.formStore.definedAnswersId[whichSurvey];
|
|
1333
1336
|
},
|
|
1337
|
+
getConditionsData() {
|
|
1338
|
+
const conditionsData = {
|
|
1339
|
+
policyAppDto: {
|
|
1340
|
+
id: this.formStore.applicationData.policyAppDto.id,
|
|
1341
|
+
processInstanceId: this.formStore.applicationData.policyAppDto.processInstanceId,
|
|
1342
|
+
policyId: null,
|
|
1343
|
+
policyNumber: null,
|
|
1344
|
+
contractDate: this.currentDate(),
|
|
1345
|
+
amount: this.formStore.productConditionsForm.requestedSumInsured != null ? Number(this.formStore.productConditionsForm.requestedSumInsured.replace(/\s/g, '')) : null,
|
|
1346
|
+
premium:
|
|
1347
|
+
this.formStore.productConditionsForm.insurancePremiumPerMonth != null ? Number(this.formStore.productConditionsForm.insurancePremiumPerMonth.replace(/\s/g, '')) : null,
|
|
1348
|
+
isSpokesman: this.formStore.hasRepresentative,
|
|
1349
|
+
coverPeriod: this.formStore.productConditionsForm.coverPeriod,
|
|
1350
|
+
payPeriod: this.formStore.productConditionsForm.coverPeriod,
|
|
1351
|
+
annualIncome: this.formStore.productConditionsForm.annualIncome ? Number(this.formStore.productConditionsForm.annualIncome.replace(/\s/g, '')) : null,
|
|
1352
|
+
indexRateId: this.formStore.productConditionsForm.processIndexRate?.id
|
|
1353
|
+
? this.formStore.productConditionsForm.processIndexRate.id
|
|
1354
|
+
: this.processIndexRate.find(i => i.code === '0')?.id,
|
|
1355
|
+
paymentPeriodId: this.formStore.productConditionsForm.paymentPeriod.id,
|
|
1356
|
+
lifeMultiply: formatProcents(this.formStore.productConditionsForm.lifeMultiply),
|
|
1357
|
+
lifeAdditive: formatProcents(this.formStore.productConditionsForm.lifeAdditive),
|
|
1358
|
+
adbMultiply: formatProcents(this.formStore.productConditionsForm.adbMultiply),
|
|
1359
|
+
adbAdditive: formatProcents(this.formStore.productConditionsForm.adbAdditive),
|
|
1360
|
+
disabilityMultiply: formatProcents(this.formStore.productConditionsForm.disabilityMultiply),
|
|
1361
|
+
disabilityAdditive: formatProcents(this.formStore.productConditionsForm.adbAdditive),
|
|
1362
|
+
riskGroup: this.formStore.productConditionsForm.riskGroup?.id ? this.formStore.productConditionsForm.riskGroup.id : 1,
|
|
1363
|
+
},
|
|
1364
|
+
addCoversDto: this.formStore.additionalInsuranceTerms,
|
|
1365
|
+
};
|
|
1366
|
+
if (this.isKazyna) {
|
|
1367
|
+
conditionsData.policyAppDto.premiumInCurrency = getNumber(this.formStore.productConditionsForm.insurancePremiumPerMonthInDollar);
|
|
1368
|
+
conditionsData.policyAppDto.amountInCurrency = getNumber(this.formStore.productConditionsForm.requestedSumInsuredInDollar);
|
|
1369
|
+
conditionsData.policyAppDto.currencyExchangeRate = this.currencies.usd;
|
|
1370
|
+
}
|
|
1371
|
+
if (this.isLiferenta) {
|
|
1372
|
+
conditionsData.policyAppDto.guaranteedPaymentPeriod = this.formStore.productConditionsForm.guaranteedPeriod || 0;
|
|
1373
|
+
conditionsData.policyAppDto.annuityTypeId = this.formStore.productConditionsForm.typeAnnuityInsurance.id;
|
|
1374
|
+
conditionsData.policyAppDto.paymentPeriod = this.formStore.productConditionsForm.termAnnuityPayments;
|
|
1375
|
+
conditionsData.policyAppDto.annuityPaymentPeriodId = this.formStore.productConditionsForm.periodAnnuityPayment.id;
|
|
1376
|
+
}
|
|
1377
|
+
return conditionsData;
|
|
1378
|
+
},
|
|
1379
|
+
async clearAddCovers(coverCode, coverValue) {
|
|
1380
|
+
if (!coverCode || !coverValue) return;
|
|
1381
|
+
const termCoverIndex = applicationData.addCoversDto.findIndex(i => i.coverTypeCode === coverCode);
|
|
1382
|
+
if (termCoverIndex !== -1) {
|
|
1383
|
+
const answers = await this.getAdditionalInsuranceTermsAnswers(applicationData.addCoversDto[termCoverIndex].coverTypeId);
|
|
1384
|
+
if (answers.length) {
|
|
1385
|
+
const newCover = answers.find(i => i.code === coverValue);
|
|
1386
|
+
if (newCover) {
|
|
1387
|
+
applicationData.addCoversDto[termCoverIndex].coverSumId = newCover.id;
|
|
1388
|
+
applicationData.addCoversDto[termCoverIndex].coverSumName = newCover.nameRu;
|
|
1389
|
+
}
|
|
1390
|
+
}
|
|
1391
|
+
}
|
|
1392
|
+
},
|
|
1393
|
+
async deleteInsuredLogic() {
|
|
1394
|
+
const applicationData = this.getConditionsData();
|
|
1395
|
+
const clearCovers = [{ code: 10, value: 'excluded' }];
|
|
1396
|
+
await Promise.allSettled(
|
|
1397
|
+
clearCovers.map(async cover => {
|
|
1398
|
+
await this.clearAddCovers(cover.code, cover.value);
|
|
1399
|
+
}),
|
|
1400
|
+
);
|
|
1401
|
+
if (!!this.formStore.productConditionsForm.insurancePremiumPerMonth) {
|
|
1402
|
+
applicationData.policyAppDto.premium = null;
|
|
1403
|
+
}
|
|
1404
|
+
if (!!this.formStore.productConditionsForm.requestedSumInsured) {
|
|
1405
|
+
applicationData.policyAppDto.amount = null;
|
|
1406
|
+
}
|
|
1407
|
+
try {
|
|
1408
|
+
await this.api.setApplication(applicationData);
|
|
1409
|
+
this.showToaster('info', this.t('toaster.needToRecalculate'));
|
|
1410
|
+
} catch (err) {
|
|
1411
|
+
ErrorHandler(err);
|
|
1412
|
+
}
|
|
1413
|
+
},
|
|
1334
1414
|
async getPaymentTable(id) {
|
|
1335
1415
|
try {
|
|
1336
1416
|
const paymentResultTable = await this.api.calculatePremuim(id);
|
|
@@ -1407,80 +1487,29 @@ export const useDataStore = defineStore('data', {
|
|
|
1407
1487
|
async calculate(taskId) {
|
|
1408
1488
|
this.isLoading = true;
|
|
1409
1489
|
try {
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
amount: this.formStore.productConditionsForm.requestedSumInsured != null ? Number(this.formStore.productConditionsForm.requestedSumInsured.replace(/\s/g, '')) : null,
|
|
1418
|
-
premium:
|
|
1419
|
-
this.formStore.productConditionsForm.insurancePremiumPerMonth != null
|
|
1420
|
-
? Number(this.formStore.productConditionsForm.insurancePremiumPerMonth.replace(/\s/g, ''))
|
|
1421
|
-
: null,
|
|
1422
|
-
isSpokesman: this.formStore.hasRepresentative,
|
|
1423
|
-
coverPeriod: this.formStore.productConditionsForm.coverPeriod,
|
|
1424
|
-
payPeriod: this.formStore.productConditionsForm.coverPeriod,
|
|
1425
|
-
annualIncome: this.formStore.productConditionsForm.annualIncome ? Number(this.formStore.productConditionsForm.annualIncome.replace(/\s/g, '')) : null,
|
|
1426
|
-
indexRateId: this.formStore.productConditionsForm.processIndexRate?.id
|
|
1427
|
-
? this.formStore.productConditionsForm.processIndexRate.id
|
|
1428
|
-
: this.processIndexRate.find(i => i.code === '0')?.id,
|
|
1429
|
-
paymentPeriodId: this.formStore.productConditionsForm.paymentPeriod.id,
|
|
1430
|
-
lifeMultiply: formatProcents(this.formStore.productConditionsForm.lifeMultiply),
|
|
1431
|
-
lifeAdditive: formatProcents(this.formStore.productConditionsForm.lifeAdditive),
|
|
1432
|
-
adbMultiply: formatProcents(this.formStore.productConditionsForm.adbMultiply),
|
|
1433
|
-
adbAdditive: formatProcents(this.formStore.productConditionsForm.adbAdditive),
|
|
1434
|
-
disabilityMultiply: formatProcents(this.formStore.productConditionsForm.disabilityMultiply),
|
|
1435
|
-
disabilityAdditive: formatProcents(this.formStore.productConditionsForm.adbAdditive),
|
|
1436
|
-
riskGroup: this.formStore.productConditionsForm.riskGroup?.id ? this.formStore.productConditionsForm.riskGroup.id : 1,
|
|
1437
|
-
},
|
|
1438
|
-
addCoversDto: this.formStore.additionalInsuranceTerms,
|
|
1439
|
-
};
|
|
1490
|
+
const id = this.formStore.applicationData.processInstanceId;
|
|
1491
|
+
await this.api.setApplication(this.getConditionsData());
|
|
1492
|
+
const result = ref();
|
|
1493
|
+
result.value = await this.api.getCalculation(id);
|
|
1494
|
+
const applicationData = await this.api.getApplicationData(taskId);
|
|
1495
|
+
this.formStore.applicationData = applicationData;
|
|
1496
|
+
this.formStore.additionalInsuranceTerms = this.formStore.applicationData.addCoverDto;
|
|
1440
1497
|
if (this.isKazyna) {
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
form1.policyAppDto.currencyExchangeRate = this.currencies.usd;
|
|
1444
|
-
}
|
|
1445
|
-
if (this.isLiferenta) {
|
|
1446
|
-
form1.policyAppDto.guaranteedPaymentPeriod = this.formStore.productConditionsForm.guaranteedPeriod || 0;
|
|
1447
|
-
form1.policyAppDto.annuityTypeId = this.formStore.productConditionsForm.typeAnnuityInsurance.id;
|
|
1448
|
-
form1.policyAppDto.paymentPeriod = this.formStore.productConditionsForm.termAnnuityPayments;
|
|
1449
|
-
form1.policyAppDto.annuityPaymentPeriodId = this.formStore.productConditionsForm.periodAnnuityPayment.id;
|
|
1450
|
-
}
|
|
1451
|
-
try {
|
|
1452
|
-
let id = this.formStore.applicationData.processInstanceId;
|
|
1453
|
-
|
|
1454
|
-
await this.api.setApplication(form1);
|
|
1455
|
-
let result;
|
|
1456
|
-
try {
|
|
1457
|
-
result = await this.api.getCalculation(id);
|
|
1458
|
-
} catch (err) {
|
|
1459
|
-
ErrorHandler(err);
|
|
1460
|
-
}
|
|
1461
|
-
|
|
1462
|
-
const applicationData = await this.api.getApplicationData(taskId);
|
|
1463
|
-
this.formStore.applicationData = applicationData;
|
|
1464
|
-
this.formStore.additionalInsuranceTerms = this.formStore.applicationData.addCoverDto;
|
|
1465
|
-
if (this.isKazyna) {
|
|
1466
|
-
if (this.formStore.productConditionsForm.insurancePremiumPerMonthInDollar != null) {
|
|
1467
|
-
this.formStore.productConditionsForm.requestedSumInsuredInDollar = this.getNumberWithSpaces(result / this.currencies.usd);
|
|
1468
|
-
} else {
|
|
1469
|
-
this.formStore.productConditionsForm.insurancePremiumPerMonthInDollar = this.getNumberWithSpaces(result / this.currencies.usd);
|
|
1470
|
-
}
|
|
1471
|
-
}
|
|
1472
|
-
if (this.formStore.productConditionsForm.insurancePremiumPerMonth != null) {
|
|
1473
|
-
this.formStore.productConditionsForm.requestedSumInsured = this.getNumberWithSpaces(result);
|
|
1498
|
+
if (this.formStore.productConditionsForm.insurancePremiumPerMonthInDollar != null) {
|
|
1499
|
+
this.formStore.productConditionsForm.requestedSumInsuredInDollar = this.getNumberWithSpaces(result.value / this.currencies.usd);
|
|
1474
1500
|
} else {
|
|
1475
|
-
this.formStore.productConditionsForm.
|
|
1501
|
+
this.formStore.productConditionsForm.insurancePremiumPerMonthInDollar = this.getNumberWithSpaces(result.value / this.currencies.usd);
|
|
1476
1502
|
}
|
|
1477
|
-
if (this.isLiferenta) {
|
|
1478
|
-
this.formStore.productConditionsForm.amountAnnuityPayments = this.getNumberWithSpaces(applicationData.policyAppDto.annuityMonthPay);
|
|
1479
|
-
}
|
|
1480
|
-
this.showToaster('success', this.t('toaster.calculated'), 1000);
|
|
1481
|
-
} catch (err) {
|
|
1482
|
-
ErrorHandler(err);
|
|
1483
1503
|
}
|
|
1504
|
+
if (this.formStore.productConditionsForm.insurancePremiumPerMonth != null) {
|
|
1505
|
+
this.formStore.productConditionsForm.requestedSumInsured = this.getNumberWithSpaces(result.value);
|
|
1506
|
+
} else {
|
|
1507
|
+
this.formStore.productConditionsForm.insurancePremiumPerMonth = this.getNumberWithSpaces(result.value);
|
|
1508
|
+
}
|
|
1509
|
+
if (this.isLiferenta) {
|
|
1510
|
+
this.formStore.productConditionsForm.amountAnnuityPayments = this.getNumberWithSpaces(applicationData.policyAppDto.annuityMonthPay);
|
|
1511
|
+
}
|
|
1512
|
+
this.showToaster('success', this.t('toaster.calculated'), 1000);
|
|
1484
1513
|
} catch (err) {
|
|
1485
1514
|
ErrorHandler(err);
|
|
1486
1515
|
}
|
|
@@ -1727,13 +1756,6 @@ export const useDataStore = defineStore('data', {
|
|
|
1727
1756
|
ErrorHandler(err);
|
|
1728
1757
|
}
|
|
1729
1758
|
},
|
|
1730
|
-
async setApplication() {
|
|
1731
|
-
try {
|
|
1732
|
-
await this.api.setApplication(this.formStore.applicationData);
|
|
1733
|
-
} catch (err) {
|
|
1734
|
-
console.log(err);
|
|
1735
|
-
}
|
|
1736
|
-
},
|
|
1737
1759
|
async deleteTask(taskId) {
|
|
1738
1760
|
this.isLoading = true;
|
|
1739
1761
|
try {
|
|
@@ -1774,7 +1796,7 @@ export const useDataStore = defineStore('data', {
|
|
|
1774
1796
|
try {
|
|
1775
1797
|
this.isLoading = true;
|
|
1776
1798
|
await this.api.claimTask(this.formStore.applicationTaskId);
|
|
1777
|
-
await this.getApplicationData(taskId, false, false, false);
|
|
1799
|
+
await this.getApplicationData(taskId, false, false, false, false);
|
|
1778
1800
|
this.showToaster('success', this.t('toaster.successOperation'), 3000);
|
|
1779
1801
|
} catch (err) {
|
|
1780
1802
|
ErrorHandler(err);
|
|
@@ -1883,10 +1905,6 @@ export const useDataStore = defineStore('data', {
|
|
|
1883
1905
|
this.formStore[whichForm][index].jobPlace = this.formStore.applicationData[whichMember][index].jobName;
|
|
1884
1906
|
}
|
|
1885
1907
|
},
|
|
1886
|
-
findObject(from, key, searchKey) {
|
|
1887
|
-
const found = this[from].find(i => i[key] == searchKey);
|
|
1888
|
-
return found || new Value();
|
|
1889
|
-
},
|
|
1890
1908
|
async signDocument() {
|
|
1891
1909
|
try {
|
|
1892
1910
|
if (this.formStore.signUrls.length) {
|
|
@@ -1979,7 +1997,7 @@ export const useDataStore = defineStore('data', {
|
|
|
1979
1997
|
};
|
|
1980
1998
|
const recalculatedValue = await this.api.reCalculate(data);
|
|
1981
1999
|
if (!!recalculatedValue) {
|
|
1982
|
-
await this.getApplicationData(taskId, false, false, false);
|
|
2000
|
+
await this.getApplicationData(taskId, false, false, false, true);
|
|
1983
2001
|
this.showToaster(
|
|
1984
2002
|
'success',
|
|
1985
2003
|
`${this.t('toaster.successRecalculation')}. ${whichSum == 'insurancePremiumPerMonth' ? 'Страховая премия' : 'Страховая сумма'}: ${this.getNumberWithSpaces(
|
package/store/member.store.ts
CHANGED
|
@@ -162,10 +162,15 @@ export const useMemberStore = defineStore('members', {
|
|
|
162
162
|
await this.dataStore.api.deleteMember(memberCode, this.formStore.applicationData.processInstanceId);
|
|
163
163
|
}
|
|
164
164
|
} else {
|
|
165
|
-
if (memberData)
|
|
165
|
+
if (memberData) {
|
|
166
|
+
if (whichForm === this.formStore.insuredFormKey) {
|
|
167
|
+
await this.dataStore.deleteInsuredLogic();
|
|
168
|
+
}
|
|
169
|
+
await this.dataStore.api.deleteMember(memberCode, memberData.id as number);
|
|
170
|
+
}
|
|
166
171
|
}
|
|
167
172
|
const cleared = this.clearMember(whichForm, whichIndex);
|
|
168
|
-
if (memberData && refetch) await this.dataStore.getApplicationData(taskId, true, true, true,
|
|
173
|
+
if (memberData && refetch) await this.dataStore.getApplicationData(taskId, true, true, true, true);
|
|
169
174
|
return cleared;
|
|
170
175
|
} catch (err) {
|
|
171
176
|
console.log(err);
|
|
@@ -179,10 +184,11 @@ export const useMemberStore = defineStore('members', {
|
|
|
179
184
|
const successTranser = ref<boolean>(false);
|
|
180
185
|
const toIndex = ref<number | null>(null);
|
|
181
186
|
const taskId = useRoute().params.taskId as string;
|
|
187
|
+
const deletedBefore = ref<boolean>(false);
|
|
182
188
|
|
|
183
189
|
if (this.dataStore.members[this.getMemberApplicationCode(to)!].isMultiple === false) {
|
|
184
190
|
if (this.formStore[to][0].id !== 0 && this.formStore[to][0].iin !== fromMember.iin) {
|
|
185
|
-
await this.deleteMember(taskId, to, 0, false);
|
|
191
|
+
deletedBefore.value = await this.deleteMember(taskId, to, 0, false);
|
|
186
192
|
}
|
|
187
193
|
this.formStore[to][0] = fromMember;
|
|
188
194
|
toIndex.value = 0;
|
|
@@ -216,9 +222,9 @@ export const useMemberStore = defineStore('members', {
|
|
|
216
222
|
}
|
|
217
223
|
const hasSaved = await this.dataStore.saveMember(this.formStore[to][toIndex.value], this.getMemberCode(to), this.getMemberFromApplication(to, toIndex.value));
|
|
218
224
|
if (hasSaved) {
|
|
219
|
-
await this.dataStore.getApplicationData(taskId, false, true, true,
|
|
225
|
+
await this.dataStore.getApplicationData(taskId, false, true, true, deletedBefore.value);
|
|
226
|
+
this.dataStore.showToaster('warning', this.dataStore.t('toaster.formFieldEmptyWarning'));
|
|
220
227
|
this.dataStore.showToaster('success', this.dataStore.t('toaster.successSaved'));
|
|
221
|
-
this.dataStore.showToaster('warning', this.dataStore.t('toaster.formFieldEmptyWarning'), 3000);
|
|
222
228
|
return true;
|
|
223
229
|
} else {
|
|
224
230
|
this.dataStore.showToaster('error', this.dataStore.t('error.memberSave'));
|