hl-core 0.0.10-beta.23 → 0.0.10-beta.25

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
@@ -984,25 +984,41 @@ export class ApiClass {
984
984
  url: `${this.pensionannuityNew.base}/GetEnpfRedirectUrl?id=${id}`,
985
985
  });
986
986
  },
987
- setEnpfSharedId: async (sharedId: string, infoId: string) => {
987
+ setEnpfSharedId: async (sharedId: string, infoId: string, isProd: boolean) => {
988
988
  return await this.axiosCall<void>({
989
989
  method: Methods.POST,
990
- baseURL: getStrValuePerEnv('efoBaseApi'),
990
+ baseURL: isProd === false ? getStrValuePerEnv('efoBaseApi').replace('kz/efo', 'kz/test/efo') : getStrValuePerEnv('efoBaseApi'),
991
991
  url: `${this.pensionannuityNew.base}/SetEnpfSharedId/${sharedId}/${infoId}`,
992
992
  });
993
993
  },
994
+ calcParentContractSums: async (data: any) => {
995
+ return await this.axiosCall<void>({
996
+ method: Methods.POST,
997
+ baseURL: getStrValuePerEnv('efoBaseApi'),
998
+ url: `${this.pensionannuityNew.base}/CalcParentContractSums`,
999
+ data: data,
1000
+ });
1001
+ },
1002
+ reCalculateRefund: async (data: any) => {
1003
+ return await this.axiosCall<void>({
1004
+ method: Methods.POST,
1005
+ baseURL: getStrValuePerEnv('efoBaseApi'),
1006
+ url: `${this.pensionannuityNew.base}/ReCalculateRefund`,
1007
+ data: data,
1008
+ });
1009
+ },
994
1010
  };
995
1011
 
