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

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 +1042 -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 +43 -7
  16. package/components/Input/DynamicInput.vue +23 -0
  17. package/components/Input/FileInput.vue +25 -5
  18. package/components/Input/FormInput.vue +7 -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 +18 -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 +50 -9
  33. package/components/Pages/ContragentForm.vue +124 -50
  34. package/components/Pages/Documents.vue +179 -29
  35. package/components/Pages/InvoiceInfo.vue +1 -1
  36. package/components/Pages/MemberForm.vue +605 -116
  37. package/components/Pages/ProductAgreement.vue +1 -8
  38. package/components/Pages/ProductConditions.vue +1055 -183
  39. package/components/Panel/PanelHandler.vue +583 -46
  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 +456 -8
  46. package/composables/constants.ts +114 -2
  47. package/composables/fields.ts +328 -0
  48. package/composables/index.ts +270 -19
  49. package/composables/styles.ts +29 -16
  50. package/layouts/default.vue +48 -3
  51. package/locales/ru.json +547 -14
  52. package/package.json +28 -24
  53. package/pages/Token.vue +1 -12
  54. package/plugins/vuetifyPlugin.ts +2 -0
  55. package/store/data.store.ts +1463 -275
  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 +83 -5
  60. package/types/enum.ts +61 -0
  61. package/types/env.d.ts +1 -0
  62. package/types/form.ts +94 -0
  63. package/types/index.ts +259 -23
