hl-core 0.0.10-beta.37 → 0.0.10-beta.39

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 CHANGED
@@ -1039,6 +1039,16 @@ export class ApiClass {
1039
1039
  });
1040
1040
  }
1041
1041
 
1042
+ async getParentApplication(bin: string) {
1043
+ return await this.axiosCall<any>({
1044
+ method: Methods.GET,
1045
+ url: `/${this.productUrl}/api/Application/GetParentApplication`,
1046
+ params: {
1047
+ bin,
1048
+ },
1049
+ });
1050
+ }
1051
+
1042
1052
  pensionannuityNew = {
1043
1053
  base: '/pensionannuityNew',
1044
1054
  getEnpfRedirectUrl: async (id: string) => {
@@ -0,0 +1,71 @@
1
+ <template>
2
+ <v-textarea
3
+ class="form-input"
4
+ :label="label"
5
+ :model-value="modelValue"
6
+ :disabled="disabled"
7
+ :variant="variant"
8
+ :readonly="props.readonly"
9
+ :color="color"
10
+ :rows="rows"
11
+ @update:modelValue="$emit('update:modelValue', $event)"
12
+ auto-grow
13
+ ></v-textarea>
14
+ </template>
15
+
16
+ <script lang="ts">
17
+ import type { InputVariants } from '../../types';
18
+
19
+ export default defineComponent({
20
+ props: {
21
+ modelValue: {
22
+ required: false,
23
+ },
24
+ label: {
25
+ type: String,
26
+ default: '',
27
+ },
28
+ disabled: {
29
+ type: Boolean,
30
+ default: false,
31
+ },
32
+ variant: {
33
+ type: String as PropType<InputVariants>,
34
+ default: 'solo',
35
+ },
36
+ readonly: {
37
+ type: Boolean,
38
+ default: false,
39
+ },
40
+ color: {
41
+ type: String,
42
+ default: '#009c73',
43
+ },
44
+ rows: {
45
+ type: Number,
46
+ default: 5,
47
+ },
48
+ },
49
+ emits: ['update:modelValue'],
50
+
51
+ setup(props, { emit }) {
52
+ return {
53
+ props,
54
+ };
55
+ },
56
+ });
57
+ </script>
58
+
59
+ <style>
60
+ .form-input input:focus {
61
+ border: none !important;
62
+ outline: none !important;
63
+ }
64
+ .form-input .v-field {
65
+ box-shadow: none;
66
+ font-size: 14px;
67
+ }
68
+ .form-input .v-label.v-field-label {
69
+ top: 20px;
70
+ }
71
+ </style>
@@ -422,7 +422,7 @@ export default defineComponent({
422
422
  if (firstQuestionList.value) {
423
423
  if (answerToAll.value) {
424
424
  firstQuestionList.value.forEach((question: AnketaBody, index: number) => {
425
- if (question.first.answerType === 'T') {
425
+ if (question.first.answerType === 'T' || question.first.answerType === 'D') {
426
426
  firstQuestionList.value![index].first.answerName = 'Нет' as AnswerName;
427
427
  }
428
428
  });
@@ -432,7 +432,7 @@ export default defineComponent({
432
432
  }
433
433
  } else {
434
434
  firstQuestionList.value.forEach((question: AnketaBody, index: number) => {
435
- if (question.first.answerType === 'T') {
435
+ if (question.first.answerType === 'T' || question.first.answerType === 'D') {
436
436
  firstQuestionList.value![index].first.answerName = null;
437
437
  }
438
438
  });
@@ -208,7 +208,7 @@
208
208
  v-if="$dataStore.isPension && (whichForm === formStore.insuredFormKey || $route.query.tab === 'slaveInsuredForm')"
209
209
  :title="$dataStore.t('pension.disabilityInfo')"
210
210
  >
211
- <base-form-toggle v-model="member.isDisability" :title="$dataStore.t('pension.ifHasDisability')" :disabled="isDisabled" :has-border="false" />
211
+ <base-form-toggle v-model="member.isDisability" :title="$dataStore.t('pension.ifHasDisabilityAlways')" :disabled="isDisabled" :has-border="false" />
212
212
  <base-animation>
213
213
  <base-panel-input
214
214
  v-if="member.isDisability"
@@ -1676,7 +1676,7 @@ export default {
1676
1676
  });
1677
1677
  if (data.slave)
1678
1678
  pensionKeysWithSpace.forEach(key => {
1679
- if (/\s/g.test(data.slave[key]) === true) data.slave[key] = dataStore.getNumberWithSpaces(data.slave[key]);
1679
+ if (/\s/g.test(data.slave[key]) === true) data.slave[key] = formatSpacedNumber(data.slave[key]);
1680
1680
  });
1681
1681
  const isApplicationSaved = await dataStore.setApplication(data);
1682
1682
  if (!isNewApplication) dataStore.showToaster('info', dataStore.t('toaster.needToRecalculate'), 5000);
@@ -58,7 +58,7 @@
58
58
  <base-file-input :label="$dataStore.t('labels.attachPowerOfAttorney')" @input.prevent="onFileChangeScans($event, 'attorney')" @onClear="onClearFile('attorney')" />
59
59
  </base-form-section>
60
60
  </div>
61
- <base-btn :text="$dataStore.t('buttons.sign')" :loading="$dataStore.isButtonsLoading" @click="isNewSign ? sendFilesNew() : sendFiles()" />
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
63
  </div>
64
64
  <div v-if="isQr" :class="[$styles.flexColNav]">
@@ -123,7 +123,7 @@
123
123
  </section>
124
124
  <section v-if="choosePayActions">
125
125
  <div v-if="!isEpayPay && !isOfflinePay" :class="[$styles.flexColNav]">
126
- <base-btn :text="$dataStore.t('buttons.payEpay')" :loading="loading" @click="handlePayAction('epay')" />
126
+ <base-btn v-if="hasEpayPay" :text="$dataStore.t('buttons.payEpay')" :loading="loading" @click="handlePayAction('epay')" />
127
127
  <base-btn :text="$dataStore.t('buttons.payOffline')" :loading="loading" @click="handlePayAction('offline')" />
128
128
  </div>
129
129
  <div v-if="isOfflinePay" :class="[$styles.flexColNav]">
@@ -449,6 +449,7 @@ export default defineComponent({
449
449
  };
450
450
 
451
451
  const sendFiles = async () => {
452
+ loading.value = true;
452
453
  if (scansFiles.value.length !== 4) {
453
454
  dataStore.showToaster('warning', dataStore.t('toaster.notAllDocumentsAttached'));
454
455
  return;
@@ -462,6 +463,7 @@ export default defineComponent({
462
463
  closePanel();
463
464
  dataStore.showToaster('success', dataStore.t('toaster.successOperation'));
464
465
  await dataStore.handleTask(constants.actions.signed, route.params.taskId as string, 'scans');
466
+ loading.value = false;
465
467
  };
466
468
  const submitForm = async () => {
467
469
  await vForm.value.validate().then(async (v: { valid: Boolean; errors: any }) => {
@@ -647,6 +649,12 @@ export default defineComponent({
647
649
  const isSignatureDisabled = computed(() => {
648
650
  return true;
649
651
  });
652
+ const hasEpayPay = computed(() => {
653
+ if (dataStore.isLifeBusiness || dataStore.isGns) {
654
+ return false;
655
+ }
656
+ return true;
657
+ });
650
658
  const downloadTemplate = async (documentType: number, fileType: string) => {
651
659
  await dataStore.downloadTemplate(documentType, fileType, formStore.applicationData.processInstanceId);
652
660
  };
@@ -892,14 +900,19 @@ export default defineComponent({
892
900
  isQr.value = true;
893
901
  break;
894
902
  case CoreEnums.Sign.Types.nclayer:
895
- for (let sign of signOptions.value.signIds) {
896
- const response = await dataStore.nclayerSign(sign.id, signType, file[0].fileType === 43);
897
- if (response === null) {
898
- dataStore.showToaster('error', 'Ошибка при подключении к приложению «NCALayer». Убедитесь, что запустили приложение «NCALayer»', 10000);
899
- break;
903
+ for (let each of file.filter((i: any) => i.isSigned !== true)) {
904
+ const signingFile = signOptions.value.signIds.find((i: any) => Number(i.fileType) === Number(each.fileType));
905
+ if (signingFile) {
906
+ const response = await dataStore.nclayerSign(signingFile.id, signType, Number(each.fileType) === 43);
907
+ if (response === null) {
908
+ dataStore.showToaster('error', 'Ошибка при подключении к приложению «NCALayer». Убедитесь, что запустили приложение «NCALayer»', 10000);
909
+ break;
910
+ }
911
+ if (!response) break;
912
+ if (response === true) dataStore.showToaster('success', 'Подписание прошло успешно');
913
+ } else {
914
+ dataStore.showToaster('error', 'Не найдены данные для подписания файла');
900
915
  }
901
- if (!response) break;
902
- if (response === true) dataStore.showToaster('success', 'Подписание прошло успешно');
903
916
  }
904
917
  break;
905
918
  default:
@@ -1003,6 +1016,7 @@ export default defineComponent({
1003
1016
  getFileNew,
1004
1017
  inSigningOrder,
1005
1018
  isNewSign,
1019
+ hasEpayPay,
1006
1020
  };
1007
1021
  },
1008
1022
  });
@@ -1564,6 +1564,7 @@ export class FormStoreClass {
1564
1564
  export class Address {
1565
1565
  country: Value;
1566
1566
  region: Value;
1567
+ state: Value;
1567
1568
  regionType: Value;
1568
1569
  city: Value;
1569
1570
  square: string | null;
@@ -1577,6 +1578,7 @@ export class Address {
1577
1578
  constructor() {
1578
1579
  this.country = new Value();
1579
1580
  this.region = new Value();
1581
+ this.state = new Value();
1580
1582
  this.regionType = new Value();
1581
1583
  this.city = new Value();
1582
1584
  this.square = null;
@@ -89,6 +89,29 @@ export const reformatDate = (date: string) => {
89
89
  }
90
90
  };
91
91
 
92
+ export const reformatDateWithHours = (date: string) => {
93
+ if (date) {
94
+ const data = new Date(date);
95
+ let day: string | number = data.getDate();
96
+ let month: string | number = data.getMonth() + 1;
97
+ let hour: string | number = data.getHours();
98
+ let minute: string | number = data.getMinutes();
99
+ if (month < 10) {
100
+ month = '0' + month;
101
+ }
102
+ if (day < 10) {
103
+ day = '0' + day;
104
+ }
105
+ if (minute < 10) {
106
+ minute = '0' + minute;
107
+ }
108
+ const year = data.getFullYear();
109
+ return `${day}.${month}.${year} - ${hour}:${minute}`;
110
+ } else {
111
+ return null;
112
+ }
113
+ };
114
+
92
115
  export const reformatIin = (iin: string) => {
93
116
  if (!!iin) {
94
117
  const matched = iin.match(/.{1,3}/g);
@@ -806,6 +829,9 @@ export class RoleController {
806
829
  isDsoDirector = () => {
807
830
  return this.isRole(constants.roles.DsoDirector);
808
831
  };
832
+ isArchivist = () => {
833
+ return this.isRole(constants.roles.Archivist);
834
+ };
809
835
  isAccountantDirector = () => {
810
836
  return this.isRole(constants.roles.AccountantDirector);
811
837
  };
@@ -815,6 +841,9 @@ export class RoleController {
815
841
  isUrsp = () => {
816
842
  return this.isRole(constants.roles.URSP);
817
843
  };
844
+ isArchivist = () => {
845
+ return this.isRole(constants.roles.Archivist);
846
+ };
818
847
  hasAccess = () => {
819
848
  const baseAccessRoles = this.isAdmin() || this.isSupport() || this.isAnalyst() || this.isDrn();
820
849
  return {
@@ -826,7 +855,6 @@ export class RoleController {
826
855
  toUU: this.isServiceManager() || this.isAccountant() || this.isAdjuster() || this.isHeadAdjuster() || baseAccessRoles,
827
856
  toDSO:
828
857
  this.isDsuio() ||
829
- this.isManager() ||
830
858
  this.isActuary() ||
831
859
  this.isHeadOfDso() ||
832
860
  this.isAccountant() ||
package/locales/ru.json CHANGED
@@ -560,6 +560,7 @@
560
560
  "paymentsDate": "Дата начала аннуитетных выплат",
561
561
  "paymentsPeriod": "Период страховых выплат",
562
562
  "ifHasDisability": "Включите, если у Страхователя есть инвалидность",
563
+ "ifHasDisabilityAlways": "Включите, если у Страхователя бессрочная инвалидность",
563
564
  "disabilityInfo": "Данные об инвалидности",
564
565
  "disabilityGroup": "Группа инвалидности",
565
566
  "compulsoryContractAmount": "Обязательные пенсионные взносы, в тенге",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hl-core",
3
- "version": "0.0.10-beta.37",
3
+ "version": "0.0.10-beta.39",
4
4
  "license": "MIT",
5
5
  "private": false,
6
6
  "main": "nuxt.config.ts",
@@ -3,7 +3,7 @@ import { rules } from './rules';
3
3
  import { i18n } from '../configs/i18n';
4
4
  import { Toast, Types as ToastTypes, Positions, ToastOptions } from './toast';
5
5
  import { isValidGUID, yearEnding, jwtDecode, ErrorHandler, getKeyWithPattern, getNumber, getAgeByBirthDate, RoleController, ProcessController, sanitize } from '../composables';
6
- import { DataStoreClass, DocumentItem, Member, Value, CountryValue, PolicyholderActivity, BeneficialOwner, PolicyholderClass } from '../composables/classes';
6
+ import { DataStoreClass, DocumentItem, Member, Value, CountryValue, PolicyholderActivity, BeneficialOwner, PolicyholderClass, GroupMember } from '../composables/classes';
7
7
  import { ApiClass } from '../api';
8
8
  import { useFormStore } from './form.store';
9
9
  import { AxiosError } from 'axios';
@@ -3689,12 +3689,6 @@ export const useDataStore = defineStore('data', {
3689
3689
  this.formStore.applicationData = applicationData;
3690
3690
  this.formStore.regNumber = applicationData.regNumber;
3691
3691
  this.formStore.additionalInsuranceTerms = applicationData.addCoverDto;
3692
-
3693
- if (localStorage.getItem('add') === 'true' || this.formStore.applicationData.parentPolicyDto !== null) {
3694
- this.formStore.lfb.add = true;
3695
- this.formStore.lfb.policyholder.clientData.iin = localStorage.getItem('bin') as string;
3696
- }
3697
-
3698
3692
  this.formStore.canBeClaimed = await this.api.isClaimTask(taskId);
3699
3693
  this.formStore.applicationTaskId = taskId;
3700
3694
  this.formStore.RegionPolicy.nameRu = applicationData.insisWorkDataApp.regionPolicyName;
@@ -3715,17 +3709,8 @@ export const useDataStore = defineStore('data', {
3715
3709
 
3716
3710
  this.formStore.applicationData.processInstanceId = applicationData.processInstanceId;
3717
3711
  this.formStore.lfb.policyholder.isIpdl = applicationData.clientApp.isIpdl;
3718
- this.formStore.lfb.policyholder.clientData = clientData;
3719
- this.formStore.lfb.policyholder.clientData.authoritedPerson = clientData.authoritedPerson;
3720
- this.formStore.lfb.policyholder.clientData.iin = reformatIin(clientData.iin);
3721
- this.formStore.lfb.policyholder.clientData.authoritedPerson.iin = reformatIin(clientData.authoritedPerson.iin);
3722
3712
  this.formStore.lfb.clientId = clientId;
3723
- this.formStore.lfb.policyholder.clientData.authoritedPerson.authorityDetails.date = reformatDate(clientData.authoritedPerson.authorityDetails.date);
3724
- this.formStore.lfb.policyholder.clientData.authoritedPerson.birthDate = reformatDate(clientData.authoritedPerson.birthDate) ?? '';
3725
- this.formStore.lfb.policyholder.clientData.authoritedPerson.identityDocument.issuedOn = reformatDate(clientData.authoritedPerson.identityDocument.issuedOn) ?? '';
3726
- this.formStore.lfb.policyholder.clientData.authoritedPerson.identityDocument.validUntil = reformatDate(clientData.authoritedPerson.identityDocument.validUntil) ?? '';
3727
- const gender = this.gender.find((i: Value) => i.id === clientData.authoritedPerson.gender);
3728
- this.formStore.lfb.policyholder.clientData.authoritedPerson.gender = gender ? gender : new Value();
3713
+ this.getClientData(clientData);
3729
3714
 
3730
3715
  if (clientData && clientData.activityTypes !== null) {
3731
3716
  this.formStore.lfb.policyholderActivities = clientData.activityTypes;
@@ -4123,6 +4108,28 @@ export const useDataStore = defineStore('data', {
4123
4108
  return ErrorHandler(err);
4124
4109
  }
4125
4110
  },
4111
+ getClientData(clientData: GroupMember) {
4112
+ this.formStore.lfb.policyholder.clientData = clientData;
4113
+ this.formStore.lfb.policyholder.clientData.authoritedPerson = clientData.authoritedPerson;
4114
+ this.formStore.lfb.policyholder.clientData.iin = reformatIin(clientData.iin);
4115
+ this.formStore.lfb.policyholder.clientData.authoritedPerson.iin = reformatIin(clientData.authoritedPerson.iin);
4116
+ this.formStore.lfb.policyholder.clientData.authoritedPerson.authorityDetails.date = reformatDate(clientData.authoritedPerson.authorityDetails.date as string);
4117
+ this.formStore.lfb.policyholder.clientData.authoritedPerson.birthDate = reformatDate(clientData.authoritedPerson.birthDate) ?? '';
4118
+ this.formStore.lfb.policyholder.clientData.authoritedPerson.identityDocument.issuedOn = reformatDate(clientData.authoritedPerson.identityDocument.issuedOn) ?? '';
4119
+ this.formStore.lfb.policyholder.clientData.authoritedPerson.identityDocument.validUntil = reformatDate(clientData.authoritedPerson.identityDocument.validUntil) ?? '';
4120
+ const gender = this.gender.find((i: Value) => i.id === Number(clientData.authoritedPerson.gender));
4121
+ this.formStore.lfb.policyholder.clientData.authoritedPerson.gender = gender ? gender : new Value();
4122
+ },
4123
+ async getParentApplication(bin: string) {
4124
+ try {
4125
+ const response = await this.api.getParentApplication(bin);
4126
+ if (response) {
4127
+ this.getClientData(response.clientApp.clientData);
4128
+ }
4129
+ } catch (err) {
4130
+ return ErrorHandler(err);
4131
+ }
4132
+ },
4126
4133
  hasJobSection(whichForm: keyof typeof StoreMembers) {
4127
4134
  if (this.isLifetrip || this.isPension || this.isBalam) return false;
4128
4135
  switch (whichForm) {
package/store/rules.ts CHANGED
@@ -6,6 +6,7 @@ const t = i18n.t;
6
6
  export const rules = {
7
7
  recalculationMultiply: [(v: any) => (v !== null && v !== '' && v >= 100) || t('toaster.valueShouldBeHigher', { text: '100' })],
8
8
  recalculationMultiplyBetween: [(v: any) => (v !== null && v !== '' && v >= 100 && v <= 200) || t('toaster.recalculationMultiplyBetween', { floor: '100', ceil: '200' })],
9
+ recalculationMultiplyBetween50And200: [(v: any) => (v !== null && v !== '' && v >= 50 && v <= 200) || t('toaster.recalculationMultiplyBetween', { floor: '50', ceil: '200' })],
9
10
  recalculationAdditive: [(v: any) => (v !== null && v !== '' && v <= 100 && v >= 0) || t('toaster.valueShouldBeBetween', { floor: '0', ceil: '100' })],
10
11
  required: [(v: any) => !!v || t('rules.required')],
11
12
  notZero: [(v: any) => Number(v) !== 0 || 'Не может быть равно нулю'],
package/types/enum.ts CHANGED
@@ -62,7 +62,7 @@ export enum Actions {
62
62
  annulmentCustom = 'annulmentCustom',
63
63
 
64
64
  otrs = 'otrs',
65
- otrsCustom = 'otrsCustom'
65
+ otrsCustom = 'otrsCustom',
66
66
  }
67
67
 
68
68
  export enum PostActions {
@@ -112,10 +112,12 @@ export enum Roles {
112
112
  SettlementLosses = 'SettlementLosses',
113
113
  HeadSettlementLosses = 'HeadSettlementLosses',
114
114
  DsoDirector = 'DsoDirector',
115
+ Archivist = 'Archivist',
115
116
  AccountantDirector = 'AccountantDirector',
116
117
  ManagerAuletti = 'ManagerAuletti',
117
118
  HeadOfDso = 'HeadOfDso',
118
119
  URSP = 'URSP',
120
+ Archivist = 'Archivist',
119
121
  }
120
122
 
121
123
  export enum Statuses {