996
1012
  externalServices = {
997
1013
  base: '/externalservices',
998
- onlineAccess: async (data: { iinBin: string; documentType: string }) => {
999
- return await this.axiosCall<void>({
1014
+ getOnlineAccess: async (data: { iinBin: string; documentType: string }) => {
1015
+ return await this.axiosCall<{ code: string; message: string }>({
1000
1016
  method: Methods.POST,
1001
1017
  url: `${this.externalServices.base}/api/ExternalServices/GetOnlineAccess`,
1002
1018
  data: data,
1003
1019
  });
1004
1020
  },
1005
- digitalDocuments: async (data: { iin: string; processInstanceId: string; code: string }) => {
1021
+ getDigitalDocuments: async (data: { iin: string; processInstanceId: string; code: string }) => {
1006
1022
  return await this.axiosCall<void>({
1007
1023
  method: Methods.POST,
1008
1024
  url: `${this.externalServices.base}/api/ExternalServices/DigitalDocuments`,
@@ -1085,6 +1101,16 @@ export class ApiClass {
1085
1101
  },
1086
1102
  });
1087
1103
  },
1104
+ getFileNew: async (id: string) => {
1105
+ return await this.axiosCall({
1106
+ method: Methods.GET,
1107
+ url: `${this.file.base}/api/GeneralSign/DownloadFile/${id}`,
1108
+ responseType: 'arraybuffer',
1109
+ headers: {
1110
+ 'Content-Type': 'application/pdf',
1111
+ },
1112
+ });
1113
+ },
1088
1114
  deleteFile: async (data: any) => {
1089
1115
  return await this.axiosCall<void>({
1090
1116
  method: Methods.POST,
@@ -1131,5 +1157,12 @@ export class ApiClass {
1131
1157
  data: data,
1132
1158
  });
1133
1159
  },
1160
+ setActualEnpf: async (data: { processId: string; isOnlineEnpfAgreement: boolean }) => {
1161
+ return await this.axiosCall<void>({
1162
+ method: Methods.POST,
1163
+ url: `${this.file.base}/api/GeneralSign/SetActualEnpfAgreement`,
1164
+ data: data,
1165
+ });
1166
+ },
1134
1167
  };
1135
1168
  }
@@ -273,7 +273,7 @@ export default defineComponent({
273
273
  const currentSecond = ref<AnketaSecond>();
274
274
  const isPanelLoading = ref<boolean>(false);
275
275
  const searchQuery = ref<string>('');
276
- const isFirstPanelOnRight = dataStore.isUnderwriter() && !useEnv().isProduction;
276
+ const isFirstPanelOnRight = dataStore.isUnderwriter();
277
277
 
278
278
  const whichMember = computed(() => ('member' in route.query && !!route.query.member ? (route.query.member as 'insured' | 'policyholder') : 'insured'));
279
279
  const isSecondRequired = computed(() => dataStore.controls.isSecondAnketaRequired);
@@ -202,8 +202,8 @@ import type { Base, FileActions } from '../../types';
202
202
 
203
203
  export default defineComponent({
204
204
  setup() {
205
- type DigitalDocNames = 'Удостоверение личности' | 'Паспорт';
206
- type DigitalDocTypes = 'IdentityCard' | 'Passport';
205
+ type DigitalDocNames = 'Удостоверение личности' | 'Паспорт' | 'Вид на жительство иностранного гражданина';
206
+ type DigitalDocTypes = 'IdentityCard' | 'Passport' | 'Vnzh';
207
207
 
208
208
  const route = useRoute();
209
209
  const dataStore = useDataStore();
@@ -224,10 +224,11 @@ export default defineComponent({
224
224
  const documentType = ref<DigitalDocNames | null>(null);
225
225
  const otpCode = ref<string>('');
226
226
  const currentIin = ref<string>('');
227
- const deleteFilesId = ['1', '2', '46'];
227
+ const deleteFilesId = ['1', '2', '4', '46'];
228
228
  const documentItems: Array<{ title: DigitalDocNames; value: DigitalDocTypes }> = [
229
229
  { title: 'Удостоверение личности', value: 'IdentityCard' },
230
230
  { title: 'Паспорт', value: 'Passport' },
231
+ { title: 'Вид на жительство иностранного гражданина', value: 'Vnzh' },
231
232
  ];
232
233
  const signedContract = reactive<{
233
234
  processInstanceId: string | number;
@@ -293,7 +294,7 @@ export default defineComponent({
293
294
  const policyholderForm = computed(() => formStore.policyholderForm as Base.Document.Digital);
294
295
  const insuredFiltered = computed(() => formStore.insuredForm.filter(i => i.iin !== formStore.policyholderForm.iin) as Base.Document.Digital[]);
295
296
  const beneficiaryFiltered = computed(() => formStore.beneficiaryForm.filter(i => i.iin !== formStore.policyholderForm.iin) as Base.Document.Digital[]);
296
- const documentListFiltered = computed(() => formStore.signedDocumentList.filter(i => !['1', '2'].includes(String(i.fileTypeCode))));
297
+ const documentListFiltered = computed(() => formStore.signedDocumentList.filter(i => !['1', '2', '4'].includes(String(i.fileTypeCode))));
297
298
 
298
299
  const openPanel = async (document: DocumentItem) => {
299
300
  dataStore.rightPanel.title = document.fileTypeName!;
@@ -414,7 +415,7 @@ export default defineComponent({
414
415
  dataStore.rightPanel.open = false;
415
416
  dataStore.panelAction = null;
416
417
  await dataStore.getSignedDocList(formStore.applicationData.processInstanceId);
417
- if (hasDigitalDocuments.value && (currentDocument.value.fileTypeCode === '1' || currentDocument.value.fileTypeCode === '2')) {
418
+ if (hasDigitalDocuments.value && (currentDocument.value.fileTypeCode === '1' || currentDocument.value.fileTypeCode === '2' || currentDocument.value.fileTypeCode === '4')) {
418
419
  getDigitalDocs();
419
420
  }
420
421
  }
@@ -426,7 +427,7 @@ export default defineComponent({
426
427
  return;
427
428
  }
428
429
  documentLoading.value = true;
429
- const response = await dataStore.onlineAccess(currentIin.value, String(documentType.value));
430
+ const response = await dataStore.getOnlineAccess(currentIin.value, String(documentType.value));
430
431
  if (response) {
431
432
  dataStore.showToaster('success', dataStore.t('toaster.successOtp'), 3000);
432
433
  }
@@ -434,12 +435,16 @@ export default defineComponent({
434
435
  };
435
436
 
436
437
  const getDigitalDocument = async () => {
438
+ if (!documentType.value) {
439
+ dataStore.showToaster('error', 'Выберите тип документа', 3000);
440
+ return;
441
+ }
437
442
  if (!otpCode.value) {
438
443
  dataStore.showToaster('error', 'Введите код подтверждения', 3000);
439
444
  return;
440
445
  }
441
446
  documentLoading.value = true;
442
- const response = await dataStore.digitalDocuments(currentIin.value, String(formStore.applicationData.processInstanceId), otpCode.value);
447
+ const response = await dataStore.getDigitalDocuments(currentIin.value, String(formStore.applicationData.processInstanceId), otpCode.value);
443
448
  if (response) {
444
449
  await dataStore.getSignedDocList(formStore.applicationData.processInstanceId);
445
450
  getDigitalDocs();
@@ -455,7 +460,9 @@ export default defineComponent({
455
460
  const findCommonDocs = (members: Base.Document.Digital[]) => {
456
461
  let commonDocs: IDocument[] = [];
457
462
  for (let member of members) {
458
- const matchingDoc = formStore.signedDocumentList.find(doc => doc.iin === String(member.iin).replaceAll('-', '') && (doc.fileTypeCode === '1' || doc.fileTypeCode === '2'));
463
+ const matchingDoc = formStore.signedDocumentList.find(
464
+ doc => doc.iin === String(member.iin).replaceAll('-', '') && (doc.fileTypeCode === '1' || doc.fileTypeCode === '2' || doc.fileTypeCode === '4'),
465
+ );
459
466
  if (matchingDoc) commonDocs.push(matchingDoc);
460
467
  }
461
468
  return commonDocs;
@@ -828,7 +828,8 @@ export default {
828
828
  const memberStore = useMemberStore();
829
829
  const whichForm = computed(() => route.query.tab as keyof typeof StoreMembers);
830
830
  const whichIndex = computed(() => route.query.i as string);
831
- const getMember = (whichForm: keyof typeof StoreMembers, whichIndex?: string) => memberStore.getMemberFromStore(whichForm, Number((whichIndex ? whichIndex : '0') as string))!;
831
+ const getMember = (whichForm: keyof typeof StoreMembers | 'slaveInsuredForm', whichIndex?: string) =>
832
+ memberStore.getMemberFromStore(whichForm, Number((whichIndex ? whichIndex : '0') as string))!;
832
833
  const member = ref(getMember(whichForm.value, whichIndex.value));
833
834
  const selectedFamilyMember = ref<Api.GKB.BirthInfo>({});
834
835
  const isPanelOpen = ref<boolean>(false);
@@ -843,7 +844,7 @@ export default {
843
844
  const isPositionPanelOpen = ref<boolean>(false);
844
845
  const isPanelLoading = ref<boolean>(false);
845
846
  const isChangingMember = ref<boolean>(false);
846
- const isNonResident = computed(() => !useEnv().isProduction && dataStore.isPension && member.value.signOfResidency.ids === '500011.2');
847
+ const isNonResident = computed(() => !useEnv().isProduction && dataStore.isPension && member.value.signOfResidency?.ids === '500011.2');
847
848
  const familyDialog = ref<boolean>(false);
848
849
  const deletionDialog = ref<boolean>(false);
849
850
  const documentChooseDialog = ref<boolean>(false);
@@ -869,7 +870,9 @@ export default {
869
870
  const hasOtp = computed(() => member.value.otpCode && member.value.otpCode.length === useMask().otp.length);
870
871
  const isDisabled = computed(() => !memberStore.isStatementEditible(whichForm.value));
871
872
  const isTask = computed(() => route.params.taskId === '0' || dataStore.isTask());
872
- const isIinPhoneDisabled = computed(() => member.value.hasAgreement);
873
+ const isIinPhoneDisabled = computed(() =>
874
+ dataStore.isPension ? !!member.value.hasAgreement && member.value.phoneNumber && member.value.phoneNumber.length == 11 && !!member.value.iin : member.value.hasAgreement,
875
+ );
873
876
  const isFromGBD = computed(() => !!member.value.gosPersonData);
874
877
  const gbdDocuments = computed(() => {
875
878
  if (hasGBDFLDocSelection && !!member.value.gosPersonData && !!member.value.gosPersonData.documents) {
@@ -896,6 +899,7 @@ export default {
896
899
  case formStore.policyholdersRepresentativeFormKey:
897
900
  return route.params.taskId !== '0';
898
901
  default:
902
+ if (route.query.tab === 'slaveInsuredForm') return true;
899
903
  return false;
900
904
  }
901
905
  };
@@ -1082,12 +1086,13 @@ export default {
1082
1086
  case formStore.policyholderFormKey:
1083
1087
  return route.params.taskId === '0';
1084
1088
  case formStore.insuredFormKey:
1085
- if (dataStore.isPension && formStore.applicationData.processCode === 19) return route.params.taskId === '0';
1086
1089
  return route.query.id === '0';
1087
1090
  case formStore.policyholdersRepresentativeFormKey:
1088
1091
  case formStore.beneficiaryFormKey:
1089
1092
  case formStore.beneficialOwnerFormKey:
1090
1093
  return route.query.id === '0';
1094
+ default:
1095
+ if (dataStore.isPension && formStore.applicationData.processCode === 2 && route.query.tab === 'slaveInsuredForm') return true;
1091
1096
  }
1092
1097
  };
1093
1098
  const otpCondition = computed(() => {
@@ -1522,6 +1527,7 @@ export default {
1522
1527
  };
1523
1528
 
1524
1529
  const getContragentClick = async (contragent: ContragentType) => {
1530
+ isButtonLoading.value = true;
1525
1531
  await dataStore.serializeContragentData(member.value, contragent);
1526
1532
  fioChooseDialog.value = false;
1527
1533
  isButtonLoading.value = false;
@@ -1665,17 +1671,40 @@ export default {
1665
1671
  }
1666
1672
  }
1667
1673
  }
1668
- if (whichForm.value === formStore.insuredFormKey) {
1674
+ if (whichForm.value === formStore.insuredFormKey || memberFromApplicaiton.processInstanceId === formStore.applicationData.slave?.processInstanceId) {
1669
1675
  wasInsuredAction.value = true;
1670
1676
  if (dataStore.isPension) {
1671
- formStore.applicationData.pensionApp = {
1672
- ...formStore.applicationData.pensionApp,
1673
- account: member.value.bankInfo.iik,
1674
- bankBik: member.value.bankInfo.bik,
1675
- bankBin: member.value.bankInfo.bankName.ids,
1676
- bankId: member.value.bankInfo.bankName.id,
1677
- bankName: member.value.bankInfo.bankName.nameRu,
1678
- };
1677
+ if (route.query.tab === 'slaveInsuredForm') {
1678
+ formStore.applicationData.slave.pensionApp = {
1679
+ ...formStore.applicationData.slave.pensionApp,
1680
+ account: member.value.bankInfo.iik,
1681
+ bankBik: member.value.bankInfo.bik,
1682
+ bankBin: member.value.bankInfo.bankName.ids,
1683
+ bankId: member.value.bankInfo.bankName.id,
1684
+ bankName: member.value.bankInfo.bankName.nameRu,
1685
+ guaranteedPeriod: formStore.applicationData.slave.pensionApp.guaranteedPeriod ?? 0,
1686
+ amount: formStore.applicationData.slave.pensionApp.amount ?? 0,
1687
+ compulsoryContractAmount: formStore.applicationData.slave.pensionApp.compulsoryContractAmount ?? 0,
1688
+ voluntaryContractAmount: formStore.applicationData.slave.pensionApp.voluntaryContractAmount ?? 0,
1689
+ ownFundsRaisAmount: formStore.applicationData.slave.pensionApp.ownFundsRaisAmount ?? 0,
1690
+ compulsoryProfContractAmount: formStore.applicationData.slave.pensionApp.compulsoryProfContractAmount ?? 0,
1691
+ };
1692
+ } else {
1693
+ formStore.applicationData.pensionApp = {
1694
+ ...formStore.applicationData.pensionApp,
1695
+ account: member.value.bankInfo.iik,
1696
+ bankBik: member.value.bankInfo.bik,
1697
+ bankBin: member.value.bankInfo.bankName.ids,
1698
+ bankId: member.value.bankInfo.bankName.id,
1699
+ bankName: member.value.bankInfo.bankName.nameRu,
1700
+ guaranteedPeriod: formStore.applicationData.pensionApp.guaranteedPeriod ?? 0,
1701
+ amount: formStore.applicationData.pensionApp.amount ?? 0,
1702
+ compulsoryContractAmount: formStore.applicationData.pensionApp.compulsoryContractAmount ?? 0,
1703
+ voluntaryContractAmount: formStore.applicationData.pensionApp.voluntaryContractAmount ?? 0,
1704
+ ownFundsRaisAmount: formStore.applicationData.pensionApp.ownFundsRaisAmount ?? 0,
1705
+ compulsoryProfContractAmount: formStore.applicationData.pensionApp.compulsoryProfContractAmount ?? 0,
1706
+ };
1707
+ }
1679
1708
  const data = {
1680
1709
  ...formStore.applicationData.pensionApp,
1681
1710
  transferContractCompany: formStore.applicationData.pensionApp.transferContractCompany?.nameRu ?? null,
@@ -1683,6 +1712,7 @@ export default {
1683
1712
  const isApplicationSaved = await dataStore.setApplication(data);
1684
1713
  if (isApplicationSaved === false) return;
1685
1714
  dataStore.showToaster('info', dataStore.t('toaster.needToRecalculate'), 5000);
1715
+ await dataStore.saveMember(member.value, 'Client', memberFromApplicaiton);
1686
1716
  }
1687
1717
  }
1688
1718
  await router.replace({
@@ -1770,7 +1800,7 @@ export default {
1770
1800
  isSubmittingForm.value = false;
1771
1801
  return;
1772
1802
  }
1773
- if (formStore.applicationData.pensionApp) {
1803
+ if (formStore.applicationData.pensionApp && whichForm.value === 'insuredForm') {
1774
1804
  formStore.applicationData.pensionApp.account = member.value.bankInfo.iik;
1775
1805
  formStore.applicationData.pensionApp.bankBik = member.value.bankInfo.bik;
1776
1806
  formStore.applicationData.pensionApp.bankBin = member.value.bankInfo.bin;
@@ -1791,7 +1821,7 @@ export default {
1791
1821
  isSubmittingForm.value = false;
1792
1822
  return;
1793
1823
  }
1794
- if (formStore.applicationData.pensionApp) {
1824
+ if (formStore.applicationData.pensionApp && whichForm.value === 'insuredForm') {
1795
1825
  formStore.applicationData.pensionApp.account = member.value.bankInfo.iik;
1796
1826
  formStore.applicationData.pensionApp.bankBik = member.value.bankInfo.bik;
1797
1827
  formStore.applicationData.pensionApp.bankBin = member.value.bankInfo.bin;
@@ -1977,12 +2007,10 @@ export default {
1977
2007
  member.value.documentDate = reformatDate(userDocument.issueDate);
1978
2008
  member.value.documentExpire = reformatDate(userDocument.expireDate);
1979
2009
  }
1980
-
1981
2010
  // const filteredDocuments: DocumentItem[] = dataStore.getFilesByIIN(member.value.iin!.replace(/-/g, '')) as DocumentItem[];
1982
2011
  // if (filteredDocuments && filteredDocuments.length) memberDocument.value = filteredDocuments[0];
1983
2012
  }
1984
2013
  await setDefaultValues();
1985
- if (Number(formStore.applicationData.processCode) === 4) dataStore.members.insuredApp.isMultiple = true;
1986
2014
  if (hasWorkPositionDict && member.value.positionCode === null) member.value.jobPosition = null;
1987
2015
  };
1988
2016
  onMounted(async () => {
@@ -2032,7 +2060,7 @@ export default {
2032
2060
  );
2033
2061
 
2034
2062
  const onIinInput = () => {
2035
- if (!!member.value.iin && member.value.iin.length === useMask().iin.length && memberSetting.value.isMultiple === true) {
2063
+ if (!!member.value.iin && member.value.iin.length === useMask().iin.length && memberSetting.value?.isMultiple === true) {
2036
2064
  const alreadyInStatement = formStore[whichForm.value as MultipleMember].findIndex((i: Member) => i.iin === member.value.iin);
2037
2065
  if (alreadyInStatement !== -1 && alreadyInStatement !== Number(whichIndex.value)) {
2038
2066
  dataStore.showToaster('error', dataStore.t('toaster.hasAlreadyMember'), 3000);
@@ -2096,15 +2124,17 @@ export default {
2096
2124
  );
2097
2125
  }
2098
2126
  if (dataStore.isPension) {
2099
- watch(
2100
- () => member.value.bankInfo.bankName,
2101
- val => {
2102
- if (val) {
2103
- member.value.bankInfo.bik = val.code as string;
2104
- member.value.bankInfo.bin = reformatIin(val.ids as string);
2105
- }
2106
- },
2107
- );
2127
+ if (member.value.bankInfo) {
2128
+ watch(
2129
+ () => member.value.bankInfo.bankName,
2130
+ val => {
2131
+ if (val) {
2132
+ member.value.bankInfo.bik = val.code as string;
2133
+ member.value.bankInfo.bin = reformatIin(val.ids as string);
2134
+ }
2135
+ },
2136
+ );
2137
+ }
2108
2138
  watch(
2109
2139
  () => member.value.isDisability,
2110
2140
  val => {