@@ -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,20 @@ 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;
456
+ bankInfo: BankInfoClass;
457
+ identityDocument: {
458
+ documentType: Value;
459
+ documentNumber: string | null;
460
+ issuedOn: string | null;
461
+ issuedBy: Value;
462
+ validUntil: string | null;
463
+ };
445
464
  constructor(
446
465
  id = 0,
447
466
  type = 1,
@@ -566,13 +585,22 @@ export class Member extends Person {
566
585
  this.isDisability = isDisability;
567
586
  this.disabilityGroup = disabilityGroupId;
568
587
  this.percentageOfPayoutAmount = percentageOfPayoutAmount;
569
- this._cyrPattern = /[\u0400-\u04FF]+/;
588
+ this._cyrPattern = /[\u0400-\u04FF -]+/;
570
589
  this._numPattern = /[0-9]+/;
571
590
  this._phonePattern = /\(?([0-9]{3})\)?([ .-]?)([0-9]{3})\2([0-9]{4})/;
572
591
  this._emailPattern = /.+@.+\..+/;
573
592
  this.gotFromInsis = true;
574
593
  this.gosPersonData = null;
594
+ this.parsedDocument = null;
575
595
  this.hasAgreement = null;
596
+ this.bankInfo = new BankInfoClass();
597
+ this.identityDocument = {
598
+ documentType: new Value(),
599
+ documentNumber: null,
600
+ issuedOn: null,
601
+ issuedBy: new Value(),
602
+ validUntil: null,
603
+ };
576
604
  }
577
605
 
578
606
  resetMember(clearIinAndPhone: boolean = true) {
@@ -615,6 +643,7 @@ export class Member extends Person {
615
643
  this.percentageOfPayoutAmount = null;
616
644
  this.gotFromInsis = true;
617
645
  this.gosPersonData = null;
646
+ this.parsedDocument = null;
618
647
  this.hasAgreement = null;
619
648
  this.insurancePay = new Value();
620
649
  this.migrationCard = null;
@@ -660,6 +689,43 @@ export class Member extends Person {
660
689
  }
661
690
  }
662
691
 
692
+ export class CalculatorForm {
693
+ country: Value;
694
+ countries: CountryValue[] | null;
695
+ purpose: Value;
696
+ workType: Value;
697
+ sportsType: Value;
698
+ type: Value;
699
+ days: string | number | null;
700
+ maxDays: Value;
701
+ age: string | null;
702
+ price: string | null;
703
+ professionType: Value;
704
+ amount: Value;
705
+ startDate: string | null;
706
+ endDate: string | null;
707
+ period: Value;
708
+ currency: string | null;
709
+ constructor() {
710
+ this.country = new Value();
711
+ this.countries = [];
712
+ this.purpose = new Value();
713
+ this.workType = new Value();
714
+ this.sportsType = new Value();
715
+ this.type = new Value();
716
+ this.days = null;
717
+ this.maxDays = new Value();
718
+ this.age = null;
719
+ this.price = null;
720
+ this.professionType = new Value();
721
+ this.amount = new Value();
722
+ this.startDate = null;
723
+ this.endDate = null;
724
+ this.period = new Value();
725
+ this.currency = null;
726
+ }
727
+ }
728
+
663
729
  export class ProductConditions {
664
730
  signDate: string | null;
665
731
  birthDate: string | null;
@@ -670,6 +736,7 @@ export class ProductConditions {
670
736
  termsOfInsurance: string | null;
671
737
  annualIncome: string | null;
672
738
  processIndexRate: Value;
739
+ processGfot: Value;
673
740
  requestedSumInsured: number | string | null;
674
741
  requestedSumInsuredInDollar: number | string | null;
675
742
  insurancePremiumPerMonth: number | string | null;
@@ -700,6 +767,15 @@ export class ProductConditions {
700
767
  termAnnuityPayments: number | string | null;
701
768
  periodAnnuityPayment: Value;
702
769
  amountAnnuityPayments: number | string | null;
770
+ isRecalculated: boolean;
771
+ totalAmount5: number | string | null;
772
+ totalAmount7: number | string | null;
773
+ statePremium5: number | string | null;
774
+ statePremium7: number | string | null;
775
+ calculatorForm: CalculatorForm;
776
+ agentCommission: number | null;
777
+ fixInsSum: number | string | null;
778
+
703
779
  constructor(
704
780
  insuranceCase = null,
705
781
  coverPeriod = null,
@@ -707,6 +783,7 @@ export class ProductConditions {
707
783
  termsOfInsurance = null,
708
784
  annualIncome = null,
709
785
  processIndexRate = new Value(),
786
+ processGfot = new Value(),
710
787
  requestedSumInsured = null,
711
788
  insurancePremiumPerMonth = null,
712
789
  establishingGroupDisabilityFromThirdYear = null,
@@ -735,6 +812,14 @@ export class ProductConditions {
735
812
  termAnnuityPayments = null,
736
813
  periodAnnuityPayment = new Value(),
737
814
  amountAnnuityPayments = null,
815
+ isRecalculated = false,
816
+ totalAmount5 = null,
817
+ totalAmount7 = null,
818
+ statePremium5 = null,
819
+ statePremium7 = null,
820
+ calculatorForm = new CalculatorForm(),
821
+ agentCommission = null,
822
+ fixInsSum = null,
738
823
  ) {
739
824
  this.requestedSumInsuredInDollar = null;
740
825
  this.insurancePremiumPerMonthInDollar = null;
@@ -747,6 +832,7 @@ export class ProductConditions {
747
832
  this.termsOfInsurance = termsOfInsurance;
748
833
  this.annualIncome = annualIncome;
749
834
  this.processIndexRate = processIndexRate;
835
+ this.processGfot = processGfot;
750
836
  this.requestedSumInsured = requestedSumInsured;
751
837
  this.insurancePremiumPerMonth = insurancePremiumPerMonth;
752
838
  this.establishingGroupDisabilityFromThirdYear = establishingGroupDisabilityFromThirdYear;
@@ -775,6 +861,27 @@ export class ProductConditions {
775
861
  this.termAnnuityPayments = termAnnuityPayments;
776
862
  this.periodAnnuityPayment = periodAnnuityPayment;
777
863
  this.amountAnnuityPayments = amountAnnuityPayments;
864
+ this.isRecalculated = isRecalculated;
865
+ this.totalAmount5 = totalAmount5;
866
+ this.totalAmount7 = totalAmount7;
867
+ this.statePremium5 = statePremium5;
868
+ this.statePremium7 = statePremium7;
869
+ this.calculatorForm = calculatorForm;
870
+ this.agentCommission = agentCommission;
871
+ this.fixInsSum = fixInsSum;
872
+ }
873
+ getSingleTripDays() {
874
+ if (this.calculatorForm.startDate && this.calculatorForm.endDate) {
875
+ const date1 = formatDate(this.calculatorForm.startDate);
876
+ const date2 = formatDate(this.calculatorForm.endDate);
877
+ if (date1 && date2) {
878
+ const days = Math.ceil((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24)) + 1;
879
+ if (days > 0) {
880
+ return days;
881
+ }
882
+ }
883
+ }
884
+ return null;
778
885
  }
779
886
  }
780
887
 
@@ -804,6 +911,9 @@ export class DataStoreClass {
804
911
  setDefaults: {
805
912
  sectorCode: boolean;
806
913
  percentage: boolean;
914
+ signOfResidency: boolean;
915
+ countryOfTaxResidency: boolean;
916
+ countryOfCitizenship: boolean;
807
917
  };
808
918
  // Проверка на роль при авторизации
809
919
  onAuth: boolean;
@@ -811,6 +921,8 @@ export class DataStoreClass {
811
921
  hasAgreement: boolean;
812
922
  // Наличие анкеты
813
923
  hasAnketa: boolean;
924
+ // Обязательность доп анкеты
925
+ isSecondAnketaRequired: boolean;
814
926
  // Подтягивание с ГБДФЛ
815
927
  hasGBDFL: boolean;
816
928
  // Подтягивание с ГКБ
@@ -823,6 +935,10 @@ export class DataStoreClass {
823
935
  hasAttachment: boolean;
824
936
  // Решение АС
825
937
  hasAffiliation: boolean;
938
+ // Выбор метода подписания
939
+ hasChooseSign: boolean;
940
+ // Выбор метода оплаты
941
+ hasChoosePay: boolean;
826
942
  };
827
943
  members: {
828
944
  clientApp: MemberSettings;
@@ -834,6 +950,7 @@ export class DataStoreClass {
834
950
  iframeLoading: boolean;
835
951
  hasLayoutMargins: boolean;
836
952
  readonly product: Projects | null;
953
+ readonly parentProduct: 'efo' | 'auletti';
837
954
  showNav: boolean;
838
955
  menuItems: MenuItem[];
839
956
  menu: {
@@ -842,6 +959,9 @@ export class DataStoreClass {
842
959
  loading: boolean;
843
960
  backIcon: string;
844
961
  moreIcon: string;
962
+ hasInfo: boolean;
963
+ infoIcon: string;
964
+ infoItems: MenuItem[];
845
965
  onBack: any;
846
966
  onLink: any;
847
967
  selectedItem: MenuItem;
@@ -858,7 +978,13 @@ export class DataStoreClass {
858
978
  open: boolean;
859
979
  overlay: boolean;
860
980
  title: string;
861
- clear: Function | void;
981
+ clear: () => void;
982
+ };
983
+ rightPanel: {
984
+ open: boolean;
985
+ overlay: boolean;
986
+ title: string;
987
+ clear: () => void;
862
988
  };
863
989
  historyPageIndex: number;
864
990
  historyPageSize: number;
@@ -878,13 +1004,19 @@ export class DataStoreClass {
878
1004
  documentTypes: Value[];
879
1005
  documentIssuers: Value[];
880
1006
  familyStatuses: Value[];
1007
+ disabilityGroups: Value[];
881
1008
  relations: Value[];
1009
+ banks: Value[];
1010
+ insuranceCompanies: Value[];
1011
+ processTariff: Value[];
882
1012
  insurancePay: Value[];
883
1013
  questionRefs: Value[];
884
1014
  residents: Value[];
885
1015
  ipdl: Value[];
886
1016
  economySectorCode: Value[];
1017
+ economicActivityType: Value[];
887
1018
  gender: Value[];
1019
+ authorityBasis: Value[];
888
1020
  fontSize: number;
889
1021
  isFontChangerOpen: boolean = false;
890
1022
  isLoading: boolean = false;
@@ -892,6 +1024,7 @@ export class DataStoreClass {
892
1024
  accessToken: string | null = null;
893
1025
  refreshToken: string | null = null;
894
1026
  processIndexRate: Value[];
1027
+ processGfot: Value[];
895
1028
  processPaymentPeriod: Value[];
896
1029
  dicAnnuityTypeList: Value[];
897
1030
  processAnnuityPaymentPeriod: Value[];
@@ -908,6 +1041,7 @@ export class DataStoreClass {
908
1041
  ManagerPolicy: Value[];
909
1042
  AgentData: AgentData[];
910
1043
  riskGroup: Value[];
1044
+ DicCoverTypePeriod: Value[];
911
1045
  currencies: {
912
1046
  eur: number | null;
913
1047
  usd: number | null;
@@ -916,6 +1050,17 @@ export class DataStoreClass {
916
1050
  show: (item: MenuItem) => boolean;
917
1051
  disabled: (item: MenuItem) => boolean;
918
1052
  };
1053
+ amountArray: Value[];
1054
+ currency: string | number | null;
1055
+ periodArray: Value[];
1056
+ maxDaysAllArray: Value[];
1057
+ maxDaysFiltered: Value[];
1058
+ dicAllCountries: CountryValue[];
1059
+ dicCountries: CountryValue[];
1060
+ types: Value[];
1061
+ workTypes: Value[];
1062
+ sportsTypes: Value[];
1063
+ purposes: Value[];
919
1064
  constructor() {
920
1065
  this.filters = {
921
1066
  show: (item: MenuItem) => {
@@ -946,9 +1091,13 @@ export class DataStoreClass {
946
1091
  setDefaults: {
947
1092
  sectorCode: true,
948
1093
  percentage: true,
1094
+ signOfResidency: false,
1095
+ countryOfTaxResidency: false,
1096
+ countryOfCitizenship: false,
949
1097
  },
950
1098
  onAuth: false,
951
1099
  hasAnketa: true,
1100
+ isSecondAnketaRequired: true,
952
1101
  hasAgreement: true,
953
1102
  hasGBDFL: true,
954
1103
  hasGKB: false,
@@ -956,10 +1105,13 @@ export class DataStoreClass {
956
1105
  hasCalculator: false,
957
1106
  hasAttachment: true,
958
1107
  hasAffiliation: true,
1108
+ hasChooseSign: false,
1109
+ hasChoosePay: false,
959
1110
  };
960
1111
  this.iframeLoading = false;
961
1112
  this.hasLayoutMargins = true;
962
1113
  this.processIndexRate = [];
1114
+ this.processGfot = [];
963
1115
  this.processPaymentPeriod = [];
964
1116
  this.dicAnnuityTypeList = [];
965
1117
  this.processAnnuityPaymentPeriod = [];
@@ -968,7 +1120,9 @@ export class DataStoreClass {
968
1120
  this.RegionPolicy = [];
969
1121
  this.ManagerPolicy = [];
970
1122
  this.AgentData = [];
1123
+ this.DicCoverTypePeriod = [];
971
1124
  this.product = import.meta.env.VITE_PRODUCT ? (import.meta.env.VITE_PRODUCT as Projects) : null;
1125
+ this.parentProduct = import.meta.env.VITE_PARENT_PRODUCT ? import.meta.env.VITE_PARENT_PRODUCT : 'efo';
972
1126
  this.showNav = true;
973
1127
  this.menuItems = [];
974
1128
  this.menu = {
@@ -977,6 +1131,9 @@ export class DataStoreClass {
977
1131
  loading: false,
978
1132
  backIcon: 'mdi-arrow-left',
979
1133
  moreIcon: 'mdi-dots-vertical',
1134
+ hasInfo: false,
1135
+ infoIcon: 'mdi-information-outline',
1136
+ infoItems: [],
980
1137
  onBack: {},
981
1138
  onLink: {},
982
1139
  selectedItem: new MenuItem(),
@@ -992,13 +1149,24 @@ export class DataStoreClass {
992
1149
  open: false,
993
1150
  overlay: false,
994
1151
  title: '',
995
- clear: function () {
1152
+ clear: () => {
996
1153
  const panelActions = document.getElementById('panel-actions');
997
1154
  if (panelActions) {
998
1155
  panelActions.innerHTML = '';
999
1156
  }
1000
1157
  },
1001
1158
  };
1159
+ this.rightPanel = {
1160
+ open: false,
1161
+ overlay: false,
1162
+ title: '',
1163
+ clear: () => {
1164
+ const panelActions = document.getElementById('right-panel-actions');
1165
+ if (panelActions) {
1166
+ panelActions.innerHTML = '';
1167
+ }
1168
+ },
1169
+ };
1002
1170
  this.panelAction = null;
1003
1171
  this.historyPageIndex = 1;
1004
1172
  this.historyPageSize = 10;
@@ -1018,12 +1186,18 @@ export class DataStoreClass {
1018
1186
  this.documentTypes = [];
1019
1187
  this.documentIssuers = [];
1020
1188
  this.familyStatuses = [];
1189
+ this.disabilityGroups = [];
1021
1190
  this.relations = [];
1191
+ this.processTariff = [];
1192
+ this.banks = [];
1193
+ this.insuranceCompanies = [];
1022
1194
  this.insurancePay = [];
1023
1195
  this.residents = [];
1024
1196
  this.ipdl = [new Value(1, null), new Value(2, 'Да'), new Value(3, 'Нет')];
1025
1197
  this.economySectorCode = [];
1198
+ this.economicActivityType = [];
1026
1199
  this.gender = [new Value(0, null), new Value(1, 'Мужской'), new Value(2, 'Женский')];
1200
+ this.authorityBasis = [];
1027
1201
  this.fontSize = 14;
1028
1202
  this.isFontChangerOpen = false;
1029
1203
  this.isLoading = false;
@@ -1075,10 +1249,41 @@ export class DataStoreClass {
1075
1249
  ids: '',
1076
1250
  },
1077
1251
  ];
1252
+ this.amountArray = [];
1253
+ this.currency = null;
1254
+ this.maxDaysAllArray = [];
1255
+ this.periodArray = [];
1256
+ this.maxDaysFiltered = [];
1257
+ this.dicCountries = [];
1258
+ this.dicAllCountries = [];
1259
+ this.types = [];
1260
+ this.purposes = [];
1261
+ this.workTypes = [];
1262
+ this.sportsTypes = [];
1078
1263
  }
1079
1264
  }
1080
1265
 
1081
1266
  export class FormStoreClass {
1267
+ documentName: string | null;
1268
+ regNumber: string | null;
1269
+ policyNumber: string | null;
1270
+ contractDate: string | null;
1271
+ needToScanSignedContract: boolean;
1272
+ isUploadedSignedContract: boolean;
1273
+ signedContractFormData: any;
1274
+ lfb: {
1275
+ clients: ClientV2[];
1276
+ policyholder: PolicyholderClass;
1277
+ hasAccidentIncidents: boolean;
1278
+ accidentIncidents: AccidentIncidents[];
1279
+ policyholderActivities: PolicyholderActivity[];
1280
+ beneficialOwners: BeneficialOwner[];
1281
+ beneficialOwnersIndex: number;
1282
+ isPolicyholderBeneficialOwner: boolean;
1283
+ clientId: string | null;
1284
+ insuredFile: any;
1285
+ isPanelInside: boolean;
1286
+ };
1082
1287
  additionalInsuranceTerms: AddCover[];
1083
1288
  additionalInsuranceTermsWithout: AddCover[];
1084
1289
  signUrls: SignUrlType[];
@@ -1100,8 +1305,6 @@ export class FormStoreClass {
1100
1305
  surveyByHealthBasePolicyholder: AnketaFirst | null;
1101
1306
  surveyByCriticalBase: AnketaFirst | null;
1102
1307
  surveyByCriticalBasePolicyholder: AnketaFirst | null;
1103
- surveyByHealthSecond: AnketaSecond[] | null;
1104
- surveyByCriticalSecond: AnketaSecond[] | null;
1105
1308
  definedAnswersId: {
1106
1309
  surveyByHealthBase: any;
1107
1310
  surveyByCriticalBase: any;
@@ -1120,12 +1323,15 @@ export class FormStoreClass {
1120
1323
  insuredForm: boolean;
1121
1324
  policyholdersRepresentativeForm: boolean;
1122
1325
  productConditionsForm: boolean;
1326
+ calculatorForm: boolean;
1123
1327
  recalculationForm: boolean;
1124
1328
  surveyByHealthBase: boolean;
1125
1329
  surveyByCriticalBase: boolean;
1126
1330
  surveyByHealthBasePolicyholder: boolean;
1127
1331
  surveyByCriticalBasePolicyholder: boolean;
1128
1332
  insuranceDocument: boolean;
1333
+ policyholderActivitiesForm: boolean;
1334
+ accidentStatisticsForm: boolean;
1129
1335
  };
1130
1336
  isPolicyholderInsured: boolean = false;
1131
1337
  isPolicyholderBeneficiary: boolean = false;
@@ -1134,13 +1340,17 @@ export class FormStoreClass {
1134
1340
  isPolicyholderIPDL: boolean = false;
1135
1341
  applicationData: {
1136
1342
  processInstanceId: number | string;
1343
+ regNumber?: string;
1137
1344
  statusCode?: keyof typeof Statuses;
1138
1345
  clientApp?: any;
1346
+ processCode?: number;
1139
1347
  insuredApp?: any;
1348
+ pensionApp?: any;
1140
1349
  beneficiaryApp?: any;
1141
1350
  beneficialOwnerApp?: any;
1142
1351
  spokesmanApp?: any;
1143
1352
  isTask?: boolean | null;
1353
+ createDate?: string | null;
1144
1354
  policyAppDto?: PolicyAppDto;
1145
1355
  insisWorkDataApp?: InsisWorkDataApp;
1146
1356
  addCoverDto?: AddCover[];
@@ -1164,7 +1374,27 @@ export class FormStoreClass {
1164
1374
  questionnaireByCritical: any[];
1165
1375
  canBeClaimed: boolean | null;
1166
1376
  applicationTaskId: string | null;
1167
- constructor(procuctConditionsTitle?: string) {
1377
+ constructor() {
1378
+ this.regNumber = null;
1379
+ this.policyNumber = null;
1380
+ this.contractDate = null;
1381
+ this.documentName = null;
1382
+ this.isUploadedSignedContract = false;
1383
+ this.needToScanSignedContract = false;
1384
+ this.signedContractFormData = null;
1385
+ this.lfb = {
1386
+ clients: [],
1387
+ policyholder: new PolicyholderClass(),
1388
+ hasAccidentIncidents: true,
1389
+ policyholderActivities: [new PolicyholderActivity()],
1390
+ beneficialOwners: [new BeneficialOwner()],
1391
+ beneficialOwnersIndex: 0,
1392
+ isPolicyholderBeneficialOwner: false,
1393
+ accidentIncidents: [],
1394
+ clientId: null,
1395
+ insuredFile: null,
1396
+ isPanelInside: false,
1397
+ };
1168
1398
  this.additionalInsuranceTerms = [];
1169
1399
  this.additionalInsuranceTermsWithout = [];
1170
1400
  this.signUrls = [];
@@ -1186,8 +1416,6 @@ export class FormStoreClass {
1186
1416
  this.surveyByHealthBasePolicyholder = null;
1187
1417
  this.surveyByCriticalBase = null;
1188
1418
  this.surveyByCriticalBasePolicyholder = null;
1189
- this.surveyByHealthSecond = null;
1190
- this.surveyByCriticalSecond = null;
1191
1419
  this.definedAnswersId = {
1192
1420
  surveyByHealthBase: {},
1193
1421
  surveyByCriticalBase: {},
@@ -1214,12 +1442,15 @@ export class FormStoreClass {
1214
1442
  insuredForm: true,
1215
1443
  policyholdersRepresentativeForm: true,
1216
1444
  productConditionsForm: true,
1445
+ calculatorForm: true,
1217
1446
  recalculationForm: true,
1218
1447
  surveyByHealthBase: true,
1219
1448
  surveyByCriticalBase: true,
1220
1449
  surveyByHealthBasePolicyholder: true,
1221
1450
  surveyByCriticalBasePolicyholder: true,
1222
1451
  insuranceDocument: true,
1452
+ policyholderActivitiesForm: true,
1453
+ accidentStatisticsForm: true,
1223
1454
  };
1224
1455
  this.isPolicyholderInsured = false;
1225
1456
  this.isPolicyholderBeneficiary = false;
@@ -1247,3 +1478,220 @@ export class FormStoreClass {
1247
1478
  this.applicationTaskId = null;
1248
1479
  }
1249
1480
  }
1481
+
1482
+ export class Address {
1483
+ country: Value;
1484
+ region: Value;
1485
+ regionType: Value;
1486
+ city: Value;
1487
+ square: string | null;
1488
+ microdistrict: string | null;
1489
+ street: string | null;
1490
+ houseNumber: string | null;
1491
+ kato: string | null;
1492
+ longName: string | null;
1493
+ longNameKz: string | null;
1494
+ constructor() {
1495
+ this.country = new Value();
1496
+ this.region = new Value();
1497
+ this.regionType = new Value();
1498
+ this.city = new Value();
1499
+ this.square = null;
1500
+ this.microdistrict = null;
1501
+ this.street = null;
1502
+ this.houseNumber = null;
1503
+ this.kato = null;
1504
+ this.longName = null;
1505
+ this.longNameKz = null;
1506
+ }
1507
+ }
1508
+
1509
+ export class PolicyholderActivity {
1510
+ activityTypeName: string | null;
1511
+ empoloyeeCount: string | null;
1512
+ constructor() {
1513
+ this.activityTypeName = null;
1514
+ this.empoloyeeCount = null;
1515
+ }
1516
+ }
1517
+
1518
+ export class BaseGroupClass {
1519
+ id: string | number;
1520
+ longName: string;
1521
+ iin: string;
1522
+ phoneNumber: string;
1523
+ age: string;
1524
+ name: string;
1525
+ nameKz: string;
1526
+ longNameKz: string;
1527
+ citizenship: Value;
1528
+ email: string;
1529
+ resident: Value;
1530
+ taxResidentCountry: Value;
1531
+ addTaxResidency: Value;
1532
+ economySectorCode: Value;
1533
+ hasAttachedFile: boolean;
1534
+ actualAddress: Address;
1535
+ isActualAddressEqualLegalAddres: boolean;
1536
+ legalAddress: Address;
1537
+ identityDocument: {
1538
+ documentType: Value;
1539
+ documentNumber: string;
1540
+ series: string;
1541
+ issuedBy: Value;
1542
+ issuedOn: string;
1543
+ validUntil: string;
1544
+ };
1545
+ bankInfo: BankInfoClass;
1546
+ kbe: string;
1547
+ constructor() {
1548
+ this.id = 0;
1549
+ this.longName = '';
1550
+ this.iin = '';
1551
+ this.phoneNumber = '';
1552
+ this.age = '';
1553
+ this.name = '';
1554
+ this.nameKz = '';
1555
+ this.longNameKz = '';
1556
+ this.citizenship = new Value();
1557
+ this.email = '';
1558
+ this.resident = new Value();
1559
+ this.taxResidentCountry = new Value();
1560
+ this.addTaxResidency = new Value();
1561
+ this.economySectorCode = new Value();
1562
+ this.hasAttachedFile = false;
1563
+ this.actualAddress = new Address();
1564
+ this.isActualAddressEqualLegalAddres = true;
1565
+ this.legalAddress = new Address();
1566
+ this.identityDocument = {
1567
+ documentType: new Value(),
1568
+ documentNumber: '',
1569
+ series: '',
1570
+ issuedBy: new Value(),
1571
+ issuedOn: '',
1572
+ validUntil: '',
1573
+ };
1574
+ this.bankInfo = new BankInfoClass();
1575
+ this.kbe = '';
1576
+ }
1577
+ }
1578
+
1579
+ export class PhysGroupClass extends BaseGroupClass {
1580
+ lastName: string;
1581
+ firstName: string;
1582
+ middleName: string;
1583
+ birthDate: string;
1584
+ gender: Value;
1585
+ placeOfBirth: Value;
1586
+ workDetails: { workplace: string; position: string; jobDuties: string };
1587
+ hasContactPerson: boolean;
1588
+ constructor() {
1589
+ super();
1590
+ this.lastName = '';
1591
+ this.firstName = '';
1592
+ this.middleName = '';
1593
+ this.birthDate = '';
1594
+ this.gender = new Value();
1595
+ this.placeOfBirth = new Value();
1596
+ this.workDetails = { workplace: '', position: '', jobDuties: '' };
1597
+ this.hasContactPerson = false;
1598
+ }
1599
+ }
1600
+
1601
+ export class GroupMember extends PhysGroupClass {
1602
+ isLeader: boolean;
1603
+ authorityDetails: {
1604
+ basis: Value;
1605
+ documentNumber: string | null;
1606
+ date: string | null;
1607
+ };
1608
+ typeOfEconomicActivity: Value;
1609
+ activityTypes: { activityTypeName: string; empoloyeeCount: number }[];
1610
+ beneficalOwnerQuest: { order: number; text: string; answer: boolean | null }[];
1611
+ authoritedPerson: PhysGroupClass;
1612
+ insuredPolicyData: InsuredPolicyType;
1613
+ constructor() {
1614
+ super();
1615
+ // Client
1616
+ this.isLeader = false;
1617
+ this.authorityDetails = {
1618
+ basis: new Value(),
1619
+ documentNumber: null,
1620
+ date: null,
1621
+ };
1622
+ this.typeOfEconomicActivity = new Value();
1623
+ this.activityTypes = [];
1624
+ this.beneficalOwnerQuest = [
1625
+ {
1626
+ order: 0,
1627
+ text: 'Отметка о наличии/отсутствии физического лица (лиц), которому прямо или косвенно принадлежат более 25 % долей участия в уставном капитале либо размещенных (за вычетом привилегированных и выкупленных обществом) акций юридического лица',
1628
+ answer: null,
1629
+ },
1630
+ {
1631
+ order: 1,
1632
+ text: 'Отметка о наличии/отсутствии физического лица (лиц), осуществляющего контроль над юридическим лицом по иным основаниям',
1633
+ answer: null,
1634
+ },
1635
+ {
1636
+ order: 2,
1637
+ text: 'Отметка о наличии/отсутствии физического лица (лиц) в интересах которого юридическим лицом устанавливаются деловые отношения (совершаются операции)',
1638
+ answer: null,
1639
+ },
1640
+ ];
1641
+ this.authoritedPerson = new PhysGroupClass();
1642
+ // Insured
1643
+ this.insuredPolicyData = {
1644
+ insSum: 0,
1645
+ insSumWithLoad: 0,
1646
+ premium: 0,
1647
+ premiumWithLoad: 0,
1648
+ insuredRisk: {
1649
+ lifeMultiply: 0,
1650
+ lifeAdditive: 0,
1651
+ disabilityMultiply: 0,
1652
+ disabilityAdditive: 0,
1653
+ traumaTableMultiple: 0,
1654
+ accidentalLifeMultiply: 0,
1655
+ accidentalLifeAdditive: 0,
1656
+ criticalMultiply: 0,
1657
+ criticalAdditive: 0,
1658
+ },
1659
+ insuredCoverData: [],
1660
+ };
1661
+ }
1662
+ }
1663
+
1664
+ export class BankInfoClass {
1665
+ bankName: Value;
1666
+ bin: string;
1667
+ iik: string;
1668
+ bik: string;
1669
+ kbe: string;
1670
+ constructor() {
1671
+ this.bankName = new Value();
1672
+ this.bin = '';
1673
+ this.iik = '';
1674
+ this.bik = '';
1675
+ this.kbe = '';
1676
+ }
1677
+ }
1678
+
1679
+ export class PolicyholderClass {
1680
+ isIpdl: boolean;
1681
+ clientData: GroupMember;
1682
+ constructor() {
1683
+ this.isIpdl = false;
1684
+ this.clientData = new GroupMember();
1685
+ }
1686
+ }
1687
+
1688
+ export class BeneficialOwner {
1689
+ id: string;
1690
+ isIpdl: boolean;
1691
+ beneficialOwnerData: GroupMember;
1692
+ constructor() {
1693
+ this.isIpdl = false;
1694
+ this.beneficialOwnerData = new GroupMember();
1695
+ this.id = '';
1696
+ }
1697
+ }