hl-core 0.0.9-beta.5 → 0.0.9-beta.50

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.
Files changed (63) hide show
  1. package/api/base.api.ts +935 -0
  2. package/api/index.ts +2 -620
  3. package/api/interceptors.ts +53 -14
  4. package/components/Button/Btn.vue +2 -2
  5. package/components/Complex/MessageBlock.vue +2 -2
  6. package/components/Complex/Page.vue +1 -1
  7. package/components/Dialog/Dialog.vue +60 -15
  8. package/components/Form/DynamicForm.vue +100 -0
  9. package/components/Form/FormBlock.vue +12 -3
  10. package/components/Form/FormData.vue +110 -0
  11. package/components/Form/FormSection.vue +3 -3
  12. package/components/Form/FormToggle.vue +25 -5
  13. package/components/Form/ManagerAttachment.vue +150 -86
  14. package/components/Form/ProductConditionsBlock.vue +59 -6
  15. package/components/Input/Datepicker.vue +39 -8
  16. package/components/Input/DynamicInput.vue +23 -0
  17. package/components/Input/FileInput.vue +25 -5
  18. package/components/Input/FormInput.vue +2 -4
  19. package/components/Input/Monthpicker.vue +34 -0
  20. package/components/Input/PanelInput.vue +5 -1
  21. package/components/Input/RoundedEmptyField.vue +5 -0
  22. package/components/Input/RoundedSelect.vue +13 -0
  23. package/components/Input/SwitchInput.vue +64 -0
  24. package/components/Input/TextInput.vue +160 -0
  25. package/components/Layout/Drawer.vue +17 -4
  26. package/components/Layout/Header.vue +23 -2
  27. package/components/Layout/Loader.vue +1 -1
  28. package/components/Layout/SettingsPanel.vue +13 -7
  29. package/components/Menu/InfoMenu.vue +35 -0
  30. package/components/Menu/MenuNav.vue +17 -2
  31. package/components/Pages/Anketa.vue +140 -52
  32. package/components/Pages/Auth.vue +42 -7
  33. package/components/Pages/ContragentForm.vue +124 -50
  34. package/components/Pages/Documents.vue +72 -7
  35. package/components/Pages/InvoiceInfo.vue +1 -1
  36. package/components/Pages/MemberForm.vue +369 -100
  37. package/components/Pages/ProductAgreement.vue +1 -8
  38. package/components/Pages/ProductConditions.vue +888 -181
  39. package/components/Panel/PanelHandler.vue +414 -45
  40. package/components/Panel/PanelSelectItem.vue +17 -2
  41. package/components/Panel/RightPanelCloser.vue +7 -0
  42. package/components/Transitions/Animation.vue +28 -0
  43. package/components/Utilities/Qr.vue +44 -0
  44. package/composables/axios.ts +1 -0
  45. package/composables/classes.ts +433 -8
  46. package/composables/constants.ts +102 -2
  47. package/composables/fields.ts +328 -0
  48. package/composables/index.ts +257 -12
  49. package/composables/styles.ts +29 -16
  50. package/layouts/default.vue +48 -3
  51. package/locales/ru.json +480 -14
  52. package/package.json +27 -24
  53. package/pages/Token.vue +1 -12
  54. package/plugins/vuetifyPlugin.ts +2 -0
  55. package/store/data.store.ts +1190 -248
  56. package/store/extractStore.ts +17 -0
  57. package/store/form.store.ts +13 -1
  58. package/store/member.store.ts +1 -1
  59. package/store/rules.ts +66 -5
  60. package/types/enum.ts +43 -0
  61. package/types/env.d.ts +1 -0
  62. package/types/form.ts +94 -0
  63. package/types/index.ts +254 -21
@@ -71,6 +71,13 @@ export class Value {
71
71
  this.ids = ids;
72
72
  }
73
73
  }
74
+ export class CountryValue extends Value {
75
+ countryTypeCode: string | number | null;
76
+ constructor(countryTypeCode = null, ...args: any) {
77
+ super(...args);
78
+ this.countryTypeCode = countryTypeCode;
79
+ }
80
+ }
74
81
 
