@kipicore/dbcore 1.1.30 → 1.1.33

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 (220) hide show
  1. package/dist/models/psql/SubCategoriesModel.d.ts +1 -0
  2. package/dist/models/psql/SubCategoriesModel.js +60 -63
  3. package/dist/models/psql/academicCalendarModel.d.ts +2 -1
  4. package/dist/models/psql/academicCalendarModel.js +41 -53
  5. package/dist/models/psql/accountHasReceiptDetailsModel.d.ts +6 -5
  6. package/dist/models/psql/accountHasReceiptDetailsModel.js +47 -68
  7. package/dist/models/psql/announcementModel.d.ts +10 -8
  8. package/dist/models/psql/announcementModel.js +90 -109
  9. package/dist/models/psql/areaModel.d.ts +5 -1
  10. package/dist/models/psql/areaModel.js +13 -12
  11. package/dist/models/psql/bankAccountDetailsModel.d.ts +6 -5
  12. package/dist/models/psql/bankAccountDetailsModel.js +25 -37
  13. package/dist/models/psql/bannerModel.d.ts +18 -18
  14. package/dist/models/psql/bannerModel.js +53 -81
  15. package/dist/models/psql/batchModel.d.ts +3 -1
  16. package/dist/models/psql/batchModel.js +77 -135
  17. package/dist/models/psql/batchSubjectBookAssessmentModel.d.ts +2 -1
  18. package/dist/models/psql/batchSubjectBookAssessmentModel.js +57 -104
  19. package/dist/models/psql/batchSubjectProjectAssessmentModel.d.ts +2 -1
  20. package/dist/models/psql/batchSubjectProjectAssessmentModel.js +59 -92
  21. package/dist/models/psql/bookAssessmentDateModel.d.ts +2 -1
  22. package/dist/models/psql/bookAssessmentDateModel.js +26 -46
  23. package/dist/models/psql/categoriesModel.d.ts +2 -1
  24. package/dist/models/psql/categoriesModel.js +25 -45
  25. package/dist/models/psql/cityModel.d.ts +2 -1
  26. package/dist/models/psql/cityModel.js +21 -33
  27. package/dist/models/psql/classRoomModel.d.ts +2 -1
  28. package/dist/models/psql/classRoomModel.js +41 -67
  29. package/dist/models/psql/cloudStorageModel.d.ts +2 -1
  30. package/dist/models/psql/cloudStorageModel.js +18 -29
  31. package/dist/models/psql/coinPurchaseOfferModel.d.ts +5 -4
  32. package/dist/models/psql/coinPurchaseOfferModel.js +18 -29
  33. package/dist/models/psql/contactFeedBackModel.d.ts +2 -1
  34. package/dist/models/psql/contactFeedBackModel.js +49 -62
  35. package/dist/models/psql/countryModel.d.ts +1 -1
  36. package/dist/models/psql/countryModel.js +2 -0
  37. package/dist/models/psql/courseHasVisitorsModel.d.ts +2 -1
  38. package/dist/models/psql/courseHasVisitorsModel.js +25 -38
  39. package/dist/models/psql/courseModel.d.ts +2 -1
  40. package/dist/models/psql/courseModel.js +41 -56
  41. package/dist/models/psql/driverModel.d.ts +3 -1
  42. package/dist/models/psql/driverModel.js +61 -65
  43. package/dist/models/psql/entityGroupModel.d.ts +2 -1
  44. package/dist/models/psql/entityGroupModel.js +25 -45
  45. package/dist/models/psql/facilityModel.d.ts +3 -1
  46. package/dist/models/psql/facilityModel.js +63 -73
  47. package/dist/models/psql/featureActionModel.d.ts +3 -2
  48. package/dist/models/psql/featureActionModel.js +21 -36
  49. package/dist/models/psql/feeHistoryDetailsModel.d.ts +2 -1
  50. package/dist/models/psql/feeHistoryDetailsModel.js +65 -106
  51. package/dist/models/psql/feeHistoryModel.d.ts +4 -2
  52. package/dist/models/psql/feeHistoryModel.js +154 -309
  53. package/dist/models/psql/feeReminderModel.d.ts +2 -0
  54. package/dist/models/psql/feeReminderModel.js +147 -179
  55. package/dist/models/psql/feeReminderSettingModel.d.ts +1 -0
  56. package/dist/models/psql/feeReminderSettingModel.js +23 -47
  57. package/dist/models/psql/feeTypeHasTermsModel.d.ts +1 -0
  58. package/dist/models/psql/feeTypeHasTermsModel.js +48 -51
  59. package/dist/models/psql/feeTypeModel.d.ts +1 -0
  60. package/dist/models/psql/feeTypeModel.js +44 -72
  61. package/dist/models/psql/feesCollectionModel.d.ts +2 -0
  62. package/dist/models/psql/feesCollectionModel.js +112 -144
  63. package/dist/models/psql/fileStorageModel.d.ts +1 -0
  64. package/dist/models/psql/fileStorageModel.js +27 -29
  65. package/dist/models/psql/floorManagementModel.d.ts +1 -0
  66. package/dist/models/psql/floorManagementModel.js +23 -42
  67. package/dist/models/psql/greetingsModel.d.ts +3 -2
  68. package/dist/models/psql/greetingsModel.js +64 -66
  69. package/dist/models/psql/homeWorkModel.d.ts +1 -0
  70. package/dist/models/psql/homeWorkModel.js +40 -70
  71. package/dist/models/psql/index.js +6 -3
  72. package/dist/models/psql/instituteEntityModel.d.ts +1 -0
  73. package/dist/models/psql/instituteEntityModel.js +59 -62
  74. package/dist/models/psql/instituteEntityTypeModel.d.ts +1 -0
  75. package/dist/models/psql/instituteEntityTypeModel.js +15 -28
  76. package/dist/models/psql/instituteModel.d.ts +1 -0
  77. package/dist/models/psql/instituteModel.js +66 -185
  78. package/dist/models/psql/instituteSubscriptionPlanModel.d.ts +1 -0
  79. package/dist/models/psql/instituteSubscriptionPlanModel.js +40 -81
  80. package/dist/models/psql/inventoryHistoryModel.d.ts +1 -0
  81. package/dist/models/psql/inventoryHistoryModel.js +39 -79
  82. package/dist/models/psql/inventoryModel.d.ts +1 -0
  83. package/dist/models/psql/inventoryModel.js +31 -62
  84. package/dist/models/psql/lectureHistoryModel.d.ts +1 -0
  85. package/dist/models/psql/lectureHistoryModel.js +65 -196
  86. package/dist/models/psql/lectureModel.d.ts +2 -0
  87. package/dist/models/psql/lectureModel.js +191 -454
  88. package/dist/models/psql/masterLeaveModel.d.ts +2 -0
  89. package/dist/models/psql/masterLeaveModel.js +71 -71
  90. package/dist/models/psql/moduleFeatureModel.d.ts +1 -0
  91. package/dist/models/psql/moduleFeatureModel.js +41 -44
  92. package/dist/models/psql/moduleModel.d.ts +1 -0
  93. package/dist/models/psql/moduleModel.js +48 -52
  94. package/dist/models/psql/offerModel.d.ts +1 -0
  95. package/dist/models/psql/offerModel.js +43 -64
  96. package/dist/models/psql/paymentTermsModel.d.ts +1 -0
  97. package/dist/models/psql/paymentTermsModel.js +43 -45
  98. package/dist/models/psql/pdcChequeModel.d.ts +1 -0
  99. package/dist/models/psql/pdcChequeModel.js +59 -64
  100. package/dist/models/psql/pdcHistoryModel.d.ts +1 -0
  101. package/dist/models/psql/pdcHistoryModel.js +55 -73
  102. package/dist/models/psql/pincodeModel.d.ts +1 -0
  103. package/dist/models/psql/pincodeModel.js +6 -9
  104. package/dist/models/psql/productModel.d.ts +1 -0
  105. package/dist/models/psql/productModel.js +40 -80
  106. package/dist/models/psql/projectAssessmentOptionModel.d.ts +1 -0
  107. package/dist/models/psql/projectAssessmentOptionModel.js +23 -45
  108. package/dist/models/psql/roleModel.d.ts +1 -0
  109. package/dist/models/psql/roleModel.js +15 -38
  110. package/dist/models/psql/rulesRegulationModel.d.ts +3 -2
  111. package/dist/models/psql/rulesRegulationModel.js +20 -33
  112. package/dist/models/psql/schoolFeeCollectionModel.d.ts +1 -0
  113. package/dist/models/psql/schoolFeeCollectionModel.js +47 -94
  114. package/dist/models/psql/schoolOfferModel.d.ts +1 -0
  115. package/dist/models/psql/schoolOfferModel.js +39 -78
  116. package/dist/models/psql/sendNotificationModel.d.ts +1 -0
  117. package/dist/models/psql/sendNotificationModel.js +37 -61
  118. package/dist/models/psql/slotModel.d.ts +2 -0
  119. package/dist/models/psql/slotModel.js +46 -58
  120. package/dist/models/psql/stateModel.d.ts +1 -0
  121. package/dist/models/psql/stateModel.js +17 -18
  122. package/dist/models/psql/subjectHasFeeModel.d.ts +1 -0
  123. package/dist/models/psql/subjectHasFeeModel.js +49 -46
  124. package/dist/models/psql/subjectHasPayFeeHistoryModel.d.ts +1 -0
  125. package/dist/models/psql/subjectHasPayFeeHistoryModel.js +74 -69
  126. package/dist/models/psql/syllabusModel.d.ts +1 -0
  127. package/dist/models/psql/syllabusModel.js +72 -85
  128. package/dist/models/psql/testimonialModel.d.ts +2 -0
  129. package/dist/models/psql/testimonialModel.js +97 -100
  130. package/dist/models/psql/toDoModel.d.ts +2 -0
  131. package/dist/models/psql/toDoModel.js +64 -64
  132. package/dist/models/psql/tripModel.d.ts +1 -0
  133. package/dist/models/psql/tripModel.js +51 -55
  134. package/dist/models/psql/typeManagementModel.d.ts +2 -0
  135. package/dist/models/psql/typeManagementModel.js +69 -69
  136. package/dist/models/psql/userBookAssessmentModel.d.ts +1 -0
  137. package/dist/models/psql/userBookAssessmentModel.js +83 -89
  138. package/dist/models/psql/userFeeTypeByAccountModel.d.ts +1 -0
  139. package/dist/models/psql/userFeeTypeByAccountModel.js +117 -122
  140. package/dist/models/psql/userFeeTypeModel.d.ts +1 -0
  141. package/dist/models/psql/userFeeTypeModel.js +97 -102
  142. package/dist/models/psql/userHasAnnouncementModel.d.ts +1 -0
  143. package/dist/models/psql/userHasAnnouncementModel.js +63 -66
  144. package/dist/models/psql/userHasBatchModel.d.ts +1 -0
  145. package/dist/models/psql/userHasBatchModel.js +55 -57
  146. package/dist/models/psql/userHasCourseModel.d.ts +1 -0
  147. package/dist/models/psql/userHasCourseModel.js +51 -55
  148. package/dist/models/psql/userHasDeviceModel.d.ts +1 -0
  149. package/dist/models/psql/userHasDeviceModel.js +35 -38
  150. package/dist/models/psql/userHasFeeTermsModel.d.ts +1 -0
  151. package/dist/models/psql/userHasFeeTermsModel.js +51 -117
  152. package/dist/models/psql/userHasFileModel.d.ts +1 -0
  153. package/dist/models/psql/userHasFileModel.js +33 -61
  154. package/dist/models/psql/userHasHomeWorkModel.d.ts +9 -6
  155. package/dist/models/psql/userHasHomeWorkModel.js +50 -72
  156. package/dist/models/psql/userHasInventoryHistoryModel.d.ts +5 -4
  157. package/dist/models/psql/userHasInventoryHistoryModel.js +42 -59
  158. package/dist/models/psql/userHasInventoryModel.d.ts +5 -4
  159. package/dist/models/psql/userHasInventoryModel.js +30 -54
  160. package/dist/models/psql/userHasLeaveHistoryModel.d.ts +5 -4
  161. package/dist/models/psql/userHasLeaveHistoryModel.js +21 -36
  162. package/dist/models/psql/userHasLeaveModel.d.ts +6 -5
  163. package/dist/models/psql/userHasLeaveModel.js +47 -68
  164. package/dist/models/psql/userHasOfferModel.d.ts +8 -7
  165. package/dist/models/psql/userHasOfferModel.js +54 -109
  166. package/dist/models/psql/userHasParentModel.d.ts +7 -5
  167. package/dist/models/psql/userHasParentModel.js +38 -65
  168. package/dist/models/psql/userHasRoleModel.d.ts +6 -5
  169. package/dist/models/psql/userHasRoleModel.js +27 -56
  170. package/dist/models/psql/userHasRollNumberModel.d.ts +5 -4
  171. package/dist/models/psql/userHasRollNumberModel.js +39 -54
  172. package/dist/models/psql/userHasStorageModel.d.ts +5 -4
  173. package/dist/models/psql/userHasStorageModel.js +31 -35
  174. package/dist/models/psql/userHasSubjectFeeModel.d.ts +5 -4
  175. package/dist/models/psql/userHasSubjectFeeModel.js +32 -47
  176. package/dist/models/psql/userLeaveRequestModel.d.ts +6 -5
  177. package/dist/models/psql/userLeaveRequestModel.js +24 -40
  178. package/dist/models/psql/userModel.d.ts +2 -2
  179. package/dist/models/psql/userModel.js +174 -370
  180. package/dist/models/psql/userPayoutDetailsModel.d.ts +1 -0
  181. package/dist/models/psql/userPayoutDetailsModel.js +65 -146
  182. package/dist/models/psql/userPayoutHistoryModel.d.ts +1 -0
  183. package/dist/models/psql/userPayoutHistoryModel.js +39 -66
  184. package/dist/models/psql/userPayoutModel.d.ts +2 -0
  185. package/dist/models/psql/userPayoutModel.js +205 -240
  186. package/dist/models/psql/userProjectAssessmentOptionModel.d.ts +1 -0
  187. package/dist/models/psql/userProjectAssessmentOptionModel.js +39 -74
  188. package/dist/models/psql/userRequiredStepsModel.d.ts +1 -0
  189. package/dist/models/psql/userRequiredStepsModel.js +23 -36
  190. package/dist/models/psql/vehicleModel.d.ts +1 -0
  191. package/dist/models/psql/vehicleModel.js +27 -53
  192. package/dist/models/psql/vendorManagementModel.d.ts +6 -5
  193. package/dist/models/psql/vendorManagementModel.js +48 -97
  194. package/dist/models/psql/walletHistoryModel.d.ts +2 -1
  195. package/dist/models/psql/walletHistoryModel.js +31 -33
  196. package/dist/models/psql/walletModel.d.ts +2 -1
  197. package/dist/models/psql/walletModel.js +28 -46
  198. package/dist/models/psql/workingDayModel.d.ts +3 -2
  199. package/dist/models/psql/workingDayModel.js +18 -31
  200. package/dist/models/psql/workingShiftModel.d.ts +3 -2
  201. package/dist/models/psql/workingShiftModel.js +43 -40
  202. package/dist/types/accountHasReceiptDetailsType.d.ts +1 -1
  203. package/dist/types/bannerType.d.ts +1 -1
  204. package/dist/types/batchSubjectBookAssessmentType.d.ts +1 -1
  205. package/dist/types/batchSubjectProjectAssessmentType.d.ts +1 -1
  206. package/dist/types/batchType.d.ts +1 -1
  207. package/dist/types/bookAssessmentDateType.d.ts +1 -1
  208. package/dist/types/examType.d.ts +1 -1
  209. package/dist/types/feeHistoryType.d.ts +1 -1
  210. package/dist/types/greetingsType.d.ts +1 -1
  211. package/dist/types/holidayType.js +1 -1
  212. package/dist/types/paymentTermsType.js +1 -1
  213. package/dist/types/projectAssessmentOptionType.d.ts +1 -1
  214. package/dist/types/subjectIndexType.d.ts +1 -1
  215. package/dist/types/syllabusType.d.ts +1 -1
  216. package/dist/types/testimonialType.d.ts +1 -1
  217. package/dist/types/userBookAssessmentType.d.ts +1 -1
  218. package/dist/types/userHasBatchType.d.ts +1 -1
  219. package/dist/types/userProjectAssessmentOptionType.d.ts +1 -1
  220. package/package.json +1 -1
