@kipicore/dbcore 1.1.189 → 1.1.190
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/README.md +3 -0
- package/dist/constants/app.d.ts +7 -0
- package/dist/constants/app.js +12 -4
- package/dist/db/psql/migrations/20260101103458-student_fee_collection.d.ts +2 -0
- package/dist/db/psql/migrations/20260101103458-student_fee_collection.js +218 -0
- package/dist/db/psql/migrations/20260102085140-student_histroy.d.ts +2 -0
- package/dist/db/psql/migrations/20260102085140-student_histroy.js +258 -0
- package/dist/db/psql/migrations/20260105053705-school_fee_terms.d.ts +2 -0
- package/dist/db/psql/migrations/20260105053705-school_fee_terms.js +192 -0
- package/dist/db/psql/migrations/20260105070348-student_feeType_collection.d.ts +2 -0
- package/dist/db/psql/migrations/20260105070348-student_feeType_collection.js +204 -0
- package/dist/interfaces/feeTypeInterface.d.ts +6 -1
- package/dist/interfaces/index.d.ts +4 -0
- package/dist/interfaces/index.js +4 -0
- package/dist/interfaces/schoolFee1Interface.d.ts +1 -6
- package/dist/interfaces/schoolFeeTermsInterface.d.ts +14 -0
- package/dist/interfaces/schoolFeeTermsInterface.js +2 -0
- package/dist/interfaces/studentFeeCollectionInterface.d.ts +18 -0
- package/dist/interfaces/studentFeeCollectionInterface.js +2 -0
- package/dist/interfaces/studentFeeHistoryInterface.d.ts +23 -0
- package/dist/interfaces/studentFeeHistoryInterface.js +2 -0
- package/dist/interfaces/studentFeeTypeCollectionInterface.d.ts +15 -0
- package/dist/interfaces/studentFeeTypeCollectionInterface.js +2 -0
- package/dist/models/mongodb/schoolFee1Model.js +24 -21
- package/dist/models/psql/feeTypeModel.d.ts +6 -1
- package/dist/models/psql/feeTypeModel.js +26 -11
- package/dist/models/psql/index.d.ts +4 -0
- package/dist/models/psql/index.js +9 -1
- package/dist/models/psql/schoolFeeTermsModel.d.ts +24 -0
- package/dist/models/psql/schoolFeeTermsModel.js +121 -0
- package/dist/models/psql/studentFeeCollectionModel.d.ts +29 -0
- package/dist/models/psql/studentFeeCollectionModel.js +152 -0
- package/dist/models/psql/studentFeeHistoryModel.d.ts +34 -0
- package/dist/models/psql/studentFeeHistoryModel.js +134 -0
- package/dist/models/psql/studentFeeTypeCollectionModel.d.ts +26 -0
- package/dist/models/psql/studentFeeTypeCollectionModel.js +96 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.js +4 -0
- package/dist/types/schoolFeeTermsType.d.ts +3 -0
- package/dist/types/schoolFeeTermsType.js +2 -0
- package/dist/types/studentFeeCollectionType.d.ts +3 -0
- package/dist/types/studentFeeCollectionType.js +2 -0
- package/dist/types/studentFeeHistoryType.d.ts +3 -0
- package/dist/types/studentFeeHistoryType.js +2 -0
- package/dist/types/studentFeeTypeCollectionType.d.ts +3 -0
- package/dist/types/studentFeeTypeCollectionType.js +2 -0
- package/package.json +3 -2
|
@@ -5,15 +5,15 @@ const index_1 = require("./index");
|
|
|
5
5
|
const app_1 = require("../../constants/app");
|
|
6
6
|
class FeeTypeModel extends sequelize_1.Model {
|
|
7
7
|
static associate(models) {
|
|
8
|
-
const {
|
|
9
|
-
FeeTypeModel.belongsTo(BankAccountDetailsModel, {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
});
|
|
13
|
-
BankAccountDetailsModel.hasMany(FeeTypeModel, {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
});
|
|
8
|
+
const { TypeManagementModel, InstituteModel, UserModel, AcademicCalendarModel } = models;
|
|
9
|
+
// FeeTypeModel.belongsTo(BankAccountDetailsModel, {
|
|
10
|
+
// foreignKey: { name: 'account' },
|
|
11
|
+
// as: 'accountFeeType',
|
|
12
|
+
// });
|
|
13
|
+
// BankAccountDetailsModel.hasMany(FeeTypeModel, {
|
|
14
|
+
// foreignKey: 'account',
|
|
15
|
+
// as: 'feeTypeHasAccount',
|
|
16
|
+
// });
|
|
17
17
|
TypeManagementModel.hasMany(FeeTypeModel, {
|
|
18
18
|
foreignKey: 'typeManagementId',
|
|
19
19
|
as: 'feeTypeTypeManagement',
|
|
@@ -70,8 +70,8 @@ FeeTypeModel.init({
|
|
|
70
70
|
allowNull: false,
|
|
71
71
|
},
|
|
72
72
|
account: {
|
|
73
|
-
type: sequelize_1.DataTypes.UUID,
|
|
74
|
-
allowNull:
|
|
73
|
+
type: sequelize_1.DataTypes.ARRAY(sequelize_1.DataTypes.UUID),
|
|
74
|
+
allowNull: true,
|
|
75
75
|
},
|
|
76
76
|
status: {
|
|
77
77
|
type: sequelize_1.DataTypes.ENUM(...Object.values(app_1.COMMAN_STATUS)),
|
|
@@ -101,6 +101,21 @@ FeeTypeModel.init({
|
|
|
101
101
|
field: 'academic_calendar_id',
|
|
102
102
|
allowNull: true,
|
|
103
103
|
},
|
|
104
|
+
isCreditAllowed: {
|
|
105
|
+
type: sequelize_1.DataTypes.BOOLEAN,
|
|
106
|
+
},
|
|
107
|
+
isCashAllowed: {
|
|
108
|
+
type: sequelize_1.DataTypes.BOOLEAN,
|
|
109
|
+
},
|
|
110
|
+
isRefundable: {
|
|
111
|
+
type: sequelize_1.DataTypes.BOOLEAN,
|
|
112
|
+
},
|
|
113
|
+
isTaxable: {
|
|
114
|
+
type: sequelize_1.DataTypes.BOOLEAN,
|
|
115
|
+
},
|
|
116
|
+
isRequired: {
|
|
117
|
+
type: sequelize_1.DataTypes.BOOLEAN,
|
|
118
|
+
},
|
|
104
119
|
}, {
|
|
105
120
|
modelName: 'FeeTypeModel',
|
|
106
121
|
tableName: 'fee_type',
|
|
@@ -114,5 +114,9 @@ export { default as IncomeExpenseModel } from './incomeExpenseModel';
|
|
|
114
114
|
export { default as CloneListModel } from './cloneListModel';
|
|
115
115
|
export { default as StudentLeaveRequestModel } from './studentLeaveRequestModel';
|
|
116
116
|
export { default as UserDirectoryModel } from './userDirectoryModel';
|
|
117
|
+
export { default as StudentFeeCollectionModel } from './studentFeeCollectionModel';
|
|
118
|
+
export { default as StudentFeeHistoryModel } from './studentFeeHistoryModel';
|
|
119
|
+
export { default as SchoolFeeTermsModel } from './schoolFeeTermsModel';
|
|
120
|
+
export { default as StudentFeeTypeCollectionModel } from './studentFeeTypeCollectionModel';
|
|
117
121
|
export { default as ClassRoomEventModel } from './classRoomEvent';
|
|
118
122
|
export { default as ClassRoomCollectionModel } from './classRoomCollectionModel';
|
|
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.OfferModel = exports.ModuleModel = exports.ModuleFeatureModel = exports.MasterLeaveModel = exports.LectureModel = exports.LectureHistoryModel = exports.InventoryModel = exports.InventoryHistoryModel = exports.InstituteSubscriptionPlanModel = exports.InstituteModel = exports.InstituteEntityTypeModel = exports.InstituteEntityModel = exports.HomeWorkModel = exports.GreetingsModel = exports.FloorManagementModel = exports.FileStorageModel = exports.FeesCollectionModel = exports.FeeTypeModel = exports.FeeTypeHasTermsModel = exports.FeeReminderSettingModel = exports.FeeReminderModel = exports.FeeHistoryModel = exports.FeeHistoryDetailsModel = exports.FeatureActionModel = exports.FacilityModel = exports.EntityGroupModel = exports.DriverModel = exports.CourseModel = exports.CourseHasVisitorsModel = exports.CountryModel = exports.ContactFeedBackModel = exports.CoinPurchaseOfferModel = exports.CloudStorageModel = exports.ClassRoomModel = exports.CityModel = exports.CategoriesModel = exports.BookAssessmentDateModel = exports.BatchSubjectProjectAssessmentModel = exports.BatchSubjectBookAssessmentModel = exports.BatchModel = exports.BannerModel = exports.BankAccountDetailsModel = exports.AreaModel = exports.AnnouncementModel = exports.AccountHasReceiptDetailsModel = exports.AcademicCalendarModel = exports.SubCategoriesModel = exports.Sequelize = exports.db = exports.sequelize = void 0;
|
|
7
7
|
exports.VendorManagementModel = exports.VehicleModel = exports.UserRequiredStepsModel = exports.UserProjectAssessmentOptionModel = exports.UserPayoutModel = exports.UserPayoutHistoryModel = exports.UserPayoutDetailsModel = exports.UserModel = exports.UserLeaveRequestModel = exports.UserHasSubjectFeeModel = exports.UserHasStorageModel = exports.UserHasRollNumberModel = exports.UserHasRoleModel = exports.UserHasParentModel = exports.UserHasOfferModel = exports.UserHasLeaveModel = exports.UserHasLeaveHistoryModel = exports.UserHasInventoryModel = exports.UserHasInventoryHistoryModel = exports.UserHasHomeWorkModel = exports.UserHasFileModel = exports.UserHasFeeTermsModel = exports.UserHasDeviceModel = exports.UserHasCourseModel = exports.UserHasBatchModel = exports.UserHasAnnouncementModel = exports.UserFeeTypeModel = exports.UserFeeTypeByAccountModel = exports.UserBookAssessmentModel = exports.TypeManagementModel = exports.TripModel = exports.TokenModel = exports.ToDoModel = exports.TestimonialModel = exports.SyllabusModel = exports.SubjectHasPayFeeHistoryModel = exports.SubjectHasFeeModel = exports.StateModel = exports.SlotModel = exports.SendNotificationModel = exports.SchoolOfferModel = exports.SchoolFeeCollectionModel = exports.RulesRegulationModel = exports.RoleModel = exports.ProjectAssessmentOptionModel = exports.ProductModel = exports.PincodeModel = exports.PdcHistoryModel = exports.PdcChequeModel = exports.PaymentTermsModel = void 0;
|
|
8
|
-
exports.ClassRoomCollectionModel = exports.ClassRoomEventModel = exports.UserDirectoryModel = exports.StudentLeaveRequestModel = exports.CloneListModel = exports.IncomeExpenseModel = exports.MaintenanceModel = exports.AdvertisementModel = exports.WorkOffDaysModel = exports.EntityWiseCalendarModel = exports.CampusModel = exports.LostFoundItemModel = exports.WorkingShiftModel = exports.WorkingDayModel = exports.WalletModel = exports.WalletHistoryModel = void 0;
|
|
8
|
+
exports.ClassRoomCollectionModel = exports.ClassRoomEventModel = exports.StudentFeeTypeCollectionModel = exports.SchoolFeeTermsModel = exports.StudentFeeHistoryModel = exports.StudentFeeCollectionModel = exports.UserDirectoryModel = exports.StudentLeaveRequestModel = exports.CloneListModel = exports.IncomeExpenseModel = exports.MaintenanceModel = exports.AdvertisementModel = exports.WorkOffDaysModel = exports.EntityWiseCalendarModel = exports.CampusModel = exports.LostFoundItemModel = exports.WorkingShiftModel = exports.WorkingDayModel = exports.WalletModel = exports.WalletHistoryModel = void 0;
|
|
9
9
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
10
10
|
const sequelize_1 = require("sequelize");
|
|
11
11
|
Object.defineProperty(exports, "Sequelize", { enumerable: true, get: function () { return sequelize_1.Sequelize; } });
|
|
@@ -323,6 +323,14 @@ var studentLeaveRequestModel_1 = require("./studentLeaveRequestModel");
|
|
|
323
323
|
Object.defineProperty(exports, "StudentLeaveRequestModel", { enumerable: true, get: function () { return __importDefault(studentLeaveRequestModel_1).default; } });
|
|
324
324
|
var userDirectoryModel_1 = require("./userDirectoryModel");
|
|
325
325
|
Object.defineProperty(exports, "UserDirectoryModel", { enumerable: true, get: function () { return __importDefault(userDirectoryModel_1).default; } });
|
|
326
|
+
var studentFeeCollectionModel_1 = require("./studentFeeCollectionModel");
|
|
327
|
+
Object.defineProperty(exports, "StudentFeeCollectionModel", { enumerable: true, get: function () { return __importDefault(studentFeeCollectionModel_1).default; } });
|
|
328
|
+
var studentFeeHistoryModel_1 = require("./studentFeeHistoryModel");
|
|
329
|
+
Object.defineProperty(exports, "StudentFeeHistoryModel", { enumerable: true, get: function () { return __importDefault(studentFeeHistoryModel_1).default; } });
|
|
330
|
+
var schoolFeeTermsModel_1 = require("./schoolFeeTermsModel");
|
|
331
|
+
Object.defineProperty(exports, "SchoolFeeTermsModel", { enumerable: true, get: function () { return __importDefault(schoolFeeTermsModel_1).default; } });
|
|
332
|
+
var studentFeeTypeCollectionModel_1 = require("./studentFeeTypeCollectionModel");
|
|
333
|
+
Object.defineProperty(exports, "StudentFeeTypeCollectionModel", { enumerable: true, get: function () { return __importDefault(studentFeeTypeCollectionModel_1).default; } });
|
|
326
334
|
var classRoomEvent_1 = require("./classRoomEvent");
|
|
327
335
|
Object.defineProperty(exports, "ClassRoomEventModel", { enumerable: true, get: function () { return __importDefault(classRoomEvent_1).default; } });
|
|
328
336
|
var classRoomCollectionModel_1 = require("./classRoomCollectionModel");
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Model } from 'sequelize';
|
|
2
|
+
import { ISchoolFeeTermsModelAttributes } from '../../interfaces/schoolFeeTermsInterface';
|
|
3
|
+
import { PAYMENT_TERMS_TYPE } from '../../constants';
|
|
4
|
+
import { TSchoolFeeTermsModelCreationAttributes } from '../../types/schoolFeeTermsType';
|
|
5
|
+
export declare class SchoolFeeTermsModel extends Model<ISchoolFeeTermsModelAttributes, TSchoolFeeTermsModelCreationAttributes> {
|
|
6
|
+
id: string;
|
|
7
|
+
instituteId: string;
|
|
8
|
+
academicCalendarId: string;
|
|
9
|
+
stdId: string;
|
|
10
|
+
feeTypeId: string;
|
|
11
|
+
frequency: PAYMENT_TERMS_TYPE;
|
|
12
|
+
amount: number;
|
|
13
|
+
date: Date;
|
|
14
|
+
oldId?: string;
|
|
15
|
+
termsDependedId: string;
|
|
16
|
+
createdBy: string;
|
|
17
|
+
updatedBy: string;
|
|
18
|
+
deletedBy: string;
|
|
19
|
+
readonly createdAt: Date;
|
|
20
|
+
readonly updatedAt: Date;
|
|
21
|
+
readonly deletedAt: string;
|
|
22
|
+
static associate(models: any): void;
|
|
23
|
+
}
|
|
24
|
+
export default SchoolFeeTermsModel;
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SchoolFeeTermsModel = void 0;
|
|
4
|
+
const sequelize_1 = require("sequelize");
|
|
5
|
+
const index_1 = require("./index");
|
|
6
|
+
class SchoolFeeTermsModel extends sequelize_1.Model {
|
|
7
|
+
static associate(models) {
|
|
8
|
+
const { UserModel, InstituteModel, AcademicCalendarModel, FeeTypeModel, InstituteEntityModel } = models;
|
|
9
|
+
SchoolFeeTermsModel.belongsTo(SchoolFeeTermsModel, {
|
|
10
|
+
foreignKey: { name: 'oldId', field: 'old_id', allowNull: true },
|
|
11
|
+
as: 'schoolOldFeeTerms',
|
|
12
|
+
});
|
|
13
|
+
SchoolFeeTermsModel.hasMany(SchoolFeeTermsModel, {
|
|
14
|
+
foreignKey: { name: 'oldId', field: 'old_id', allowNull: true },
|
|
15
|
+
as: 'schoolTermsHasOldTerms',
|
|
16
|
+
});
|
|
17
|
+
SchoolFeeTermsModel.belongsTo(FeeTypeModel, {
|
|
18
|
+
foreignKey: { name: 'feeTypeId', field: 'fee_type_id', allowNull: true },
|
|
19
|
+
as: 'feeTermsFeeType',
|
|
20
|
+
});
|
|
21
|
+
FeeTypeModel.hasMany(SchoolFeeTermsModel, {
|
|
22
|
+
foreignKey: { name: 'feeTypeId', field: 'fee_type_id', allowNull: true },
|
|
23
|
+
as: 'schoolTermsHasFeeType',
|
|
24
|
+
});
|
|
25
|
+
SchoolFeeTermsModel.belongsTo(InstituteModel, {
|
|
26
|
+
foreignKey: { name: 'instituteId', field: 'institute_id' },
|
|
27
|
+
as: 'schoolFeeTermsInstitute',
|
|
28
|
+
});
|
|
29
|
+
InstituteModel.hasMany(SchoolFeeTermsModel, {
|
|
30
|
+
foreignKey: 'instituteId',
|
|
31
|
+
as: 'instituteHasSchoolFeeTerms',
|
|
32
|
+
});
|
|
33
|
+
SchoolFeeTermsModel.belongsTo(AcademicCalendarModel, {
|
|
34
|
+
foreignKey: { name: 'academicCalendarId', field: 'academic_calendar_id' },
|
|
35
|
+
as: 'schoolFeeTermsAcaCal',
|
|
36
|
+
});
|
|
37
|
+
AcademicCalendarModel.hasMany(SchoolFeeTermsModel, {
|
|
38
|
+
foreignKey: { name: 'academicCalendarId', field: 'academic_calendar_id' },
|
|
39
|
+
as: 'acaCalSchoolFeeTerms',
|
|
40
|
+
});
|
|
41
|
+
SchoolFeeTermsModel.belongsTo(InstituteEntityModel, {
|
|
42
|
+
foreignKey: { name: 'stdId', field: 'std_id' },
|
|
43
|
+
as: 'schoolFeeTermsStd',
|
|
44
|
+
});
|
|
45
|
+
InstituteEntityModel.hasMany(SchoolFeeTermsModel, {
|
|
46
|
+
foreignKey: { name: 'stdId', field: 'std_id' },
|
|
47
|
+
as: 'stdHasSchoolFeeTerms',
|
|
48
|
+
});
|
|
49
|
+
SchoolFeeTermsModel.belongsTo(UserModel, {
|
|
50
|
+
foreignKey: { name: 'createdBy', allowNull: true, field: 'created_by' },
|
|
51
|
+
as: 'createdByUser',
|
|
52
|
+
});
|
|
53
|
+
SchoolFeeTermsModel.belongsTo(UserModel, {
|
|
54
|
+
foreignKey: { name: 'updatedBy', allowNull: true, field: 'updated_by' },
|
|
55
|
+
as: 'updatedByUser',
|
|
56
|
+
});
|
|
57
|
+
SchoolFeeTermsModel.belongsTo(UserModel, {
|
|
58
|
+
foreignKey: { name: 'deletedBy', allowNull: true, field: 'deleted_by' },
|
|
59
|
+
as: 'deletedByUser',
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.SchoolFeeTermsModel = SchoolFeeTermsModel;
|
|
64
|
+
SchoolFeeTermsModel.init({
|
|
65
|
+
id: {
|
|
66
|
+
type: sequelize_1.DataTypes.UUID,
|
|
67
|
+
defaultValue: sequelize_1.DataTypes.UUIDV4,
|
|
68
|
+
allowNull: true,
|
|
69
|
+
primaryKey: true,
|
|
70
|
+
},
|
|
71
|
+
instituteId: {
|
|
72
|
+
type: sequelize_1.DataTypes.UUID,
|
|
73
|
+
field: 'institute_id',
|
|
74
|
+
allowNull: true,
|
|
75
|
+
},
|
|
76
|
+
academicCalendarId: {
|
|
77
|
+
type: sequelize_1.DataTypes.UUID,
|
|
78
|
+
field: 'academic_calendar_id',
|
|
79
|
+
allowNull: true,
|
|
80
|
+
},
|
|
81
|
+
stdId: {
|
|
82
|
+
type: sequelize_1.DataTypes.UUID,
|
|
83
|
+
field: 'std_id',
|
|
84
|
+
allowNull: true,
|
|
85
|
+
},
|
|
86
|
+
feeTypeId: {
|
|
87
|
+
type: sequelize_1.DataTypes.UUID,
|
|
88
|
+
field: 'fee_type_id',
|
|
89
|
+
allowNull: true,
|
|
90
|
+
},
|
|
91
|
+
amount: {
|
|
92
|
+
type: sequelize_1.DataTypes.INTEGER,
|
|
93
|
+
field: 'amount',
|
|
94
|
+
allowNull: true,
|
|
95
|
+
},
|
|
96
|
+
date: {
|
|
97
|
+
type: sequelize_1.DataTypes.DATE,
|
|
98
|
+
field: 'date',
|
|
99
|
+
allowNull: true,
|
|
100
|
+
},
|
|
101
|
+
oldId: {
|
|
102
|
+
type: sequelize_1.DataTypes.STRING,
|
|
103
|
+
field: 'old_id',
|
|
104
|
+
allowNull: true,
|
|
105
|
+
},
|
|
106
|
+
termsDependedId: {
|
|
107
|
+
type: sequelize_1.DataTypes.STRING,
|
|
108
|
+
field: 'terms_depended_id',
|
|
109
|
+
allowNull: true,
|
|
110
|
+
},
|
|
111
|
+
frequency: {
|
|
112
|
+
type: sequelize_1.DataTypes.STRING,
|
|
113
|
+
allowNull: true,
|
|
114
|
+
},
|
|
115
|
+
}, {
|
|
116
|
+
modelName: 'SchoolFeeTermsModel',
|
|
117
|
+
tableName: 'school_fee_terms',
|
|
118
|
+
timestamps: true,
|
|
119
|
+
sequelize: index_1.sequelize,
|
|
120
|
+
});
|
|
121
|
+
exports.default = SchoolFeeTermsModel;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Model } from 'sequelize';
|
|
2
|
+
import { IStudentFeeCollectionModelAttributes } from '../../interfaces/studentFeeCollectionInterface';
|
|
3
|
+
import { TStudentFeeCollectionModelCreationAttributes } from '../../types/studentFeeCollectionType';
|
|
4
|
+
import { STUDENT_FEE_COLLECTION_STATUS } from '../../constants/app';
|
|
5
|
+
declare class StudentFeeCollectionModel extends Model<IStudentFeeCollectionModelAttributes, TStudentFeeCollectionModelCreationAttributes> {
|
|
6
|
+
id: string;
|
|
7
|
+
userId: string;
|
|
8
|
+
academicCalendarId: string;
|
|
9
|
+
instituteId: string;
|
|
10
|
+
oldId?: string;
|
|
11
|
+
status: STUDENT_FEE_COLLECTION_STATUS;
|
|
12
|
+
oldPendingAmount: number;
|
|
13
|
+
discount: number;
|
|
14
|
+
settleUpFee: number;
|
|
15
|
+
paidFee: number;
|
|
16
|
+
totalFee: number;
|
|
17
|
+
collectionDependedId: string;
|
|
18
|
+
carryForwardTo: string;
|
|
19
|
+
carryForwardFee: number;
|
|
20
|
+
createdBy: string;
|
|
21
|
+
updatedBy: string;
|
|
22
|
+
deletedBy: string;
|
|
23
|
+
readonly createdAt: Date;
|
|
24
|
+
readonly deletedAt: string;
|
|
25
|
+
readonly updatedAt: Date;
|
|
26
|
+
static addHooks(models: any): void;
|
|
27
|
+
static associate(models: any): void;
|
|
28
|
+
}
|
|
29
|
+
export default StudentFeeCollectionModel;
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const sequelize_1 = require("sequelize");
|
|
4
|
+
const index_1 = require("./index");
|
|
5
|
+
const app_1 = require("../../constants/app");
|
|
6
|
+
class StudentFeeCollectionModel extends sequelize_1.Model {
|
|
7
|
+
static addHooks(models) {
|
|
8
|
+
const beforeCreateOrUpdateHook = async (feeCollection) => {
|
|
9
|
+
// if need write logic for validate fee
|
|
10
|
+
};
|
|
11
|
+
StudentFeeCollectionModel.beforeBulkCreate(async (instances) => {
|
|
12
|
+
for (const instance of instances) {
|
|
13
|
+
await beforeCreateOrUpdateHook(instance);
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
StudentFeeCollectionModel.beforeCreate(beforeCreateOrUpdateHook);
|
|
17
|
+
StudentFeeCollectionModel.beforeBulkUpdate(async (options) => {
|
|
18
|
+
await beforeCreateOrUpdateHook(options.attributes);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
static associate(models) {
|
|
22
|
+
const { InstituteModel, UserModel, AcademicCalendarModel } = models;
|
|
23
|
+
StudentFeeCollectionModel.belongsTo(InstituteModel, {
|
|
24
|
+
foreignKey: { name: 'instituteId', field: 'institute_id' },
|
|
25
|
+
as: 'studentCollectionInstitute',
|
|
26
|
+
});
|
|
27
|
+
InstituteModel.hasMany(StudentFeeCollectionModel, {
|
|
28
|
+
foreignKey: 'instituteId',
|
|
29
|
+
as: 'instituteHasStudentCollection',
|
|
30
|
+
});
|
|
31
|
+
StudentFeeCollectionModel.belongsTo(UserModel, {
|
|
32
|
+
foreignKey: { name: 'userId', field: 'user_id' },
|
|
33
|
+
as: 'studentCollectionUser',
|
|
34
|
+
});
|
|
35
|
+
UserModel.hasMany(StudentFeeCollectionModel, {
|
|
36
|
+
foreignKey: 'userId',
|
|
37
|
+
as: 'userHasStudentCollection',
|
|
38
|
+
});
|
|
39
|
+
StudentFeeCollectionModel.belongsTo(AcademicCalendarModel, {
|
|
40
|
+
foreignKey: { name: 'academicCalendarId', field: 'academic_calendar_id', allowNull: true },
|
|
41
|
+
as: 'collectionCalendar',
|
|
42
|
+
});
|
|
43
|
+
AcademicCalendarModel.hasMany(StudentFeeCollectionModel, {
|
|
44
|
+
foreignKey: { name: 'academicCalendarId', field: 'academic_calendar_id', allowNull: true },
|
|
45
|
+
as: 'collectionHasCalendar',
|
|
46
|
+
});
|
|
47
|
+
StudentFeeCollectionModel.belongsTo(StudentFeeCollectionModel, {
|
|
48
|
+
foreignKey: { name: 'oldId', field: 'old_id', allowNull: true },
|
|
49
|
+
as: 'oldCollection',
|
|
50
|
+
});
|
|
51
|
+
StudentFeeCollectionModel.hasMany(StudentFeeCollectionModel, {
|
|
52
|
+
foreignKey: { name: 'oldId', field: 'old_id', allowNull: true },
|
|
53
|
+
as: 'collectionHasOldCollection',
|
|
54
|
+
});
|
|
55
|
+
StudentFeeCollectionModel.belongsTo(UserModel, {
|
|
56
|
+
foreignKey: { name: 'createdBy', allowNull: true, field: 'created_by' },
|
|
57
|
+
as: 'createdByUser',
|
|
58
|
+
});
|
|
59
|
+
StudentFeeCollectionModel.belongsTo(UserModel, {
|
|
60
|
+
foreignKey: { name: 'updatedBy', allowNull: true, field: 'updated_by' },
|
|
61
|
+
as: 'updatedByUser',
|
|
62
|
+
});
|
|
63
|
+
StudentFeeCollectionModel.belongsTo(UserModel, {
|
|
64
|
+
foreignKey: { name: 'deletedBy', allowNull: true, field: 'deleted_by' },
|
|
65
|
+
as: 'deletedByUser',
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
StudentFeeCollectionModel.init({
|
|
70
|
+
id: {
|
|
71
|
+
type: sequelize_1.DataTypes.UUID,
|
|
72
|
+
defaultValue: sequelize_1.DataTypes.UUIDV4,
|
|
73
|
+
allowNull: false,
|
|
74
|
+
primaryKey: true,
|
|
75
|
+
},
|
|
76
|
+
userId: {
|
|
77
|
+
type: sequelize_1.DataTypes.UUID,
|
|
78
|
+
allowNull: true,
|
|
79
|
+
field: 'user_id',
|
|
80
|
+
},
|
|
81
|
+
academicCalendarId: {
|
|
82
|
+
type: sequelize_1.DataTypes.UUID,
|
|
83
|
+
allowNull: true,
|
|
84
|
+
field: 'academic_calendar_id',
|
|
85
|
+
},
|
|
86
|
+
instituteId: {
|
|
87
|
+
type: sequelize_1.DataTypes.UUID,
|
|
88
|
+
allowNull: true,
|
|
89
|
+
field: 'institute_id',
|
|
90
|
+
},
|
|
91
|
+
oldId: {
|
|
92
|
+
type: sequelize_1.DataTypes.UUID,
|
|
93
|
+
allowNull: true,
|
|
94
|
+
field: 'old_id',
|
|
95
|
+
},
|
|
96
|
+
status: {
|
|
97
|
+
type: sequelize_1.DataTypes.STRING,
|
|
98
|
+
defaultValue: app_1.STUDENT_FEE_COLLECTION_STATUS.PENDING,
|
|
99
|
+
allowNull: true,
|
|
100
|
+
},
|
|
101
|
+
oldPendingAmount: {
|
|
102
|
+
type: sequelize_1.DataTypes.INTEGER,
|
|
103
|
+
allowNull: true,
|
|
104
|
+
defaultValue: 0,
|
|
105
|
+
field: 'old_pending_amount',
|
|
106
|
+
},
|
|
107
|
+
discount: {
|
|
108
|
+
type: sequelize_1.DataTypes.INTEGER,
|
|
109
|
+
allowNull: true,
|
|
110
|
+
defaultValue: 0,
|
|
111
|
+
},
|
|
112
|
+
settleUpFee: {
|
|
113
|
+
type: sequelize_1.DataTypes.INTEGER,
|
|
114
|
+
allowNull: true,
|
|
115
|
+
defaultValue: 0,
|
|
116
|
+
field: 'settle_up_fee',
|
|
117
|
+
},
|
|
118
|
+
paidFee: {
|
|
119
|
+
type: sequelize_1.DataTypes.INTEGER,
|
|
120
|
+
allowNull: true,
|
|
121
|
+
defaultValue: 0,
|
|
122
|
+
field: 'paid_fee',
|
|
123
|
+
},
|
|
124
|
+
totalFee: {
|
|
125
|
+
type: sequelize_1.DataTypes.INTEGER,
|
|
126
|
+
allowNull: true,
|
|
127
|
+
defaultValue: 0,
|
|
128
|
+
field: 'total_fee',
|
|
129
|
+
},
|
|
130
|
+
collectionDependedId: {
|
|
131
|
+
type: sequelize_1.DataTypes.STRING,
|
|
132
|
+
allowNull: true,
|
|
133
|
+
field: 'collection_depended_id',
|
|
134
|
+
},
|
|
135
|
+
carryForwardTo: {
|
|
136
|
+
type: sequelize_1.DataTypes.UUID,
|
|
137
|
+
allowNull: true,
|
|
138
|
+
field: 'carry_forward_to',
|
|
139
|
+
},
|
|
140
|
+
carryForwardFee: {
|
|
141
|
+
type: sequelize_1.DataTypes.INTEGER,
|
|
142
|
+
allowNull: true,
|
|
143
|
+
defaultValue: 0,
|
|
144
|
+
field: 'carry_forward_fee',
|
|
145
|
+
},
|
|
146
|
+
}, {
|
|
147
|
+
modelName: 'StudentFeeCollectionModel',
|
|
148
|
+
tableName: 'student_fee_collection',
|
|
149
|
+
timestamps: true,
|
|
150
|
+
sequelize: index_1.sequelize,
|
|
151
|
+
});
|
|
152
|
+
exports.default = StudentFeeCollectionModel;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Model } from 'sequelize';
|
|
2
|
+
import { IStudentFeeHistoryModelAttributes } from '../../interfaces/studentFeeHistoryInterface';
|
|
3
|
+
import { FEE_HISTORY_STATUS, PAYMENT_TYPE } from '../../constants';
|
|
4
|
+
import { TStudentFeeHistoryModelCreationAttributes } from '../../types/studentFeeHistoryType';
|
|
5
|
+
export declare class StudentFeeHistoryModel extends Model<IStudentFeeHistoryModelAttributes, TStudentFeeHistoryModelCreationAttributes> {
|
|
6
|
+
id: string;
|
|
7
|
+
instituteId: string;
|
|
8
|
+
userId: string;
|
|
9
|
+
academicCalendarId: string;
|
|
10
|
+
parentHistoryId?: string;
|
|
11
|
+
paymentType: PAYMENT_TYPE;
|
|
12
|
+
paidFee: number;
|
|
13
|
+
status: FEE_HISTORY_STATUS;
|
|
14
|
+
feeTypeId?: string[];
|
|
15
|
+
bankAccountId?: string;
|
|
16
|
+
invoicePdf?: string;
|
|
17
|
+
invoiceNumber?: string;
|
|
18
|
+
studentFeeCollectionId: string;
|
|
19
|
+
feeHistoryConfigId?: string;
|
|
20
|
+
note?: string;
|
|
21
|
+
paidDate: Date;
|
|
22
|
+
upiId?: string;
|
|
23
|
+
bankName?: string;
|
|
24
|
+
chequeNo?: string;
|
|
25
|
+
createdBy: string;
|
|
26
|
+
updatedBy: string;
|
|
27
|
+
deletedBy: string;
|
|
28
|
+
readonly createdAt: Date;
|
|
29
|
+
readonly updatedAt: Date;
|
|
30
|
+
readonly deletedAt: string;
|
|
31
|
+
static associate(models: any): void;
|
|
32
|
+
static addHooks(models: any): void;
|
|
33
|
+
}
|
|
34
|
+
export default StudentFeeHistoryModel;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StudentFeeHistoryModel = void 0;
|
|
4
|
+
const sequelize_1 = require("sequelize");
|
|
5
|
+
const index_1 = require("./index");
|
|
6
|
+
const constants_1 = require("../../constants");
|
|
7
|
+
class StudentFeeHistoryModel extends sequelize_1.Model {
|
|
8
|
+
static associate(models) {
|
|
9
|
+
const { UserModel, InstituteModel, StudentFeeCollectionModel, FileStorageModel, BankAccountDetailsModel, AcademicCalendarModel } = models;
|
|
10
|
+
StudentFeeHistoryModel.belongsTo(StudentFeeCollectionModel, {
|
|
11
|
+
foreignKey: { name: 'studentFeeCollectionId', field: 'student_fee_collection_id', allowNull: true },
|
|
12
|
+
as: 'feeHistoryCollection',
|
|
13
|
+
});
|
|
14
|
+
StudentFeeCollectionModel.hasMany(StudentFeeHistoryModel, {
|
|
15
|
+
foreignKey: { name: 'studentFeeCollectionId', field: 'student_fee_collection_id', allowNull: true },
|
|
16
|
+
as: 'collectionHasFeeHistory',
|
|
17
|
+
});
|
|
18
|
+
StudentFeeHistoryModel.belongsTo(FileStorageModel, {
|
|
19
|
+
foreignKey: { name: 'invoicePdf', field: 'invoice_pdf', allowNull: true },
|
|
20
|
+
as: 'studentFeeHistoryInvoice',
|
|
21
|
+
});
|
|
22
|
+
FileStorageModel.hasMany(StudentFeeHistoryModel, {
|
|
23
|
+
foreignKey: { name: 'invoicePdf', field: 'invoice_pdf', allowNull: true },
|
|
24
|
+
as: 'invoiceHasStudentFeeHistory',
|
|
25
|
+
});
|
|
26
|
+
StudentFeeHistoryModel.belongsTo(BankAccountDetailsModel, {
|
|
27
|
+
foreignKey: { name: 'bankAccountId', field: 'bank_account_id', allowNull: true },
|
|
28
|
+
as: 'studentFeeHistoryAccount',
|
|
29
|
+
});
|
|
30
|
+
BankAccountDetailsModel.hasMany(StudentFeeHistoryModel, {
|
|
31
|
+
foreignKey: { name: 'bankAccountId', field: 'bank_account_id', allowNull: true },
|
|
32
|
+
as: 'studentFeeHistoryHasAccount',
|
|
33
|
+
});
|
|
34
|
+
StudentFeeHistoryModel.belongsTo(StudentFeeHistoryModel, {
|
|
35
|
+
foreignKey: { name: 'parentHistoryId', field: 'parent_history_id', allowNull: true },
|
|
36
|
+
as: 'studentOldFeeHistory',
|
|
37
|
+
});
|
|
38
|
+
StudentFeeHistoryModel.hasMany(StudentFeeHistoryModel, {
|
|
39
|
+
foreignKey: { name: 'parentHistoryId', field: 'parent_history_id', allowNull: true },
|
|
40
|
+
as: 'feeHistoryHasOldFee',
|
|
41
|
+
});
|
|
42
|
+
StudentFeeHistoryModel.belongsTo(InstituteModel, {
|
|
43
|
+
foreignKey: { name: 'instituteId', field: 'institute_id' },
|
|
44
|
+
as: 'studentFeeHistoryInstitute',
|
|
45
|
+
});
|
|
46
|
+
InstituteModel.hasMany(StudentFeeHistoryModel, {
|
|
47
|
+
foreignKey: 'instituteId',
|
|
48
|
+
as: 'instituteHasStudentFeeHistory',
|
|
49
|
+
});
|
|
50
|
+
StudentFeeHistoryModel.belongsTo(UserModel, {
|
|
51
|
+
foreignKey: { name: 'userId', field: 'user_id' },
|
|
52
|
+
as: 'studentFeeHistoryUser',
|
|
53
|
+
});
|
|
54
|
+
UserModel.hasMany(StudentFeeHistoryModel, {
|
|
55
|
+
foreignKey: 'userId',
|
|
56
|
+
as: 'userHasStudentFeeHistory',
|
|
57
|
+
});
|
|
58
|
+
StudentFeeHistoryModel.belongsTo(AcademicCalendarModel, {
|
|
59
|
+
foreignKey: { name: 'academicCalendarId', field: 'academic_calendar_id' },
|
|
60
|
+
as: 'studentFeeHistoryAcaCal',
|
|
61
|
+
});
|
|
62
|
+
AcademicCalendarModel.hasMany(StudentFeeHistoryModel, {
|
|
63
|
+
foreignKey: { name: 'academicCalendarId', field: 'academic_calendar_id' },
|
|
64
|
+
as: 'acaCalStudentFeeHistory',
|
|
65
|
+
});
|
|
66
|
+
StudentFeeHistoryModel.belongsTo(UserModel, {
|
|
67
|
+
foreignKey: { name: 'createdBy', allowNull: true, field: 'created_by' },
|
|
68
|
+
as: 'createdByUser',
|
|
69
|
+
});
|
|
70
|
+
StudentFeeHistoryModel.belongsTo(UserModel, {
|
|
71
|
+
foreignKey: { name: 'updatedBy', allowNull: true, field: 'updated_by' },
|
|
72
|
+
as: 'updatedByUser',
|
|
73
|
+
});
|
|
74
|
+
StudentFeeHistoryModel.belongsTo(UserModel, {
|
|
75
|
+
foreignKey: { name: 'deletedBy', allowNull: true, field: 'deleted_by' },
|
|
76
|
+
as: 'deletedByUser',
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
static addHooks(models) {
|
|
80
|
+
StudentFeeHistoryModel.beforeCreate(async (feeCollection) => {
|
|
81
|
+
if (feeCollection.paidFee) {
|
|
82
|
+
if (feeCollection.paymentType === constants_1.PAYMENT_TYPE.CHEQUE) {
|
|
83
|
+
delete feeCollection.upiId;
|
|
84
|
+
if (!feeCollection.chequeNo || !feeCollection.bankName) {
|
|
85
|
+
throw new Error(constants_1.FEESCOLLECTION_ERROR_MESSAGES.FEE_PAID_BY_CHQUE);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
else if (feeCollection.paymentType === constants_1.PAYMENT_TYPE.UPI) {
|
|
89
|
+
delete feeCollection.chequeNo;
|
|
90
|
+
delete feeCollection.bankName;
|
|
91
|
+
if (!feeCollection.upiId) {
|
|
92
|
+
throw new Error(constants_1.FEESCOLLECTION_ERROR_MESSAGES.FEE_PAID_BY_UPI);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else if (feeCollection.paymentType === constants_1.PAYMENT_TYPE.CASH) {
|
|
96
|
+
delete feeCollection.chequeNo;
|
|
97
|
+
delete feeCollection.bankName;
|
|
98
|
+
delete feeCollection.upiId;
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
throw new Error(constants_1.FEESCOLLECTION_ERROR_MESSAGES.PAYMENT_TYPE_REQUIRED);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.StudentFeeHistoryModel = StudentFeeHistoryModel;
|
|
108
|
+
StudentFeeHistoryModel.init({
|
|
109
|
+
id: { type: sequelize_1.DataTypes.UUID, defaultValue: sequelize_1.DataTypes.UUIDV4, allowNull: true, primaryKey: true },
|
|
110
|
+
instituteId: { type: sequelize_1.DataTypes.UUID, field: 'institute_id', allowNull: true },
|
|
111
|
+
userId: { type: sequelize_1.DataTypes.UUID, field: 'user_id', allowNull: true },
|
|
112
|
+
academicCalendarId: { type: sequelize_1.DataTypes.UUID, field: 'academic_calendar_id', allowNull: true },
|
|
113
|
+
parentHistoryId: { type: sequelize_1.DataTypes.UUID, field: 'parent_history_id', allowNull: true },
|
|
114
|
+
paymentType: { type: sequelize_1.DataTypes.STRING, allowNull: true },
|
|
115
|
+
paidFee: { type: sequelize_1.DataTypes.INTEGER, allowNull: true },
|
|
116
|
+
status: { type: sequelize_1.DataTypes.STRING, allowNull: true, defaultValue: constants_1.FEE_HISTORY_STATUS.COMPLETED },
|
|
117
|
+
feeTypeId: { type: sequelize_1.DataTypes.ARRAY(sequelize_1.DataTypes.STRING), field: 'fee_type_id', allowNull: true, defaultValue: [] },
|
|
118
|
+
bankAccountId: { type: sequelize_1.DataTypes.UUID, field: 'bank_account_id', allowNull: true },
|
|
119
|
+
invoicePdf: { type: sequelize_1.DataTypes.UUID, field: 'invoice_pdf', allowNull: true },
|
|
120
|
+
invoiceNumber: { type: sequelize_1.DataTypes.STRING, field: 'invoice_number', allowNull: true },
|
|
121
|
+
feeHistoryConfigId: { type: sequelize_1.DataTypes.STRING, field: 'fee_history_config_id', allowNull: true },
|
|
122
|
+
note: { type: sequelize_1.DataTypes.STRING, field: 'note', allowNull: true },
|
|
123
|
+
studentFeeCollectionId: { type: sequelize_1.DataTypes.UUID, field: 'student_fee_collection_id', allowNull: true },
|
|
124
|
+
paidDate: { type: sequelize_1.DataTypes.DATE, defaultValue: sequelize_1.DataTypes.NOW, allowNull: true },
|
|
125
|
+
upiId: { type: sequelize_1.DataTypes.STRING, allowNull: true },
|
|
126
|
+
bankName: { type: sequelize_1.DataTypes.STRING, allowNull: true },
|
|
127
|
+
chequeNo: { type: sequelize_1.DataTypes.STRING, allowNull: true },
|
|
128
|
+
}, {
|
|
129
|
+
modelName: 'StudentFeeHistoryModel',
|
|
130
|
+
tableName: 'student_fee_history',
|
|
131
|
+
timestamps: true,
|
|
132
|
+
sequelize: index_1.sequelize,
|
|
133
|
+
});
|
|
134
|
+
exports.default = StudentFeeHistoryModel;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Model } from 'sequelize';
|
|
2
|
+
import { IStudentFeeTypeCollectionModelAttributes } from '../../interfaces/studentFeeTypeCollectionInterface';
|
|
3
|
+
import { STUDENT_FEE_COLLECTION_STATUS } from '../../constants';
|
|
4
|
+
import { TStudentFeeTypeCollectionModelCreationAttributes } from '../../types/studentFeeTypeCollectionType';
|
|
5
|
+
export declare class StudentFeeTypeCollectionModel extends Model<IStudentFeeTypeCollectionModelAttributes, TStudentFeeTypeCollectionModelCreationAttributes> {
|
|
6
|
+
id: string;
|
|
7
|
+
instituteId: string;
|
|
8
|
+
userId: string;
|
|
9
|
+
academicCalendarId: string;
|
|
10
|
+
studentFeeCollectionId: string;
|
|
11
|
+
feeTypeId: string;
|
|
12
|
+
amount: number;
|
|
13
|
+
status: STUDENT_FEE_COLLECTION_STATUS;
|
|
14
|
+
paidAmount: number;
|
|
15
|
+
discount: number;
|
|
16
|
+
oldId?: string;
|
|
17
|
+
createdBy: string;
|
|
18
|
+
updatedBy: string;
|
|
19
|
+
deletedBy: string;
|
|
20
|
+
readonly createdAt: Date;
|
|
21
|
+
readonly updatedAt: Date;
|
|
22
|
+
readonly deletedAt: string;
|
|
23
|
+
static associate(models: any): void;
|
|
24
|
+
static addHooks(models: any): void;
|
|
25
|
+
}
|
|
26
|
+
export default StudentFeeTypeCollectionModel;
|