75
82
  export class IDocument {
76
83
  id?: string;
@@ -194,6 +201,8 @@ class Person {
194
201
  longName: string | null;
195
202
  lastName: string | null;
196
203
  firstName: string | null;
204
+ firstNameLat?: string | null;
205
+ lastNameLat?: string | null;
197
206
  middleName: string | null;
198
207
  birthDate: string | null;
199
208
  gender: Value;
@@ -438,10 +447,12 @@ export class Member extends Person {
438
447
  _emailPattern: RegExp;
439
448
  gotFromInsis: boolean | null;
440
449
  gosPersonData: any;
450
+ parsedDocument: any;
441
451
  hasAgreement: boolean | null;
442
452
  otpTokenId: string | null;
443
453
  otpCode: string | null;
444
454
  documentsList: ContragentDocuments[];
455
+ isInsuredUnderage?: boolean = false;
445
456
  constructor(
446
457
  id = 0,
447
458
  type = 1,
@@ -566,12 +577,13 @@ export class Member extends Person {
566
577
  this.isDisability = isDisability;
567
578
  this.disabilityGroup = disabilityGroupId;
568
579
  this.percentageOfPayoutAmount = percentageOfPayoutAmount;
569
- this._cyrPattern = /[\u0400-\u04FF]+/;
580
+ this._cyrPattern = /[\u0400-\u04FF -]+/;
570
581
  this._numPattern = /[0-9]+/;
571
582
  this._phonePattern = /\(?([0-9]{3})\)?([ .-]?)([0-9]{3})\2([0-9]{4})/;
572
583
  this._emailPattern = /.+@.+\..+/;
573
584
  this.gotFromInsis = true;
574
585
  this.gosPersonData = null;
586
+ this.parsedDocument = null;
575
587
  this.hasAgreement = null;
576
588
  }
577
589
 
@@ -615,6 +627,7 @@ export class Member extends Person {
615
627
  this.percentageOfPayoutAmount = null;
616
628
  this.gotFromInsis = true;
617
629
  this.gosPersonData = null;
630
+ this.parsedDocument = null;
618
631
  this.hasAgreement = null;
619
632
  this.insurancePay = new Value();
620
633
  this.migrationCard = null;
@@ -660,6 +673,43 @@ export class Member extends Person {
660
673
  }
661
674
  }
662
675
 
676
+ export class CalculatorForm {
677
+ country: Value;
678
+ countries: CountryValue[] | null;
679
+ purpose: Value;
680
+ workType: Value;
681
+ sportsType: Value;
682
+ type: Value;
683
+ days: string | number | null;
684
+ maxDays: Value;
685
+ age: string | null;
686
+ price: string | null;
687
+ professionType: Value;
688
+ amount: Value;
689
+ startDate: string | null;
690
+ endDate: string | null;
691
+ period: Value;
692
+ currency: string | null;
693
+ constructor() {
694
+ this.country = new Value();
695
+ this.countries = [];
696
+ this.purpose = new Value();
697
+ this.workType = new Value();
698
+ this.sportsType = new Value();
699
+ this.type = new Value();
700
+ this.days = null;
701
+ this.maxDays = new Value();
702
+ this.age = null;
703
+ this.price = null;
704
+ this.professionType = new Value();
705
+ this.amount = new Value();
706
+ this.startDate = null;
707
+ this.endDate = null;
708
+ this.period = new Value();
709
+ this.currency = null;
710
+ }
711
+ }
712
+
663
713
  export class ProductConditions {
664
714
  signDate: string | null;
665
715
  birthDate: string | null;
@@ -670,6 +720,7 @@ export class ProductConditions {
670
720
  termsOfInsurance: string | null;
671
721
  annualIncome: string | null;
672
722
  processIndexRate: Value;
723
+ processGfot: Value;
673
724
  requestedSumInsured: number | string | null;
674
725
  requestedSumInsuredInDollar: number | string | null;
675
726
  insurancePremiumPerMonth: number | string | null;
@@ -700,6 +751,15 @@ export class ProductConditions {
700
751
  termAnnuityPayments: number | string | null;
701
752
  periodAnnuityPayment: Value;
702
753
  amountAnnuityPayments: number | string | null;
754
+ isRecalculated: boolean;
755
+ totalAmount5: number | string | null;
756
+ totalAmount7: number | string | null;
757
+ statePremium5: number | string | null;
758
+ statePremium7: number | string | null;
759
+ calculatorForm: CalculatorForm;
760
+ agentCommission: number | null;
761
+ fixInsSum: number | string | null;
762
+
703
763
  constructor(
704
764
  insuranceCase = null,
705
765
  coverPeriod = null,
@@ -707,6 +767,7 @@ export class ProductConditions {
707
767
  termsOfInsurance = null,
708
768
  annualIncome = null,
709
769
  processIndexRate = new Value(),
770
+ processGfot = new Value(),
710
771
  requestedSumInsured = null,
711
772
  insurancePremiumPerMonth = null,
712
773
  establishingGroupDisabilityFromThirdYear = null,
@@ -735,6 +796,14 @@ export class ProductConditions {
735
796
  termAnnuityPayments = null,
736
797
  periodAnnuityPayment = new Value(),
737
798
  amountAnnuityPayments = null,
799
+ isRecalculated = false,
800
+ totalAmount5 = null,
801
+ totalAmount7 = null,
802
+ statePremium5 = null,
803
+ statePremium7 = null,
804
+ calculatorForm = new CalculatorForm(),
805
+ agentCommission = null,
806
+ fixInsSum = null,
738
807
  ) {
739
808
  this.requestedSumInsuredInDollar = null;
740
809
  this.insurancePremiumPerMonthInDollar = null;
@@ -747,6 +816,7 @@ export class ProductConditions {
747
816
  this.termsOfInsurance = termsOfInsurance;
748
817
  this.annualIncome = annualIncome;
749
818
  this.processIndexRate = processIndexRate;
819
+ this.processGfot = processGfot;
750
820
  this.requestedSumInsured = requestedSumInsured;
751
821
  this.insurancePremiumPerMonth = insurancePremiumPerMonth;
752
822
  this.establishingGroupDisabilityFromThirdYear = establishingGroupDisabilityFromThirdYear;
@@ -775,6 +845,27 @@ export class ProductConditions {
775
845
  this.termAnnuityPayments = termAnnuityPayments;
776
846
  this.periodAnnuityPayment = periodAnnuityPayment;
777
847
  this.amountAnnuityPayments = amountAnnuityPayments;
848
+ this.isRecalculated = isRecalculated;
849
+ this.totalAmount5 = totalAmount5;
850
+ this.totalAmount7 = totalAmount7;
851
+ this.statePremium5 = statePremium5;
852
+ this.statePremium7 = statePremium7;
853
+ this.calculatorForm = calculatorForm;
854
+ this.agentCommission = agentCommission;
855
+ this.fixInsSum = fixInsSum;
856
+ }
857
+ getSingleTripDays() {
858
+ if (this.calculatorForm.startDate && this.calculatorForm.endDate) {
859
+ const date1 = formatDate(this.calculatorForm.startDate);
860
+ const date2 = formatDate(this.calculatorForm.endDate);
861
+ if (date1 && date2) {
862
+ const days = Math.ceil((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24)) + 1;
863
+ if (days > 0) {
864
+ return days;
865
+ }
866
+ }
867
+ }
868
+ return null;
778
869
  }
779
870
  }
780
871
 
@@ -804,6 +895,9 @@ export class DataStoreClass {
804
895
  setDefaults: {
805
896
  sectorCode: boolean;
806
897
  percentage: boolean;
898
+ signOfResidency: boolean;
899
+ countryOfTaxResidency: boolean;
900
+ countryOfCitizenship: boolean;
807
901
  };
808
902
  // Проверка на роль при авторизации
809
903
  onAuth: boolean;
@@ -811,6 +905,8 @@ export class DataStoreClass {
811
905
  hasAgreement: boolean;
812
906
  // Наличие анкеты
813
907
  hasAnketa: boolean;
908
+ // Обязательность доп анкеты
909
+ isSecondAnketaRequired: boolean;
814
910
  // Подтягивание с ГБДФЛ
815
911
  hasGBDFL: boolean;
816
912
  // Подтягивание с ГКБ
@@ -823,6 +919,10 @@ export class DataStoreClass {
823
919
  hasAttachment: boolean;
824
920
  // Решение АС
825
921
  hasAffiliation: boolean;
922
+ // Выбор метода подписания
923
+ hasChooseSign: boolean;
924
+ // Выбор метода оплаты
925
+ hasChoosePay: boolean;
826
926
  };
827
927
  members: {
828
928
  clientApp: MemberSettings;
@@ -834,6 +934,7 @@ export class DataStoreClass {
834
934
  iframeLoading: boolean;
835
935
  hasLayoutMargins: boolean;
836
936
  readonly product: Projects | null;
937
+ readonly parentProduct: 'efo' | 'auletti';
837
938
  showNav: boolean;
838
939
  menuItems: MenuItem[];
839
940
  menu: {
@@ -842,6 +943,9 @@ export class DataStoreClass {
842
943
  loading: boolean;
843
944
  backIcon: string;
844
945
  moreIcon: string;
946
+ hasInfo: boolean;
947
+ infoIcon: string;
948
+ infoItems: MenuItem[];
845
949
  onBack: any;
846
950
  onLink: any;
847
951
  selectedItem: MenuItem;
@@ -858,7 +962,13 @@ export class DataStoreClass {
858
962
  open: boolean;
859
963
  overlay: boolean;
860
964
  title: string;
861
- clear: Function | void;
965
+ clear: () => void;
966
+ };
967
+ rightPanel: {
968
+ open: boolean;
969
+ overlay: boolean;
970
+ title: string;
971
+ clear: () => void;
862
972
  };
863
973
  historyPageIndex: number;
864
974
  historyPageSize: number;
@@ -879,12 +989,16 @@ export class DataStoreClass {
879
989
  documentIssuers: Value[];
880
990
  familyStatuses: Value[];
881
991
  relations: Value[];
992
+ banks: Value[];
993
+ processTariff: Value[];
882
994
  insurancePay: Value[];
883
995
  questionRefs: Value[];
884
996
  residents: Value[];
885
997
  ipdl: Value[];
886
998
  economySectorCode: Value[];
999
+ economicActivityType: Value[];
887
1000
  gender: Value[];
1001
+ authorityBasis: Value[];
888
1002
  fontSize: number;
889
1003
  isFontChangerOpen: boolean = false;
890
1004
  isLoading: boolean = false;
@@ -892,6 +1006,7 @@ export class DataStoreClass {
892
1006
  accessToken: string | null = null;
893
1007
  refreshToken: string | null = null;
894
1008
  processIndexRate: Value[];
1009
+ processGfot: Value[];
895
1010
  processPaymentPeriod: Value[];
896
1011
  dicAnnuityTypeList: Value[];
897
1012
  processAnnuityPaymentPeriod: Value[];
@@ -908,6 +1023,7 @@ export class DataStoreClass {
908
1023
  ManagerPolicy: Value[];
909
1024
  AgentData: AgentData[];
910
1025
  riskGroup: Value[];
1026
+ DicCoverTypePeriod: Value[];
911
1027
  currencies: {
912
1028
  eur: number | null;
913
1029
  usd: number | null;
@@ -916,6 +1032,17 @@ export class DataStoreClass {
916
1032
  show: (item: MenuItem) => boolean;
917
1033
  disabled: (item: MenuItem) => boolean;
918
1034
  };
1035
+ amountArray: Value[];
1036
+ currency: string | number | null;
1037
+ periodArray: Value[];
1038
+ maxDaysAllArray: Value[];
1039
+ maxDaysFiltered: Value[];
1040
+ dicAllCountries: CountryValue[];
1041
+ dicCountries: CountryValue[];
1042
+ types: Value[];
1043
+ workTypes: Value[];
1044
+ sportsTypes: Value[];
1045
+ purposes: Value[];
919
1046
  constructor() {
920
1047
  this.filters = {
921
1048
  show: (item: MenuItem) => {
@@ -946,9 +1073,13 @@ export class DataStoreClass {
946
1073
  setDefaults: {
947
1074
  sectorCode: true,
948
1075
  percentage: true,
1076
+ signOfResidency: false,
1077
+ countryOfTaxResidency: false,
1078
+ countryOfCitizenship: false,
949
1079
  },
950
1080
  onAuth: false,
951
1081
  hasAnketa: true,
1082
+ isSecondAnketaRequired: true,
952
1083
  hasAgreement: true,
953
1084
  hasGBDFL: true,
954
1085
  hasGKB: false,
@@ -956,10 +1087,13 @@ export class DataStoreClass {
956
1087
  hasCalculator: false,
957
1088
  hasAttachment: true,
958
1089
  hasAffiliation: true,
1090
+ hasChooseSign: false,
1091
+ hasChoosePay: false,
959
1092
  };
960
1093
  this.iframeLoading = false;
961
1094
  this.hasLayoutMargins = true;
962
1095
  this.processIndexRate = [];
1096
+ this.processGfot = [];
963
1097
  this.processPaymentPeriod = [];
964
1098
  this.dicAnnuityTypeList = [];
965
1099
  this.processAnnuityPaymentPeriod = [];
@@ -968,7 +1102,9 @@ export class DataStoreClass {
968
1102
  this.RegionPolicy = [];
969
1103
  this.ManagerPolicy = [];
970
1104
  this.AgentData = [];
1105
+ this.DicCoverTypePeriod = [];
971
1106
  this.product = import.meta.env.VITE_PRODUCT ? (import.meta.env.VITE_PRODUCT as Projects) : null;
1107
+ this.parentProduct = import.meta.env.VITE_PARENT_PRODUCT ? import.meta.env.VITE_PARENT_PRODUCT : 'efo';
972
1108
  this.showNav = true;
973
1109
  this.menuItems = [];
974
1110
  this.menu = {
@@ -977,6 +1113,9 @@ export class DataStoreClass {
977
1113
  loading: false,
978
1114
  backIcon: 'mdi-arrow-left',
979
1115
  moreIcon: 'mdi-dots-vertical',
1116
+ hasInfo: false,
1117
+ infoIcon: 'mdi-information-outline',
1118
+ infoItems: [],
980
1119
  onBack: {},
981
1120
  onLink: {},
982
1121
  selectedItem: new MenuItem(),
@@ -992,13 +1131,24 @@ export class DataStoreClass {
992
1131
  open: false,
993
1132
  overlay: false,
994
1133
  title: '',
995
- clear: function () {
1134
+ clear: () => {
996
1135
  const panelActions = document.getElementById('panel-actions');
997
1136
  if (panelActions) {
998
1137
  panelActions.innerHTML = '';
999
1138
  }
1000
1139
  },
1001
1140
  };
1141
+ this.rightPanel = {
1142
+ open: false,
1143
+ overlay: false,
1144
+ title: '',
1145
+ clear: () => {
1146
+ const panelActions = document.getElementById('right-panel-actions');
1147
+ if (panelActions) {
1148
+ panelActions.innerHTML = '';
1149
+ }
1150
+ },
1151
+ };
1002
1152
  this.panelAction = null;
1003
1153
  this.historyPageIndex = 1;
1004
1154
  this.historyPageSize = 10;
@@ -1019,11 +1169,15 @@ export class DataStoreClass {
1019
1169
  this.documentIssuers = [];
1020
1170
  this.familyStatuses = [];
1021
1171
  this.relations = [];
1172
+ this.processTariff = [];
1173
+ this.banks = [];
1022
1174
  this.insurancePay = [];
1023
1175
  this.residents = [];
1024
1176
  this.ipdl = [new Value(1, null), new Value(2, 'Да'), new Value(3, 'Нет')];
1025
1177
  this.economySectorCode = [];
1178
+ this.economicActivityType = [];
1026
1179
  this.gender = [new Value(0, null), new Value(1, 'Мужской'), new Value(2, 'Женский')];
1180
+ this.authorityBasis = [];
1027
1181
  this.fontSize = 14;
1028
1182
  this.isFontChangerOpen = false;
1029
1183
  this.isLoading = false;
@@ -1075,10 +1229,41 @@ export class DataStoreClass {
1075
1229
  ids: '',
1076
1230
  },
1077
1231
  ];
1232
+ this.amountArray = [];
1233
+ this.currency = null;
1234
+ this.maxDaysAllArray = [];
1235
+ this.periodArray = [];
1236
+ this.maxDaysFiltered = [];
1237
+ this.dicCountries = [];
1238
+ this.dicAllCountries = [];
1239
+ this.types = [];
1240
+ this.purposes = [];
1241
+ this.workTypes = [];
1242
+ this.sportsTypes = [];
1078
1243
  }
1079
1244
  }
1080
1245
 
1081
1246
  export class FormStoreClass {
1247
+ documentName: string | null;
1248
+ regNumber: string | null;
1249
+ policyNumber: string | null;
1250
+ contractDate: string | null;
1251
+ needToScanSignedContract: boolean;
1252
+ isUploadedSignedContract: boolean;
1253
+ signedContractFormData: any;
1254
+ lfb: {
1255
+ clients: ClientV2[];
1256
+ policyholder: PolicyholderClass;
1257
+ hasAccidentIncidents: boolean;
1258
+ accidentIncidents: AccidentIncidents[];
1259
+ policyholderActivities: PolicyholderActivity[];
1260
+ beneficialOwners: BeneficialOwner[];
1261
+ beneficialOwnersIndex: number;
1262
+ isPolicyholderBeneficialOwner: boolean;
1263
+ clientId: string | null;
1264
+ insuredFile: any;
1265
+ isPanelInside: boolean;
1266
+ };
1082
1267
  additionalInsuranceTerms: AddCover[];
1083
1268
  additionalInsuranceTermsWithout: AddCover[];
1084
1269
  signUrls: SignUrlType[];
@@ -1100,8 +1285,6 @@ export class FormStoreClass {
1100
1285
  surveyByHealthBasePolicyholder: AnketaFirst | null;
1101
1286
  surveyByCriticalBase: AnketaFirst | null;
1102
1287
  surveyByCriticalBasePolicyholder: AnketaFirst | null;
1103
- surveyByHealthSecond: AnketaSecond[] | null;
1104
- surveyByCriticalSecond: AnketaSecond[] | null;
1105
1288
  definedAnswersId: {
1106
1289
  surveyByHealthBase: any;
1107
1290
  surveyByCriticalBase: any;
@@ -1120,12 +1303,15 @@ export class FormStoreClass {
1120
1303
  insuredForm: boolean;
1121
1304
  policyholdersRepresentativeForm: boolean;
1122
1305
  productConditionsForm: boolean;
1306
+ calculatorForm: boolean;
1123
1307
  recalculationForm: boolean;
1124
1308
  surveyByHealthBase: boolean;
1125
1309
  surveyByCriticalBase: boolean;
1126
1310
  surveyByHealthBasePolicyholder: boolean;
1127
1311
  surveyByCriticalBasePolicyholder: boolean;
1128
1312
  insuranceDocument: boolean;
1313
+ policyholderActivitiesForm: boolean;
1314
+ accidentStatisticsForm: boolean;
1129
1315
  };
1130
1316
  isPolicyholderInsured: boolean = false;
1131
1317
  isPolicyholderBeneficiary: boolean = false;
@@ -1134,6 +1320,7 @@ export class FormStoreClass {
1134
1320
  isPolicyholderIPDL: boolean = false;
1135
1321
  applicationData: {
1136
1322
  processInstanceId: number | string;
1323
+ regNumber?: string;
1137
1324
  statusCode?: keyof typeof Statuses;
1138
1325
  clientApp?: any;
1139
1326
  insuredApp?: any;
@@ -1164,7 +1351,27 @@ export class FormStoreClass {
1164
1351
  questionnaireByCritical: any[];
1165
1352
  canBeClaimed: boolean | null;
1166
1353
  applicationTaskId: string | null;
1167
- constructor(procuctConditionsTitle?: string) {
1354
+ constructor() {
1355
+ this.regNumber = null;
1356
+ this.policyNumber = null;
1357
+ this.contractDate = null;
1358
+ this.documentName = null;
1359
+ this.isUploadedSignedContract = false;
1360
+ this.needToScanSignedContract = false;
1361
+ this.signedContractFormData = null;
1362
+ this.lfb = {
1363
+ clients: [],
1364
+ policyholder: new PolicyholderClass(),
1365
+ hasAccidentIncidents: true,
1366
+ policyholderActivities: [new PolicyholderActivity()],
1367
+ beneficialOwners: [new BeneficialOwner()],
1368
+ beneficialOwnersIndex: 0,
1369
+ isPolicyholderBeneficialOwner: false,
1370
+ accidentIncidents: [],
1371
+ clientId: null,
1372
+ insuredFile: null,
1373
+ isPanelInside: false,
1374
+ };
1168
1375
  this.additionalInsuranceTerms = [];
1169
1376
  this.additionalInsuranceTermsWithout = [];
1170
1377
  this.signUrls = [];
@@ -1186,8 +1393,6 @@ export class FormStoreClass {
1186
1393
  this.surveyByHealthBasePolicyholder = null;
1187
1394
  this.surveyByCriticalBase = null;
1188
1395
  this.surveyByCriticalBasePolicyholder = null;
1189
- this.surveyByHealthSecond = null;
1190
- this.surveyByCriticalSecond = null;
1191
1396
  this.definedAnswersId = {
1192
1397
  surveyByHealthBase: {},
1193
1398
  surveyByCriticalBase: {},
@@ -1214,12 +1419,15 @@ export class FormStoreClass {
1214
1419
  insuredForm: true,
1215
1420
  policyholdersRepresentativeForm: true,
1216
1421
  productConditionsForm: true,
1422
+ calculatorForm: true,
1217
1423
  recalculationForm: true,
1218
1424
  surveyByHealthBase: true,
1219
1425
  surveyByCriticalBase: true,
1220
1426
  surveyByHealthBasePolicyholder: true,
1221
1427
  surveyByCriticalBasePolicyholder: true,
1222
1428
  insuranceDocument: true,
1429
+ policyholderActivitiesForm: true,
1430
+ accidentStatisticsForm: true,
1223
1431
  };
1224
1432
  this.isPolicyholderInsured = false;
1225
1433
  this.isPolicyholderBeneficiary = false;
@@ -1247,3 +1455,220 @@ export class FormStoreClass {
1247
1455
  this.applicationTaskId = null;
1248
1456
  }
1249
1457
  }
1458
+
1459
+ export class Address {
1460
+ country: Value;
1461
+ region: Value;
1462
+ regionType: Value;
1463
+ city: Value;
1464
+ square: string | null;
1465
+ microdistrict: string | null;
1466
+ street: string | null;
1467
+ houseNumber: string | null;
1468
+ kato: string | null;
1469
+ longName: string | null;
1470
+ longNameKz: string | null;
1471
+ constructor() {
1472
+ this.country = new Value();
1473
+ this.region = new Value();
1474
+ this.regionType = new Value();
1475
+ this.city = new Value();
1476
+ this.square = null;
1477
+ this.microdistrict = null;
1478
+ this.street = null;
1479
+ this.houseNumber = null;
1480
+ this.kato = null;
1481
+ this.longName = null;
1482
+ this.longNameKz = null;
1483
+ }
1484
+ }
1485
+
1486
+ export class PolicyholderActivity {
1487
+ activityTypeName: string | null;
1488
+ empoloyeeCount: string | null;
1489
+ constructor() {
1490
+ this.activityTypeName = null;
1491
+ this.empoloyeeCount = null;
1492
+ }
1493
+ }
1494
+
1495
+ export class BaseGroupClass {
1496
+ id: string | number;
1497
+ longName: string;
1498
+ iin: string;
1499
+ phoneNumber: string;
1500
+ age: string;
1501
+ name: string;
1502
+ nameKz: string;
1503
+ longNameKz: string;
1504
+ citizenship: Value;
1505
+ email: string;
1506
+ resident: Value;
1507
+ taxResidentCountry: Value;
1508
+ addTaxResidency: Value;
1509
+ economySectorCode: Value;
1510
+ hasAttachedFile: boolean;
1511
+ actualAddress: Address;
1512
+ isActualAddressEqualLegalAddres: boolean;
1513
+ legalAddress: Address;
1514
+ identityDocument: {
1515
+ documentType: Value;
1516
+ documentNumber: string;
1517
+ series: string;
1518
+ issuedBy: Value;
1519
+ issuedOn: string;
1520
+ validUntil: string;
1521
+ };
1522
+ bankInfo: BankInfoClass;
1523
+ kbe: string;
1524
+ constructor() {
1525
+ this.id = 0;
1526
+ this.longName = '';
1527
+ this.iin = '';
1528
+ this.phoneNumber = '';
1529
+ this.age = '';
1530
+ this.name = '';
1531
+ this.nameKz = '';
1532
+ this.longNameKz = '';
1533
+ this.citizenship = new Value();
1534
+ this.email = '';
1535
+ this.resident = new Value();
1536
+ this.taxResidentCountry = new Value();
1537
+ this.addTaxResidency = new Value();
1538
+ this.economySectorCode = new Value();
1539
+ this.hasAttachedFile = false;
1540
+ this.actualAddress = new Address();
1541
+ this.isActualAddressEqualLegalAddres = true;
1542
+ this.legalAddress = new Address();
1543
+ this.identityDocument = {
1544
+ documentType: new Value(),
1545
+ documentNumber: '',
1546
+ series: '',
1547
+ issuedBy: new Value(),
1548
+ issuedOn: '',
1549
+ validUntil: '',
1550
+ };
1551
+ this.bankInfo = new BankInfoClass();
1552
+ this.kbe = '';
1553
+ }
1554
+ }
1555
+
1556
+ export class PhysGroupClass extends BaseGroupClass {
1557
+ lastName: string;
1558
+ firstName: string;
1559
+ middleName: string;
1560
+ birthDate: string;
1561
+ gender: Value;
1562
+ placeOfBirth: Value;
1563
+ workDetails: { workplace: string; position: string; jobDuties: string };
1564
+ hasContactPerson: boolean;
1565
+ constructor() {
1566
+ super();
1567
+ this.lastName = '';
1568
+ this.firstName = '';
1569
+ this.middleName = '';
1570
+ this.birthDate = '';
1571
+ this.gender = new Value();
1572
+ this.placeOfBirth = new Value();
1573
+ this.workDetails = { workplace: '', position: '', jobDuties: '' };
1574
+ this.hasContactPerson = false;
1575
+ }
1576
+ }
1577
+
1578
+ export class GroupMember extends PhysGroupClass {
1579
+ isLeader: boolean;
1580
+ authorityDetails: {
1581
+ basis: Value;
1582
+ documentNumber: string | null;
1583
+ date: string | null;
1584
+ };
1585
+ typeOfEconomicActivity: Value;
1586
+ activityTypes: { activityTypeName: string; empoloyeeCount: number }[];
1587
+ beneficalOwnerQuest: { order: number; text: string; answer: boolean | null }[];
1588
+ authoritedPerson: PhysGroupClass;
1589
+ insuredPolicyData: InsuredPolicyType;
1590
+ constructor() {
1591
+ super();
1592
+ // Client
1593
+ this.isLeader = false;
1594
+ this.authorityDetails = {
1595
+ basis: new Value(),
1596
+ documentNumber: null,
1597
+ date: null,
1598
+ };
1599
+ this.typeOfEconomicActivity = new Value();
1600
+ this.activityTypes = [];
1601
+ this.beneficalOwnerQuest = [
1602
+ {
1603
+ order: 0,
1604
+ text: 'Отметка о наличии/отсутствии физического лица (лиц), которому прямо или косвенно принадлежат более 25 % долей участия в уставном капитале либо размещенных (за вычетом привилегированных и выкупленных обществом) акций юридического лица',
1605
+ answer: null,
1606
+ },
1607
+ {
1608
+ order: 1,
1609
+ text: 'Отметка о наличии/отсутствии физического лица (лиц), осуществляющего контроль над юридическим лицом по иным основаниям',
1610
+ answer: null,
1611
+ },
1612
+ {
1613
+ order: 2,
1614
+ text: 'Отметка о наличии/отсутствии физического лица (лиц) в интересах которого юридическим лицом устанавливаются деловые отношения (совершаются операции)',
1615
+ answer: null,
1616
+ },
1617
+ ];
1618
+ this.authoritedPerson = new PhysGroupClass();
1619
+ // Insured
1620
+ this.insuredPolicyData = {
1621
+ insSum: 0,
1622
+ insSumWithLoad: 0,
1623
+ premium: 0,
1624
+ premiumWithLoad: 0,
1625
+ insuredRisk: {
1626
+ lifeMultiply: 0,
1627
+ lifeAdditive: 0,
1628
+ disabilityMultiply: 0,
1629
+ disabilityAdditive: 0,
1630
+ traumaTableMultiple: 0,
1631
+ accidentalLifeMultiply: 0,
1632
+ accidentalLifeAdditive: 0,
1633
+ criticalMultiply: 0,
1634
+ criticalAdditive: 0,
1635
+ },
1636
+ insuredCoverData: [],
1637
+ };
1638
+ }
1639
+ }
1640
+
1641
+ export class BankInfoClass {
1642
+ bankName: Value;
1643
+ bin: string;
1644
+ iik: string;
1645
+ bik: string;
1646
+ kbe: string;
1647
+ constructor() {
1648
+ this.bankName = new Value();
1649
+ this.bin = '';
1650
+ this.iik = '';
1651
+ this.bik = '';
1652
+ this.kbe = '';
1653
+ }
1654
+ }
1655
+
1656
+ export class PolicyholderClass {
1657
+ isIpdl: boolean;
1658
+ clientData: GroupMember;
1659
+ constructor() {
1660
+ this.isIpdl = false;
1661
+ this.clientData = new GroupMember();
1662
+ }
1663
+ }
1664
+
1665
+ export class BeneficialOwner {
1666
+ id: string;
1667
+ isIpdl: boolean;
1668
+ beneficialOwnerData: GroupMember;
1669
+ constructor() {
1670
+ this.isIpdl = false;
1671
+ this.beneficialOwnerData = new GroupMember();
1672
+ this.id = '';
1673
+ }
1674
+ }