@@ -3,331 +3,176 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FeeHistoryModel = void 0;
6
7
  const sequelize_1 = require("sequelize");
7
8
  const index_1 = require("./index");
8
- const userModel_1 = __importDefault(require("./userModel"));
9
- const instituteModel_1 = __importDefault(require("./instituteModel"));
10
9
  const app_1 = require("../../constants/app");
11
10
  const errorMessages_1 = require("../../constants/errorMessages");
12
- const feesCollectionModel_1 = __importDefault(require("./feesCollectionModel"));
13
- const fileStorageModel_1 = __importDefault(require("./fileStorageModel"));
14
- const bankAccountDetailsModel_1 = __importDefault(require("./bankAccountDetailsModel"));
15
- const schoolFeeCollectionModel_1 = __importDefault(require("./schoolFeeCollectionModel"));
16
11
  const userInstituteMetaModel_1 = __importDefault(require("../mongodb/userInstituteMetaModel"));
17
- const instituteEntityModel_1 = __importDefault(require("./instituteEntityModel"));
18
- const userHasSubjectFeeModel_1 = __importDefault(require("./userHasSubjectFeeModel"));
19
- const subjectHasPayFeeHistoryModel_1 = __importDefault(require("./subjectHasPayFeeHistoryModel"));
20
12
  class FeeHistoryModel extends sequelize_1.Model {
21
- }
22
- FeeHistoryModel.init({
23
- id: {
24
- type: sequelize_1.DataTypes.UUID,
25
- defaultValue: sequelize_1.DataTypes.UUIDV4,
26
- allowNull: false,
27
- primaryKey: true,
28
- },
29
- instituteId: {
30
- type: sequelize_1.DataTypes.UUID,
31
- field: 'institute_id',
32
- allowNull: false,
33
- },
34
- pdfId: {
35
- type: sequelize_1.DataTypes.UUID,
36
- field: 'pdf_id',
37
- allowNull: true,
38
- },
39
- invoiceId: {
40
- type: sequelize_1.DataTypes.INTEGER,
41
- field: 'invoice_id',
42
- defaultValue: null,
43
- allowNull: true,
44
- },
45
- userId: {
46
- type: sequelize_1.DataTypes.UUID,
47
- field: 'user_id',
48
- allowNull: false,
49
- },
50
- feeCollectionId: {
51
- type: sequelize_1.DataTypes.UUID,
52
- field: 'fee_collection_id',
53
- allowNull: true,
54
- },
55
- parentHistoryId: {
56
- type: sequelize_1.DataTypes.UUID,
57
- field: 'parent_history_id',
58
- allowNull: true,
59
- },
60
- bankAccountId: {
61
- type: sequelize_1.DataTypes.UUID,
62
- field: 'bank_account_id',
63
- allowNull: true,
64
- },
65
- feeTypeId: {
66
- type: sequelize_1.DataTypes.ARRAY(sequelize_1.DataTypes.STRING),
67
- defaultValue: [],
68
- field: 'fee_type_id',
69
- allowNull: true,
70
- },
71
- schoolFeeCollectionId: {
72
- type: sequelize_1.DataTypes.UUID,
73
- field: 'school_fee_collection_id',
74
- allowNull: true,
75
- },
76
- // academicCalendarId: {
77
- // type: DataTypes.UUID,
78
- // field: 'academic_calendar_id',
79
- // allowNull: false,
80
- // },
81
- paidDate: {
82
- type: sequelize_1.DataTypes.DATE,
83
- defaultValue: sequelize_1.DataTypes.NOW,
84
- allowNull: false,
85
- },
86
- paidFee: {
87
- type: sequelize_1.DataTypes.INTEGER,
88
- allowNull: false,
89
- },
90
- paymentType: {
91
- type: sequelize_1.DataTypes.ENUM,
92
- values: Object.values(app_1.PAYMENT_TYPE),
93
- allowNull: true,
94
- // defaultValue: PAYMENT_TYPE.CASH,
95
- },
96
- status: {
97
- type: sequelize_1.DataTypes.ENUM,
98
- values: Object.values(app_1.FEE_HISTORY_STATUS),
99
- allowNull: true,
100
- defaultValue: app_1.FEE_HISTORY_STATUS.PENDING,
101
- },
102
- bankName: {
103
- type: sequelize_1.DataTypes.STRING,
104
- allowNull: true,
105
- },
106
- chequeNo: {
107
- type: sequelize_1.DataTypes.STRING,
108
- allowNull: true,
109
- },
110
- upiId: {
111
- type: sequelize_1.DataTypes.STRING,
112
- allowNull: true,
113
- },
114
- }, {
115
- modelName: 'FeeHistoryModel',
116
- tableName: 'fee_history',
117
- timestamps: true,
118
- sequelize: index_1.sequelize,
119
- });
120
- FeeHistoryModel.belongsTo(feesCollectionModel_1.default, {
121
- foreignKey: {
122
- name: 'feeCollectionId',
123
- field: 'fee_collection_id',
124
- allowNull: true,
125
- },
126
- as: 'feeHistoryFeeCollection',
127
- });
128
- feesCollectionModel_1.default.hasMany(FeeHistoryModel, {
129
- foreignKey: {
130
- name: 'feeCollectionId',
131
- field: 'fee_collection_id',
132
- allowNull: true,
133
- },
134
- as: 'feeCollectionHasFeeHistory',
135
- });
136
- FeeHistoryModel.belongsTo(fileStorageModel_1.default, {
137
- foreignKey: {
138
- name: 'pdfId',
139
- field: 'pdf_id',
140
- allowNull: true,
141
- },
142
- as: 'feeHistoryFile',
143
- });
144
- fileStorageModel_1.default.hasMany(FeeHistoryModel, {
145
- foreignKey: {
146
- name: 'pdfId',
147
- field: 'pdf_id',
148
- allowNull: true,
149
- },
150
- as: 'filesHasFeeHistory',
151
- });
152
- FeeHistoryModel.belongsTo(bankAccountDetailsModel_1.default, {
153
- foreignKey: {
154
- name: 'bankAccountId',
155
- field: 'bank_account_id',
156
- allowNull: true,
157
- },
158
- as: 'feeHistoryAccount',
159
- });
160
- bankAccountDetailsModel_1.default.hasMany(FeeHistoryModel, {
161
- foreignKey: {
162
- name: 'bankAccountId',
163
- field: 'bank_account_id',
164
- allowNull: true,
165
- },
166
- as: 'feeHistoryHasAccount',
167
- });
168
- FeeHistoryModel.belongsTo(FeeHistoryModel, {
169
- foreignKey: {
170
- name: 'parentHistoryId',
171
- field: 'parent_history_id',
172
- allowNull: true,
173
- },
174
- as: 'feeHistory',
175
- });
176
- FeeHistoryModel.hasMany(FeeHistoryModel, {
177
- foreignKey: {
178
- name: 'parentHistoryId',
179
- field: 'parent_history_id',
180
- allowNull: true,
181
- },
182
- as: 'feeHistoryHas',
183
- });
184
- FeeHistoryModel.belongsTo(schoolFeeCollectionModel_1.default, {
185
- foreignKey: {
186
- name: 'schoolFeeCollectionId',
187
- field: 'school_fee_collection_id',
188
- allowNull: true,
189
- },
190
- as: 'feeHistorySchool',
191
- });
192
- schoolFeeCollectionModel_1.default.hasMany(FeeHistoryModel, {
193
- foreignKey: {
194
- name: 'schoolFeeCollectionId',
195
- field: 'school_fee_collection_id',
196
- allowNull: true,
197
- },
198
- as: 'feeHistoryHasSchool',
199
- });
200
- FeeHistoryModel.belongsTo(instituteModel_1.default, {
201
- foreignKey: {
202
- name: 'instituteId',
203
- field: 'institute_id',
204
- },
205
- as: 'feeHistoryInstitute',
206
- });
207
- instituteModel_1.default.hasMany(FeeHistoryModel, {
208
- foreignKey: 'instituteId',
209
- as: 'instituteHasFeeHistory',
210
- });
211
- FeeHistoryModel.belongsTo(userModel_1.default, {
212
- foreignKey: {
213
- name: 'userId',
214
- field: 'user_id',
215
- },
216
- as: 'feeHistoryUser',
217
- });
218
- userModel_1.default.hasMany(FeeHistoryModel, {
219
- foreignKey: 'userId',
220
- as: 'userHasFeeHistory',
221
- });
222
- FeeHistoryModel.belongsTo(userModel_1.default, {
223
- foreignKey: {
224
- name: 'createdBy',
225
- allowNull: true,
226
- field: 'created_by',
227
- },
228
- as: 'createdByUser',
229
- });
230
- FeeHistoryModel.belongsTo(userModel_1.default, {
231
- foreignKey: {
232
- name: 'updatedBy',
233
- allowNull: true,
234
- field: 'updated_by',
235
- },
236
- as: 'updatedByUser',
237
- });
238
- FeeHistoryModel.belongsTo(userModel_1.default, {
239
- foreignKey: {
240
- name: 'deletedBy',
241
- allowNull: true,
242
- field: 'deleted_by',
243
- },
244
- as: 'deletedByUser',
245
- });
246
- const subjectWiserFeePay = async (instituteId, feeCollectionId, paidFee, userId) => {
247
- try {
248
- const userInstituteMeta = await userInstituteMetaModel_1.default.findOne({
249
- userId,
250
- instituteId,
251
- status: app_1.USER_INSTITUTE_META_STATUS.ACCEPTED,
13
+ static associate(models) {
14
+ const { UserModel, InstituteModel, SchoolFeeCollectionModel, FeesCollectionModel, FileStorageModel, BankAccountDetailsModel, SubjectHasPayFeeHistory, UserHasSubjectFeeModel, InstituteEntityModel, } = models;
15
+ FeeHistoryModel.belongsTo(FeesCollectionModel, {
16
+ foreignKey: { name: 'feeCollectionId', field: 'fee_collection_id', allowNull: true },
17
+ as: 'feeHistoryFeeCollection',
252
18
  });
253
- if (!userInstituteMeta) {
254
- throw new Error(errorMessages_1.USER_INSTITUTE_META_ERROR_MESSAGES.NOT_FOUND);
255
- }
256
- const subjects = await instituteEntityModel_1.default.findAll({
257
- where: {
258
- id: { [sequelize_1.Op.in]: userInstituteMeta.entities },
259
- },
260
- include: [
261
- {
262
- association: 'entityType',
263
- where: { sequence: app_1.INSTITUTE_ENTITY_TYPE_SEQUENCE.LAST },
264
- },
265
- ],
19
+ FeesCollectionModel.hasMany(FeeHistoryModel, {
20
+ foreignKey: { name: 'feeCollectionId', field: 'fee_collection_id', allowNull: true },
21
+ as: 'feeCollectionHasFeeHistory',
266
22
  });
267
- const subjectIds = subjects.map(subject => subject.id);
268
- const fees = await userHasSubjectFeeModel_1.default.findAll({
269
- where: {
270
- subjectId: { [sequelize_1.Op.in]: subjectIds },
271
- instituteId,
272
- },
23
+ FeeHistoryModel.belongsTo(FileStorageModel, {
24
+ foreignKey: { name: 'pdfId', field: 'pdf_id', allowNull: true },
25
+ as: 'feeHistoryFile',
273
26
  });
274
- const feeCollection = await feesCollectionModel_1.default.findByPk(feeCollectionId);
275
- if (!feeCollection) {
276
- throw new Error(errorMessages_1.FEESCOLLECTION_ERROR_MESSAGES.NOT_FOUND);
277
- }
278
- // const totalFeeAmount = Number(fees.reduce((total, fee) => total + fee.fee, 0));
279
- const feeDistribution = fees.map(fee => {
280
- const subjectPaidFee = (fee.fee / (feeCollection.feeAmount || 0)) * paidFee;
281
- return {
282
- subjectId: fee.subjectId,
283
- amount: parseFloat(subjectPaidFee.toFixed(2)),
284
- };
27
+ FileStorageModel.hasMany(FeeHistoryModel, {
28
+ foreignKey: { name: 'pdfId', field: 'pdf_id', allowNull: true },
29
+ as: 'filesHasFeeHistory',
30
+ });
31
+ FeeHistoryModel.belongsTo(BankAccountDetailsModel, {
32
+ foreignKey: { name: 'bankAccountId', field: 'bank_account_id', allowNull: true },
33
+ as: 'feeHistoryAccount',
34
+ });
35
+ BankAccountDetailsModel.hasMany(FeeHistoryModel, {
36
+ foreignKey: { name: 'bankAccountId', field: 'bank_account_id', allowNull: true },
37
+ as: 'feeHistoryHasAccount',
38
+ });
39
+ FeeHistoryModel.belongsTo(FeeHistoryModel, {
40
+ foreignKey: { name: 'parentHistoryId', field: 'parent_history_id', allowNull: true },
41
+ as: 'feeHistory',
42
+ });
43
+ FeeHistoryModel.hasMany(FeeHistoryModel, {
44
+ foreignKey: { name: 'parentHistoryId', field: 'parent_history_id', allowNull: true },
45
+ as: 'feeHistoryHas',
285
46
  });
286
- const feeHistoryEntries = await Promise.all(feeDistribution.map(async (distribution) => {
287
- return subjectHasPayFeeHistoryModel_1.default.create({
47
+ FeeHistoryModel.belongsTo(SchoolFeeCollectionModel, {
48
+ foreignKey: { name: 'schoolFeeCollectionId', field: 'school_fee_collection_id', allowNull: true },
49
+ as: 'feeHistorySchool',
50
+ });
51
+ SchoolFeeCollectionModel.hasMany(FeeHistoryModel, {
52
+ foreignKey: { name: 'schoolFeeCollectionId', field: 'school_fee_collection_id', allowNull: true },
53
+ as: 'feeHistoryHasSchool',
54
+ });
55
+ FeeHistoryModel.belongsTo(InstituteModel, {
56
+ foreignKey: { name: 'instituteId', field: 'institute_id' },
57
+ as: 'feeHistoryInstitute',
58
+ });
59
+ InstituteModel.hasMany(FeeHistoryModel, {
60
+ foreignKey: 'instituteId',
61
+ as: 'instituteHasFeeHistory',
62
+ });
63
+ FeeHistoryModel.belongsTo(UserModel, {
64
+ foreignKey: { name: 'userId', field: 'user_id' },
65
+ as: 'feeHistoryUser',
66
+ });
67
+ UserModel.hasMany(FeeHistoryModel, {
68
+ foreignKey: 'userId',
69
+ as: 'userHasFeeHistory',
70
+ });
71
+ FeeHistoryModel.belongsTo(UserModel, {
72
+ foreignKey: { name: 'createdBy', allowNull: true, field: 'created_by' },
73
+ as: 'createdByUser',
74
+ });
75
+ FeeHistoryModel.belongsTo(UserModel, {
76
+ foreignKey: { name: 'updatedBy', allowNull: true, field: 'updated_by' },
77
+ as: 'updatedByUser',
78
+ });
79
+ FeeHistoryModel.belongsTo(UserModel, {
80
+ foreignKey: { name: 'deletedBy', allowNull: true, field: 'deleted_by' },
81
+ as: 'deletedByUser',
82
+ });
83
+ }
84
+ static addHooks(models) {
85
+ const { FileStorageModel, FeesCollectionModel, InstituteEntityModel, UserHasSubjectFeeModel, SubjectHasPayFeeHistory } = models;
86
+ const subjectWiserFeePay = async (instituteId, feeCollectionId, paidFee, userId) => {
87
+ const { InstituteEntityModel, UserHasSubjectFeeModel, FeesCollectionModel, SubjectHasPayFeeHistory } = models;
88
+ const userInstituteMeta = await userInstituteMetaModel_1.default.findOne({
89
+ userId,
90
+ instituteId,
91
+ status: app_1.USER_INSTITUTE_META_STATUS.ACCEPTED,
92
+ });
93
+ if (!userInstituteMeta)
94
+ throw new Error(errorMessages_1.USER_INSTITUTE_META_ERROR_MESSAGES.NOT_FOUND);
95
+ const subjects = await InstituteEntityModel.findAll({
96
+ where: { id: { [sequelize_1.Op.in]: userInstituteMeta.entities } },
97
+ include: [{ association: 'entityType', where: { sequence: app_1.INSTITUTE_ENTITY_TYPE_SEQUENCE.LAST } }],
98
+ });
99
+ const subjectIds = subjects.map((subject) => subject.id);
100
+ const fees = await UserHasSubjectFeeModel.findAll({
101
+ where: { subjectId: { [sequelize_1.Op.in]: subjectIds }, instituteId },
102
+ });
103
+ const feeCollection = await FeesCollectionModel.findByPk(feeCollectionId);
104
+ if (!feeCollection)
105
+ throw new Error(errorMessages_1.FEESCOLLECTION_ERROR_MESSAGES.NOT_FOUND);
106
+ const feeDistribution = fees.map((fee) => ({
107
+ subjectId: fee.subjectId,
108
+ amount: parseFloat(((fee.fee / (feeCollection.feeAmount || 0)) * paidFee).toFixed(2)),
109
+ }));
110
+ return Promise.all(feeDistribution.map((distribution) => SubjectHasPayFeeHistory.create({
288
111
  instituteId,
289
112
  userId,
290
113
  subjectId: distribution.subjectId,
291
114
  feeCollectionId,
292
115
  amount: distribution.amount,
293
- });
294
- }));
295
- return feeHistoryEntries;
296
- }
297
- catch (error) {
298
- throw error;
299
- }
300
- };
301
- const beforeCreateOrUpdateHook = async (feeCollection) => {
302
- if (feeCollection.paidFee) {
303
- if (feeCollection.paymentType === app_1.PAYMENT_TYPE.CHEQUE) {
304
- feeCollection.upiId = null;
305
- if (!feeCollection.chequeNo || !feeCollection.bankName) {
306
- throw new Error(errorMessages_1.FEESCOLLECTION_ERROR_MESSAGES.FEE_PAID_BY_CHQUE);
116
+ })));
117
+ };
118
+ FeeHistoryModel.beforeCreate(async (feeCollection) => {
119
+ if (feeCollection.paidFee) {
120
+ if (feeCollection.paymentType === app_1.PAYMENT_TYPE.CHEQUE) {
121
+ feeCollection.upiId = null;
122
+ if (!feeCollection.chequeNo || !feeCollection.bankName) {
123
+ throw new Error(errorMessages_1.FEESCOLLECTION_ERROR_MESSAGES.FEE_PAID_BY_CHQUE);
124
+ }
125
+ }
126
+ else if (feeCollection.paymentType === app_1.PAYMENT_TYPE.UPI) {
127
+ feeCollection.chequeNo = null;
128
+ feeCollection.bankName = null;
129
+ if (!feeCollection.upiId) {
130
+ throw new Error(errorMessages_1.FEESCOLLECTION_ERROR_MESSAGES.FEE_PAID_BY_UPI);
131
+ }
132
+ }
133
+ else if (feeCollection.paymentType === app_1.PAYMENT_TYPE.CASH) {
134
+ feeCollection.bankName = null;
135
+ feeCollection.chequeNo = null;
136
+ feeCollection.upiId = null;
137
+ }
138
+ else {
139
+ throw new Error(errorMessages_1.FEESCOLLECTION_ERROR_MESSAGES.PAYMENT_TYPE_REQUIRED);
140
+ }
141
+ if (feeCollection.pdfId) {
142
+ const pdfUrl = await FileStorageModel.findByPk(feeCollection.pdfId);
143
+ if (!pdfUrl)
144
+ throw new Error(errorMessages_1.FILE_STORAGE_ERROR_MESSAGES.NOT_FOUND);
145
+ }
307
146
  }
308
- }
309
- else if (feeCollection.paymentType === app_1.PAYMENT_TYPE.UPI) {
310
- feeCollection.chequeNo = null;
311
- feeCollection.bankName = null;
312
- if (!feeCollection.upiId) {
313
- throw new Error(errorMessages_1.FEESCOLLECTION_ERROR_MESSAGES.FEE_PAID_BY_UPI);
147
+ if ((!feeCollection.feeTypeId || feeCollection.feeTypeId.length === 0) && !feeCollection.bankAccountId) {
148
+ await subjectWiserFeePay(feeCollection.instituteId, feeCollection.feeCollectionId, feeCollection.paidFee, feeCollection.userId);
314
149
  }
315
- }
316
- else if (feeCollection.paymentType === app_1.PAYMENT_TYPE.CASH) {
317
- feeCollection.bankName = null;
318
- feeCollection.chequeNo = null;
319
- feeCollection.upiId = null;
320
- }
321
- else
322
- throw new Error(errorMessages_1.FEESCOLLECTION_ERROR_MESSAGES.PAYMENT_TYPE_REQUIRED);
323
- if (feeCollection.pdfId) {
324
- const pdfUrl = await fileStorageModel_1.default.findByPk(feeCollection.pdfId);
325
- if (!pdfUrl)
326
- throw new Error(errorMessages_1.FILE_STORAGE_ERROR_MESSAGES.NOT_FOUND);
327
- }
150
+ });
328
151
  }
329
- if ((!feeCollection.feeTypeId || feeCollection.feeTypeId.length === 0) && !feeCollection.bankAccountId)
330
- await subjectWiserFeePay(feeCollection.instituteId, feeCollection.feeCollectionId, feeCollection.paidFee, feeCollection.userId);
331
- };
332
- FeeHistoryModel.beforeCreate(beforeCreateOrUpdateHook);
152
+ }
153
+ exports.FeeHistoryModel = FeeHistoryModel;
154
+ FeeHistoryModel.init({
155
+ id: { type: sequelize_1.DataTypes.UUID, defaultValue: sequelize_1.DataTypes.UUIDV4, allowNull: false, primaryKey: true },
156
+ instituteId: { type: sequelize_1.DataTypes.UUID, field: 'institute_id', allowNull: false },
157
+ pdfId: { type: sequelize_1.DataTypes.UUID, field: 'pdf_id', allowNull: true },
158
+ invoiceId: { type: sequelize_1.DataTypes.INTEGER, field: 'invoice_id', allowNull: true, defaultValue: null },
159
+ userId: { type: sequelize_1.DataTypes.UUID, field: 'user_id', allowNull: false },
160
+ feeCollectionId: { type: sequelize_1.DataTypes.UUID, field: 'fee_collection_id', allowNull: true },
161
+ parentHistoryId: { type: sequelize_1.DataTypes.UUID, field: 'parent_history_id', allowNull: true },
162
+ bankAccountId: { type: sequelize_1.DataTypes.UUID, field: 'bank_account_id', allowNull: true },
163
+ feeTypeId: { type: sequelize_1.DataTypes.ARRAY(sequelize_1.DataTypes.STRING), field: 'fee_type_id', allowNull: true, defaultValue: [] },
164
+ schoolFeeCollectionId: { type: sequelize_1.DataTypes.UUID, field: 'school_fee_collection_id', allowNull: true },
165
+ paidDate: { type: sequelize_1.DataTypes.DATE, defaultValue: sequelize_1.DataTypes.NOW, allowNull: false },
166
+ paidFee: { type: sequelize_1.DataTypes.INTEGER, allowNull: false },
167
+ paymentType: { type: sequelize_1.DataTypes.ENUM, values: Object.values(app_1.PAYMENT_TYPE), allowNull: true },
168
+ status: { type: sequelize_1.DataTypes.ENUM, values: Object.values(app_1.FEE_HISTORY_STATUS), allowNull: true, defaultValue: app_1.FEE_HISTORY_STATUS.PENDING },
169
+ bankName: { type: sequelize_1.DataTypes.STRING, allowNull: true },
170
+ chequeNo: { type: sequelize_1.DataTypes.STRING, allowNull: true },
171
+ upiId: { type: sequelize_1.DataTypes.STRING, allowNull: true },
172
+ }, {
173
+ modelName: 'FeeHistoryModel',
174
+ tableName: 'fee_history',
175
+ timestamps: true,
176
+ sequelize: index_1.sequelize,
177
+ });
333
178
  exports.default = FeeHistoryModel;
@@ -18,5 +18,7 @@ declare class FeeReminderModel extends Model<IFeeReminderModelAttributes, TFeeRe
18
18
  readonly createdAt: Date;
19
19
  readonly deletedAt: string;
20
20
  readonly updatedAt: Date;
21
+ static associate(models: any): void;
22
+ static addHooks(models: any): void;
21
23
  }
22
24
  export default FeeReminderModel;