hl-core 0.0.10-beta.30 → 0.0.10-beta.31
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/README.md +0 -2
- package/api/base.api.ts +41 -0
- package/components/Form/ManagerAttachment.vue +1 -2
- package/components/Input/Datepicker.vue +5 -0
- package/components/Input/FormInput.vue +5 -0
- package/components/Input/RoundedInput.vue +2 -0
- package/components/Pages/Documents.vue +188 -56
- package/components/Pages/MemberForm.vue +104 -116
- package/components/Pages/ProductConditions.vue +454 -102
- package/components/Panel/PanelHandler.vue +63 -44
- package/composables/classes.ts +20 -4
- package/composables/constants.ts +8 -0
- package/composables/index.ts +4 -1
- package/locales/ru.json +12 -6
- package/package.json +1 -1
- package/store/data.store.ts +296 -97
- package/store/member.store.ts +15 -4
- package/store/rules.ts +2 -2
- package/types/enum.ts +1 -0
|
@@ -73,19 +73,26 @@
|
|
|
73
73
|
</base-form-section>
|
|
74
74
|
</div>
|
|
75
75
|
<div v-if="!(formStore.signatories.length === 0) && !isQr && !isScansDocuments" :class="[$styles.flexColNav]">
|
|
76
|
+
<div
|
|
77
|
+
v-if="(processCode === 19 || processCode === 25) && formStore.applicationData.statusCode === 'AttachAppContractForm'"
|
|
78
|
+
:class="[$styles.blueBgLight]"
|
|
79
|
+
class="rounded-lg p-4"
|
|
80
|
+
>
|
|
81
|
+
<base-form-toggle v-model="isOnlineEnpf" title="Онлайн подписание согласия для ЕНПФ" :has-border="false" @clicked="setActualEnpf" />
|
|
82
|
+
</div>
|
|
76
83
|
<div :class="[$styles.blueBgLight]" class="rounded-lg p-4">
|
|
77
|
-
<v-expansion-panels v-if="formStore.signatories.length" variant="accordion" multiple>
|
|
84
|
+
<v-expansion-panels v-if="formStore.signatories.length" variant="accordion" :multiple="false">
|
|
78
85
|
<v-expansion-panel v-for="(person, index) of formStore.signatories" :key="person.personId!" class="border-[1px]" elevation="0" bg-color="#FFF">
|
|
79
86
|
<v-expansion-panel-title class="h-[80px]" :class="$styles.textTitle">
|
|
80
87
|
{{ person.longName }}
|
|
81
88
|
</v-expansion-panel-title>
|
|
82
89
|
<v-expansion-panel-text class="border-t-[1px]">
|
|
83
90
|
<section class="flex flex-col" :class="$styles.textSimple">
|
|
84
|
-
<v-expansion-panels v-if="person.fileDatas.length" v-model="currentFilePanel">
|
|
91
|
+
<v-expansion-panels v-if="person.fileDatas.length" v-model="currentFilePanel" :multiple="false">
|
|
85
92
|
<v-expansion-panel
|
|
86
93
|
v-for="(file, fileIndex) in groupBy(person.fileDatas, 'orderFile')"
|
|
87
|
-
:value="fileIndex"
|
|
88
|
-
:disabled="inSigningOrder(person.fileDatas, fileIndex) || file
|
|
94
|
+
:value="`${index} - ${fileIndex}`"
|
|
95
|
+
:disabled="inSigningOrder(person.fileDatas, fileIndex) || file.every((f: any) => f.isSigned === true)"
|
|
89
96
|
>
|
|
90
97
|
<v-expansion-panel-title v-for="name in file" class="h-[80px]" :class="$styles.textTitle">
|
|
91
98
|
{{ name.fileName }}
|
|
@@ -109,6 +116,9 @@
|
|
|
109
116
|
</v-expansion-panels>
|
|
110
117
|
<base-list-empty v-else />
|
|
111
118
|
</div>
|
|
119
|
+
<base-animation>
|
|
120
|
+
<base-btn v-if="isAllPaperSigned" :text="$dataStore.t('buttons.send')" :loading="loading" @click="$dataStore.panelAction = constants.actions.signed" />
|
|
121
|
+
</base-animation>
|
|
112
122
|
</div>
|
|
113
123
|
</section>
|
|
114
124
|
<section v-if="choosePayActions">
|
|
@@ -243,7 +253,7 @@
|
|
|
243
253
|
import { DocumentItem, Value } from '../../composables/classes';
|
|
244
254
|
import { HubConnectionBuilder } from '@microsoft/signalr';
|
|
245
255
|
import { uuid } from 'vue-uuid';
|
|
246
|
-
import type
|
|
256
|
+
import type * as Types from '../../types';
|
|
247
257
|
import { CoreEnums } from '../../types/enum';
|
|
248
258
|
|
|
249
259
|
export default defineComponent({
|
|
@@ -266,15 +276,15 @@ export default defineComponent({
|
|
|
266
276
|
const isOfflinePay = ref<boolean>(false);
|
|
267
277
|
const isQrDialog = ref<boolean>(false);
|
|
268
278
|
const email = ref<string>('');
|
|
269
|
-
const signOptions = ref<Api.Sign.New.Response>();
|
|
270
|
-
const signingFiles = ref<Api.Sign.New.FileDatas[]>([]);
|
|
271
|
-
const
|
|
279
|
+
const signOptions = ref<Types.Api.Sign.New.Response>();
|
|
280
|
+
const signingFiles = ref<Types.Api.Sign.New.FileDatas[]>([]);
|
|
281
|
+
const isOnlineEnpf = ref<boolean>(true);
|
|
272
282
|
const currentFilePanel = ref<string[]>([]);
|
|
273
283
|
|
|
274
284
|
const vForm = ref<any>();
|
|
275
285
|
const isSendNumberOpen = ref<boolean>(false);
|
|
276
286
|
const phoneNumber = ref<string | null>(formStore.policyholderForm.phoneNumber ?? '');
|
|
277
|
-
const selectedClient = ref<SignUrlType>();
|
|
287
|
+
const selectedClient = ref<Types.SignUrlType>();
|
|
278
288
|
const documentDict = computed(() => dataStore.dicFileTypeList.find(i => i.nameRu === 'Решение АС'));
|
|
279
289
|
const affiliationDocument = computed(() => formStore.signedDocumentList.find((file: DocumentItem) => file.fileTypeName === 'Решение АС'));
|
|
280
290
|
const affiliationData = ref<{
|
|
@@ -290,9 +300,10 @@ export default defineComponent({
|
|
|
290
300
|
const affiliationFormData = ref(new FormData());
|
|
291
301
|
const scansFormData = ref(new FormData());
|
|
292
302
|
const scansFiles = ref<any[]>([]);
|
|
303
|
+
const isAllPaperSigned = computed(() => formStore.signatories.every((person: any) => person.fileDatas.every((file: any) => file.isSigned === true && file.signedType === 2)));
|
|
293
304
|
const processCode = formStore.applicationData.processCode;
|
|
294
305
|
|
|
295
|
-
const openSmsPanel = (signInfo: SignUrlType) => {
|
|
306
|
+
const openSmsPanel = (signInfo: Types.SignUrlType) => {
|
|
296
307
|
if (signInfo) {
|
|
297
308
|
isSendNumberOpen.value = true;
|
|
298
309
|
selectedClient.value = signInfo;
|
|
@@ -418,7 +429,7 @@ export default defineComponent({
|
|
|
418
429
|
};
|
|
419
430
|
|
|
420
431
|
const sendFilesNew = async () => {
|
|
421
|
-
if (scansFiles.value.length !==
|
|
432
|
+
if (scansFiles.value.length !== signingFiles.value.length) {
|
|
422
433
|
dataStore.showToaster('warning', dataStore.t('toaster.notAllDocumentsAttached'));
|
|
423
434
|
return;
|
|
424
435
|
}
|
|
@@ -428,14 +439,13 @@ export default defineComponent({
|
|
|
428
439
|
await dataStore.api.file.uploadFilesNew(f.groupId, f.data);
|
|
429
440
|
}),
|
|
430
441
|
);
|
|
442
|
+
await checkIfAllSigned(true);
|
|
431
443
|
scansFiles.value = [];
|
|
432
|
-
|
|
433
|
-
dataStore.showToaster('info', 'Документы
|
|
434
|
-
await dataStore.handleTask(constants.actions.signed, route.params.taskId as string);
|
|
444
|
+
isScansDocuments.value = false;
|
|
445
|
+
dataStore.showToaster('info', 'Документы загружены успешно');
|
|
435
446
|
} catch (err) {
|
|
436
447
|
return ErrorHandler(err);
|
|
437
448
|
}
|
|
438
|
-
closePanel();
|
|
439
449
|
};
|
|
440
450
|
|
|
441
451
|
const sendFiles = async () => {
|
|
@@ -506,7 +516,11 @@ export default defineComponent({
|
|
|
506
516
|
}
|
|
507
517
|
}
|
|
508
518
|
if (dataStore.isPension) {
|
|
509
|
-
|
|
519
|
+
if (formStore.applicationData.pensionApp) {
|
|
520
|
+
const isOnlineEnpfAgreement = formStore.applicationData.pensionApp.isOnlineEnpfAgreement;
|
|
521
|
+
isOnlineEnpf.value = isOnlineEnpfAgreement === null ? true : isOnlineEnpfAgreement;
|
|
522
|
+
await dataStore.getSignedDocList(formStore.applicationData.processInstanceId);
|
|
523
|
+
}
|
|
510
524
|
}
|
|
511
525
|
};
|
|
512
526
|
|
|
@@ -562,13 +576,13 @@ export default defineComponent({
|
|
|
562
576
|
dataStore.panelAction === constants.actions.return ||
|
|
563
577
|
dataStore.panelAction === constants.actions.rejectclient,
|
|
564
578
|
);
|
|
565
|
-
const acceptAction = computed(() => dataStore.panelAction === constants.actions.accept);
|
|
579
|
+
const acceptAction = computed(() => dataStore.panelAction === constants.actions.accept || (dataStore.isPension && dataStore.panelAction === constants.actions.signed));
|
|
566
580
|
const signingActions = computed(() => dataStore.panelAction === constants.actions.sign);
|
|
567
581
|
const payingActions = computed(() => dataStore.panelAction === constants.actions.pay);
|
|
568
582
|
const affiliateActions = computed(() => dataStore.panelAction === constants.actions.affiliate);
|
|
569
583
|
const chooseSignActions = computed(() => dataStore.controls.hasChooseSign && dataStore.panelAction === constants.actions.chooseSign);
|
|
570
584
|
const choosePayActions = computed(() => dataStore.controls.hasChoosePay && dataStore.panelAction === constants.actions.choosePay);
|
|
571
|
-
const isNewSign = computed(() =>
|
|
585
|
+
const isNewSign = computed(() => dataStore.isPension || dataStore.isGons);
|
|
572
586
|
const paymentPeriod = computed(() => formStore.productConditionsForm.paymentPeriod.nameRu);
|
|
573
587
|
const insurancePremiumPerMonth = computed(() => {
|
|
574
588
|
if (dataStore.isGons && formStore.productConditionsForm.currency.code === 'USD') {
|
|
@@ -588,7 +602,7 @@ export default defineComponent({
|
|
|
588
602
|
const price = computed(() => dataStore.getNumberWithSpaces(formStore.productConditionsForm.calculatorForm.price));
|
|
589
603
|
const insuredAmount = computed(() => formStore.productConditionsForm.calculatorForm.amount!.nameRu! + dataStore.currency);
|
|
590
604
|
const hasConditionsInfo = computed(() => {
|
|
591
|
-
if (dataStore.isLifetrip || dataStore.isDas || dataStore.isUU || dataStore.isPrePension) {
|
|
605
|
+
if (dataStore.isLifetrip || dataStore.isDas || dataStore.isUU || dataStore.isPrePension || dataStore.isPension) {
|
|
592
606
|
return false;
|
|
593
607
|
}
|
|
594
608
|
if (dataStore.isFinCenter()) {
|
|
@@ -774,7 +788,7 @@ export default defineComponent({
|
|
|
774
788
|
await dataStore.generateDocument();
|
|
775
789
|
};
|
|
776
790
|
|
|
777
|
-
const convertQr = async (url: string | null, template?: Api.GenerateShortLink.Templates) => {
|
|
791
|
+
const convertQr = async (url: string | null, template?: Types.Api.GenerateShortLink.Templates) => {
|
|
778
792
|
if (url) {
|
|
779
793
|
const shortedUrl = await dataStore.generateShortLink(url, template);
|
|
780
794
|
qrUrl.value = typeof shortedUrl === 'string' && !!shortedUrl ? shortedUrl : url;
|
|
@@ -833,17 +847,18 @@ export default defineComponent({
|
|
|
833
847
|
}, {});
|
|
834
848
|
};
|
|
835
849
|
|
|
836
|
-
const checkIfAllSigned = async () => {
|
|
850
|
+
const checkIfAllSigned = async (sendTask: boolean = false) => {
|
|
837
851
|
await dataStore.generateSign(route.params.taskId as string);
|
|
838
|
-
formStore.signatories.find((person: any) => {
|
|
852
|
+
formStore.signatories.find(async (person: any) => {
|
|
839
853
|
if (person.fileDatas.find((file: any) => file.isSigned === false) === undefined) {
|
|
840
|
-
if (formStore.applicationData.statusCode !== 'ContractSignedFrom')
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
854
|
+
if (formStore.applicationData.statusCode !== 'ContractSignedFrom') {
|
|
855
|
+
// TODO better if condition
|
|
856
|
+
// dataStore.showToaster(
|
|
857
|
+
// 'success',
|
|
858
|
+
// dataStore.t(`pension.${formStore.applicationData.statusCode === 'HeadManagerForm' ? 'signInProcessManager' : 'signInProcess'}`),
|
|
859
|
+
// 30000,
|
|
860
|
+
// );
|
|
861
|
+
}
|
|
847
862
|
}
|
|
848
863
|
});
|
|
849
864
|
};
|
|
@@ -854,13 +869,9 @@ export default defineComponent({
|
|
|
854
869
|
...formStore.signatories[index],
|
|
855
870
|
signType: signType,
|
|
856
871
|
fileDatas: file,
|
|
857
|
-
};
|
|
872
|
+
} as Types.Api.Sign.New.GeneralResponse;
|
|
858
873
|
try {
|
|
859
|
-
signOptions.value = await dataStore.
|
|
860
|
-
const message = [];
|
|
861
|
-
for (let i of file) {
|
|
862
|
-
message.push(i.fileName);
|
|
863
|
-
}
|
|
874
|
+
signOptions.value = await dataStore.generalSign(data);
|
|
864
875
|
if (signOptions.value) {
|
|
865
876
|
switch (signType) {
|
|
866
877
|
case CoreEnums.Sign.Types.electronic:
|
|
@@ -871,8 +882,7 @@ export default defineComponent({
|
|
|
871
882
|
break;
|
|
872
883
|
case CoreEnums.Sign.Types.scans:
|
|
873
884
|
isScansDocuments.value = true;
|
|
874
|
-
signingFiles.value = data.fileDatas;
|
|
875
|
-
message.length = 0;
|
|
885
|
+
signingFiles.value = data.fileDatas && Array.isArray(data.fileDatas) ? data.fileDatas.filter(i => i.isSigned !== true) : [];
|
|
876
886
|
break;
|
|
877
887
|
case CoreEnums.Sign.Types.qr:
|
|
878
888
|
if (!signOptions.value.signatureDocumentGroupId) return dataStore.showToaster('error', 'Ошибка подписи документов', 10000);
|
|
@@ -887,21 +897,18 @@ export default defineComponent({
|
|
|
887
897
|
case CoreEnums.Sign.Types.nclayer:
|
|
888
898
|
for (let sign of signOptions.value.signIds) {
|
|
889
899
|
const response = await dataStore.nclayerSign(sign.id, signType, file[0].fileType === 43);
|
|
890
|
-
if (
|
|
900
|
+
if (response === null) {
|
|
891
901
|
dataStore.showToaster('error', 'Ошибка подписи документов', 10000);
|
|
892
|
-
message.length = 0;
|
|
893
902
|
break;
|
|
894
903
|
}
|
|
904
|
+
if (!response) break;
|
|
895
905
|
}
|
|
896
906
|
break;
|
|
897
907
|
default:
|
|
898
908
|
break;
|
|
899
909
|
}
|
|
900
910
|
}
|
|
901
|
-
|
|
902
|
-
// dataStore.showToaster('info', 'Подписывается: ' + message.join(', '), 5000);
|
|
903
|
-
await checkIfAllSigned();
|
|
904
|
-
}
|
|
911
|
+
await checkIfAllSigned();
|
|
905
912
|
currentFilePanel.value = [];
|
|
906
913
|
} catch (err) {
|
|
907
914
|
ErrorHandler(err);
|
|
@@ -909,6 +916,16 @@ export default defineComponent({
|
|
|
909
916
|
loading.value = false;
|
|
910
917
|
};
|
|
911
918
|
|
|
919
|
+
const setActualEnpf = useDebounceFn(async () => {
|
|
920
|
+
try {
|
|
921
|
+
await dataStore.api.file.setActualEnpf({ processId: String(formStore.applicationData.processInstanceId), isOnlineEnpfAgreement: isOnlineEnpf.value });
|
|
922
|
+
await dataStore.generateSign(String(route.params.taskId));
|
|
923
|
+
} catch (err) {
|
|
924
|
+
ErrorHandler(err);
|
|
925
|
+
}
|
|
926
|
+
currentFilePanel.value = [];
|
|
927
|
+
}, 1000);
|
|
928
|
+
|
|
912
929
|
return {
|
|
913
930
|
// State
|
|
914
931
|
formStore,
|
|
@@ -932,7 +949,7 @@ export default defineComponent({
|
|
|
932
949
|
email,
|
|
933
950
|
signOptions,
|
|
934
951
|
signingFiles,
|
|
935
|
-
|
|
952
|
+
isOnlineEnpf,
|
|
936
953
|
currentFilePanel,
|
|
937
954
|
|
|
938
955
|
// Functions
|
|
@@ -951,6 +968,7 @@ export default defineComponent({
|
|
|
951
968
|
handlePayAction,
|
|
952
969
|
payEpay,
|
|
953
970
|
convertQr,
|
|
971
|
+
setActualEnpf,
|
|
954
972
|
sendInvoiceToEmail,
|
|
955
973
|
hasConditionsAction,
|
|
956
974
|
|
|
@@ -963,6 +981,7 @@ export default defineComponent({
|
|
|
963
981
|
affiliateActions,
|
|
964
982
|
chooseSignActions,
|
|
965
983
|
paymentPeriod,
|
|
984
|
+
isAllPaperSigned,
|
|
966
985
|
insurancePremiumPerMonth,
|
|
967
986
|
requestedSumInsured,
|
|
968
987
|
affiliationDocument,
|
package/composables/classes.ts
CHANGED
|
@@ -97,6 +97,7 @@ export class IDocument {
|
|
|
97
97
|
signed?: boolean | null;
|
|
98
98
|
signId?: string | null;
|
|
99
99
|
certificateDate?: string | null;
|
|
100
|
+
signedType?: number;
|
|
100
101
|
|
|
101
102
|
constructor(
|
|
102
103
|
id?: string,
|
|
@@ -113,6 +114,7 @@ export class IDocument {
|
|
|
113
114
|
signed?: boolean | null,
|
|
114
115
|
signId?: string | null,
|
|
115
116
|
certificateDate?: string | null,
|
|
117
|
+
signedType?: number,
|
|
116
118
|
) {
|
|
117
119
|
this.id = id;
|
|
118
120
|
this.processInstanceId = processInstanceId;
|
|
@@ -128,6 +130,7 @@ export class IDocument {
|
|
|
128
130
|
this.signed = signed;
|
|
129
131
|
this.signId = signId;
|
|
130
132
|
this.certificateDate = certificateDate;
|
|
133
|
+
this.signedType = signedType;
|
|
131
134
|
}
|
|
132
135
|
}
|
|
133
136
|
|
|
@@ -148,9 +151,10 @@ export class DocumentItem extends IDocument {
|
|
|
148
151
|
signed,
|
|
149
152
|
signId,
|
|
150
153
|
certificateDate,
|
|
154
|
+
signedType,
|
|
151
155
|
}: IDocument = new IDocument(),
|
|
152
156
|
) {
|
|
153
|
-
super(id, processInstanceId, iin, fileTypeId, fileTypeName, fileTypeNameRu, fileId, page, fileName, fileTypeCode, sharedId, signed, signId, certificateDate);
|
|
157
|
+
super(id, processInstanceId, iin, fileTypeId, fileTypeName, fileTypeNameRu, fileId, page, fileName, fileTypeCode, sharedId, signed, signId, certificateDate, signedType);
|
|
154
158
|
}
|
|
155
159
|
}
|
|
156
160
|
|
|
@@ -1394,6 +1398,7 @@ export class FormStoreClass {
|
|
|
1394
1398
|
beneficiaryForm: boolean;
|
|
1395
1399
|
beneficialOwnerForm: boolean;
|
|
1396
1400
|
insuredForm: boolean;
|
|
1401
|
+
slaveInsuredForm: boolean;
|
|
1397
1402
|
policyholdersRepresentativeForm: boolean;
|
|
1398
1403
|
productConditionsForm: boolean;
|
|
1399
1404
|
calculatorForm: boolean;
|
|
@@ -1429,6 +1434,7 @@ export class FormStoreClass {
|
|
|
1429
1434
|
parentPolicyDto?: Types.ParentPolicyDto | null;
|
|
1430
1435
|
insisWorkDataApp?: Types.InsisWorkDataApp;
|
|
1431
1436
|
addCoverDto?: Types.AddCover[];
|
|
1437
|
+
slave?: any;
|
|
1432
1438
|
};
|
|
1433
1439
|
policyholderForm: Member;
|
|
1434
1440
|
policyholderFormKey: StoreMembers.policyholderForm;
|
|
@@ -1441,14 +1447,17 @@ export class FormStoreClass {
|
|
|
1441
1447
|
beneficialOwnerFormIndex: number;
|
|
1442
1448
|
beneficialOwnerFormKey: StoreMembers.beneficialOwnerForm;
|
|
1443
1449
|
insuredForm: Member[];
|
|
1450
|
+
slaveInsuredForm: Member;
|
|
1444
1451
|
insuredFormKey: StoreMembers.insuredForm;
|
|
1445
1452
|
insuredFormIndex: number;
|
|
1446
1453
|
productConditionsForm: ProductConditions;
|
|
1447
1454
|
productConditionsFormKey: string;
|
|
1455
|
+
pensionApp: any;
|
|
1448
1456
|
questionnaireByHealth: any;
|
|
1449
1457
|
questionnaireByCritical: any[];
|
|
1450
1458
|
canBeClaimed: boolean | null;
|
|
1451
1459
|
applicationTaskId: string | null;
|
|
1460
|
+
requiredDocuments: RequiredDocument[];
|
|
1452
1461
|
|
|
1453
1462
|
constructor() {
|
|
1454
1463
|
this.regNumber = null;
|
|
@@ -1519,6 +1528,7 @@ export class FormStoreClass {
|
|
|
1519
1528
|
beneficiaryForm: true,
|
|
1520
1529
|
beneficialOwnerForm: true,
|
|
1521
1530
|
insuredForm: true,
|
|
1531
|
+
slaveInsuredForm: true,
|
|
1522
1532
|
policyholdersRepresentativeForm: true,
|
|
1523
1533
|
productConditionsForm: true,
|
|
1524
1534
|
calculatorForm: true,
|
|
@@ -1547,6 +1557,7 @@ export class FormStoreClass {
|
|
|
1547
1557
|
this.beneficialOwnerFormIndex = 0;
|
|
1548
1558
|
this.beneficialOwnerFormKey = StoreMembers.beneficialOwnerForm;
|
|
1549
1559
|
this.insuredForm = [new Member()];
|
|
1560
|
+
this.slaveInsuredForm = new Member();
|
|
1550
1561
|
this.insuredFormKey = StoreMembers.insuredForm;
|
|
1551
1562
|
this.insuredFormIndex = 0;
|
|
1552
1563
|
this.productConditionsForm = new ProductConditions();
|
|
@@ -1555,6 +1566,7 @@ export class FormStoreClass {
|
|
|
1555
1566
|
this.questionnaireByCritical = [];
|
|
1556
1567
|
this.canBeClaimed = null;
|
|
1557
1568
|
this.applicationTaskId = null;
|
|
1569
|
+
this.requiredDocuments = [];
|
|
1558
1570
|
}
|
|
1559
1571
|
}
|
|
1560
1572
|
|
|
@@ -1788,13 +1800,13 @@ export class TransferContract {
|
|
|
1788
1800
|
id: string | null;
|
|
1789
1801
|
transferContractIsOppv: boolean;
|
|
1790
1802
|
transferContractFirstPaymentDate: string;
|
|
1791
|
-
transferContractAmount: number;
|
|
1803
|
+
transferContractAmount: number | string;
|
|
1792
1804
|
transferContractDate: string;
|
|
1793
1805
|
transferContractNumber: string;
|
|
1794
1806
|
transferContractRegNumber: string;
|
|
1795
1807
|
transferContract: boolean;
|
|
1796
1808
|
transferContractCompany: Value;
|
|
1797
|
-
transferContractMonthCount: number;
|
|
1809
|
+
transferContractMonthCount: number | null;
|
|
1798
1810
|
|
|
1799
1811
|
constructor() {
|
|
1800
1812
|
this.id = null;
|
|
@@ -1806,6 +1818,10 @@ export class TransferContract {
|
|
|
1806
1818
|
this.transferContract = false;
|
|
1807
1819
|
this.transferContractRegNumber = '';
|
|
1808
1820
|
this.transferContractCompany = new Value();
|
|
1809
|
-
this.transferContractMonthCount =
|
|
1821
|
+
this.transferContractMonthCount = null;
|
|
1810
1822
|
}
|
|
1811
1823
|
}
|
|
1824
|
+
|
|
1825
|
+
export class RequiredDocument extends Value {
|
|
1826
|
+
iin: string = '';
|
|
1827
|
+
}
|
package/composables/constants.ts
CHANGED
|
@@ -21,6 +21,8 @@ export const constants = Object.freeze({
|
|
|
21
21
|
halykkazynaap: 20,
|
|
22
22
|
balam: 21,
|
|
23
23
|
halykkazynaapsms: 23,
|
|
24
|
+
pensionannuityrefundnew: 24,
|
|
25
|
+
pensionannuityjointnew: 25,
|
|
24
26
|
},
|
|
25
27
|
amlProducts: {
|
|
26
28
|
checkcontragent: 1,
|
|
@@ -39,6 +41,7 @@ export const constants = Object.freeze({
|
|
|
39
41
|
returnStatementStatuses: [
|
|
40
42
|
Statuses.ApproveForm,
|
|
41
43
|
Statuses.ActuaryForm,
|
|
44
|
+
Statuses.JuristForm,
|
|
42
45
|
Statuses.DsoUsnsForm,
|
|
43
46
|
Statuses.AccountantForm,
|
|
44
47
|
Statuses.UnderwriterForm,
|
|
@@ -104,6 +107,11 @@ export const constants = Object.freeze({
|
|
|
104
107
|
questionnaireInsured: 35,
|
|
105
108
|
invoicePayment: 36,
|
|
106
109
|
},
|
|
110
|
+
fileTypes: {
|
|
111
|
+
pdf: 'application/pdf',
|
|
112
|
+
docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
113
|
+
doc: 'application/msword',
|
|
114
|
+
},
|
|
107
115
|
regex: {
|
|
108
116
|
isoDate: /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)((-(\d{2}):(\d{2})|Z)?)$/,
|
|
109
117
|
},
|
package/composables/index.ts
CHANGED
|
@@ -158,6 +158,8 @@ export const parseProcents = (val: string | number) => (val ? Number(((val as nu
|
|
|
158
158
|
|
|
159
159
|
export const formatProcents = (val: string | number) => (val ? Number(((val as number) / 100).toFixed(2)) : Number(val));
|
|
160
160
|
|
|
161
|
+
export const formatSpacedNumber = (val: any) => ((!isNaN(val) && val !== null) || typeof val === 'string' ? Number(String(val).replace(/\s/g, '')) : 0);
|
|
162
|
+
|
|
161
163
|
export const sanitizeURL = (text: string) => (text ? text.replace(/\r?\n|\r|\\|"/g, '') : '');
|
|
162
164
|
|
|
163
165
|
export const sanitize = (text: string) =>
|
|
@@ -808,7 +810,7 @@ export class RoleController {
|
|
|
808
810
|
hasAccess = () => {
|
|
809
811
|
const baseAccessRoles = this.isAdmin() || this.isSupport() || this.isAnalyst() || this.isDrn();
|
|
810
812
|
return {
|
|
811
|
-
invoiceInfo: this.isAdmin(),
|
|
813
|
+
invoiceInfo: this.isAdmin() || this.isSupport(),
|
|
812
814
|
toLKA: this.isAgent() || this.isManagerHalykBank() || baseAccessRoles,
|
|
813
815
|
toAML: this.isCompliance() || baseAccessRoles,
|
|
814
816
|
toAULETTI: this.isAgentAuletti() || this.isManagerAuletti() || baseAccessRoles,
|
|
@@ -832,6 +834,7 @@ export class RoleController {
|
|
|
832
834
|
this.isDrn() ||
|
|
833
835
|
this.isUrp() ||
|
|
834
836
|
this.isUsns() ||
|
|
837
|
+
this.isJurist() ||
|
|
835
838
|
this.isAccountant() ||
|
|
836
839
|
this.isBranchDirector() ||
|
|
837
840
|
this.isUSNSACCINS() ||
|
package/locales/ru.json
CHANGED
|
@@ -135,14 +135,17 @@
|
|
|
135
135
|
"templateDownloaded": "Шаблон скачан",
|
|
136
136
|
"templateSentToEmail": "Шаблона отправлен на почту",
|
|
137
137
|
"fileOnlyBelow5mb": "Максимальный размер документа для загрузки - 5 МБ.",
|
|
138
|
+
"fileOnlyBelow10mb": "Максимальный размер документа для загрузки - 10 МБ.",
|
|
138
139
|
"fileOnlyBelow20mb": "Максимальный размер документа для загрузки - 20 МБ.",
|
|
139
140
|
"onlyPDF": "Загружать документы можно только в формате PDF",
|
|
141
|
+
"onlyWithFormat": "Загружать документы можно только в формате {format}",
|
|
140
142
|
"notAllDocumentsAttached": "Не все документы вложены",
|
|
141
143
|
"needAttachQuestionnaire": "Нужно вложить анкету для клиентов",
|
|
142
144
|
"notZeroPremium": "Общая страховая премия не должен быть 0",
|
|
143
145
|
"requiredFieldsLB": "Обязательные поля: №, Ф.И.О, Пол, Должность, Дата рождения, ИИН, Страховая сумма",
|
|
144
146
|
"duplicateClient": "В списке присутствуют повторяющиеся клиенты",
|
|
145
147
|
"notParsedDocument": "Не удалось получить данные",
|
|
148
|
+
"successProfile": "Профиль успешно обновлен",
|
|
146
149
|
"errorOsns": "По данному БИН на дату заключения заявления не найден договор ОСНС. Просим проверить БИН Страхователя.",
|
|
147
150
|
"needDigDoc": "Нужно получить цифровой документ {text}",
|
|
148
151
|
"notDigDoc": "Выданный документ не найден"
|
|
@@ -564,8 +567,8 @@
|
|
|
564
567
|
"frequencyPayments": "Периодичность аннуитетной выплаты",
|
|
565
568
|
"paymentPeriod": "Период осуществления страховых выплат",
|
|
566
569
|
"insuranceProgramType": "Вид программы страхования",
|
|
567
|
-
"pensionAmount": "
|
|
568
|
-
"pensionPayment": "
|
|
570
|
+
"pensionAmount": "Страховая премия",
|
|
571
|
+
"pensionPayment": "Аннуитетная выплата, тенге:",
|
|
569
572
|
"male": "Мужской",
|
|
570
573
|
"female": "Женский",
|
|
571
574
|
"parentContractID": "Идентификатор родительского контракта",
|
|
@@ -576,7 +579,7 @@
|
|
|
576
579
|
"KSJagreement": "Договор с другой КСЖ",
|
|
577
580
|
"ENPFnote": "Выписка из ЕНПФ",
|
|
578
581
|
"getDataENPF": "Получить данные с ЕНПФ",
|
|
579
|
-
"compulsoryProfMonthCount": "Количество месяцев уплаты ОППВ (не менее
|
|
582
|
+
"compulsoryProfMonthCount": "Количество месяцев уплаты ОППВ (не менее 60 месяцев)",
|
|
580
583
|
"insuredIIN": "ИИН «Страхователя»",
|
|
581
584
|
"ifHasRelationBeneficiary": "Включите, если у Страхователя есть Родственные связи с Выгодоприобретателем",
|
|
582
585
|
"complianceFinMonitoring": "Приложение 6/ПОДФТ",
|
|
@@ -587,13 +590,16 @@
|
|
|
587
590
|
"transferContractFirstPaymentDate": "Дата начала выплат по договору с КСЖ",
|
|
588
591
|
"companyName": "Наименование компании по страхованию жизни",
|
|
589
592
|
"bankInvalid": "Некорректные банковские данные",
|
|
590
|
-
"globalId": "Уникальный номер договора (globalId)",
|
|
593
|
+
"globalId": "Уникальный номер договора с ЕСБД (globalId)",
|
|
591
594
|
"oppvMonthsCheck": "ВНИМАНИЕ! НЕОБХОДИМО ПРОВЕРИТЬ НАЛИЧИЕ ОТЧИСЛЕНИЙ 60 МЕСЯЦЕВ ПО ПРИЗНАКУ 'ОППВ'",
|
|
592
595
|
"signInProcess": "После подписания всех документов данная заявка перейдет к Подписанту вашего Региона",
|
|
593
596
|
"signInProcessManager": "Договор будет подписан в течение минуты",
|
|
594
|
-
"transferRegNumber": "Номер и серия договора",
|
|
597
|
+
"transferRegNumber": "Номер и серия договора с КСЖ",
|
|
595
598
|
"contragentSelect": "Выбор контрагента",
|
|
596
|
-
"fileError": "Ошибка прикрепления файла"
|
|
599
|
+
"fileError": "Ошибка прикрепления файла",
|
|
600
|
+
"parentContractNextPay": "Возврат с учетом очередной выплаты",
|
|
601
|
+
"parentContractNextPayDate": "Очередная выплата по графику",
|
|
602
|
+
"oppvPaymentCertificate": "Справка о количество взносов за счет ОППВ"
|
|
597
603
|
},
|
|
598
604
|
"agent": {
|
|
599
605
|
"currency": "Валюта",
|