payservedb 6.9.1 → 6.9.4

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 (152) hide show
  1. package/.env +2 -2
  2. package/.idea/material_theme_project_new.xml +10 -0
  3. package/.idea/modules.xml +8 -0
  4. package/.idea/psdb.iml +12 -0
  5. package/.idea/vcs.xml +6 -0
  6. package/index.js +284 -284
  7. package/package.json +17 -17
  8. package/src/models/account.js +35 -35
  9. package/src/models/apilog.js +18 -18
  10. package/src/models/approvalsWorkflows.js +49 -49
  11. package/src/models/archivedapilog.js +18 -18
  12. package/src/models/asset.js +92 -92
  13. package/src/models/assetsAssignment.js +64 -64
  14. package/src/models/auditTrail.js +346 -346
  15. package/src/models/bankdetails.js +40 -40
  16. package/src/models/billerAddress.js +119 -119
  17. package/src/models/booking_invoice.js +151 -151
  18. package/src/models/bookinganalytics.js +63 -63
  19. package/src/models/bookingconfig.js +45 -45
  20. package/src/models/bookingproperty.js +122 -122
  21. package/src/models/bookingreservation.js +192 -192
  22. package/src/models/bookingrevenuerecord.js +84 -84
  23. package/src/models/budget.js +95 -95
  24. package/src/models/budgetCategory.js +19 -19
  25. package/src/models/campaigns.js +94 -94
  26. package/src/models/cashpayment.js +264 -264
  27. package/src/models/combinedUnits.js +62 -62
  28. package/src/models/common_area_electricity.js +38 -38
  29. package/src/models/common_area_generator.js +41 -41
  30. package/src/models/common_area_utility_alert.js +37 -37
  31. package/src/models/common_area_water.js +39 -39
  32. package/src/models/communication_status.js +33 -33
  33. package/src/models/company.js +53 -53
  34. package/src/models/coreBaseSettings.js +16 -16
  35. package/src/models/coreInvoiceSettings.js +100 -100
  36. package/src/models/country_tax.js +42 -42
  37. package/src/models/currency_settings.js +39 -39
  38. package/src/models/customer.js +208 -208
  39. package/src/models/dailyChecklist.js +312 -312
  40. package/src/models/default_payment_details.js +17 -17
  41. package/src/models/deliveryTimeMarks.js +18 -18
  42. package/src/models/dutyRosterChecklist.js +250 -250
  43. package/src/models/dutyroster.js +136 -136
  44. package/src/models/email.js +37 -37
  45. package/src/models/email_sms_queue.js +61 -61
  46. package/src/models/entry_exit.js +53 -53
  47. package/src/models/expense.js +99 -99
  48. package/src/models/expense_category.js +45 -45
  49. package/src/models/facility.js +62 -62
  50. package/src/models/facilityInvoice.js +222 -222
  51. package/src/models/facilityWalletTransactionsMetadata.js +236 -236
  52. package/src/models/facility_departements.js +20 -20
  53. package/src/models/facility_payment_details.js +20 -20
  54. package/src/models/facilityasset.js +25 -25
  55. package/src/models/faq.js +18 -18
  56. package/src/models/gl_account_double_entries.js +25 -25
  57. package/src/models/gl_accounts.js +56 -56
  58. package/src/models/gl_entries.js +49 -49
  59. package/src/models/goodsReceivedNotes.js +115 -115
  60. package/src/models/guard.js +47 -47
  61. package/src/models/handover.js +246 -246
  62. package/src/models/invoice.js +336 -336
  63. package/src/models/item_inspection.js +67 -67
  64. package/src/models/leaseagreement.js +226 -226
  65. package/src/models/leasetemplate.js +17 -17
  66. package/src/models/levy.js +206 -206
  67. package/src/models/levy_invoice_settings.js +26 -26
  68. package/src/models/levycontract.js +168 -168
  69. package/src/models/levytype.js +23 -23
  70. package/src/models/maintenance_service_vendor.js +38 -38
  71. package/src/models/maintenance_services.js +17 -17
  72. package/src/models/maintenancerequisition.js +31 -31
  73. package/src/models/master_workplan.js +32 -32
  74. package/src/models/master_workplan_child.js +34 -34
  75. package/src/models/message.js +38 -38
  76. package/src/models/module.js +21 -21
  77. package/src/models/notification.js +44 -44
  78. package/src/models/paymentTermsMarks.js +19 -19
  79. package/src/models/penalty.js +76 -76
  80. package/src/models/pendingCredentials.js +32 -32
  81. package/src/models/powerMeterCommunicationProtocol.js +17 -17
  82. package/src/models/powerMeterCustomerAccount.js +78 -78
  83. package/src/models/powerMeterCustomerBand.js +14 -14
  84. package/src/models/powerMeterDailyReading.js +30 -30
  85. package/src/models/powerMeterGateways.js +37 -37
  86. package/src/models/powerMeterMonthlyReading.js +34 -34
  87. package/src/models/powerMeterPowerCharges.js +53 -53
  88. package/src/models/powerMeterSettings.js +138 -138
  89. package/src/models/powerMeterSingleDayReading.js +32 -32
  90. package/src/models/powerMeters.js +104 -104
  91. package/src/models/powerMetersManufacturer.js +14 -14
  92. package/src/models/power_meter_account.js +81 -81
  93. package/src/models/power_meter_command_logs.js +30 -30
  94. package/src/models/propertyManagerContract.js +556 -556
  95. package/src/models/propertyManagerRevenue.js +195 -195
  96. package/src/models/purchaseOrderInvoice.js +74 -74
  97. package/src/models/purchase_order.js +213 -213
  98. package/src/models/purchase_request.js +110 -110
  99. package/src/models/refresh_token.js +23 -23
  100. package/src/models/reminder.js +197 -197
  101. package/src/models/report.js +13 -13
  102. package/src/models/resident.js +121 -121
  103. package/src/models/rfq_details.js +131 -131
  104. package/src/models/rfq_response.js +153 -153
  105. package/src/models/service_charge_invoice_upload.js +42 -42
  106. package/src/models/service_charge_payments.js +27 -27
  107. package/src/models/servicerequest.js +55 -55
  108. package/src/models/settings.js +62 -62
  109. package/src/models/smart_meter_daily_consumption.js +44 -44
  110. package/src/models/sms_africastalking.js +20 -20
  111. package/src/models/sms_balance_notification.js +26 -26
  112. package/src/models/sms_meliora.js +20 -20
  113. package/src/models/staff.js +36 -36
  114. package/src/models/stocksandspare.js +161 -161
  115. package/src/models/suppliers.js +74 -74
  116. package/src/models/tickets.js +121 -121
  117. package/src/models/unitManagementTemplate.js +44 -44
  118. package/src/models/unitasset.js +25 -25
  119. package/src/models/units.js +117 -117
  120. package/src/models/user.js +186 -186
  121. package/src/models/valueaddedservices.js +79 -79
  122. package/src/models/vas_invoices_upload.js +50 -50
  123. package/src/models/vas_payments.js +24 -24
  124. package/src/models/vasinvoice.js +192 -192
  125. package/src/models/vasvendor.js +57 -57
  126. package/src/models/visitLog.js +95 -95
  127. package/src/models/visitor.js +67 -67
  128. package/src/models/waitlist.js +45 -45
  129. package/src/models/wallet.js +44 -44
  130. package/src/models/wallet_transactions.js +50 -50
  131. package/src/models/water_invoice.js +305 -305
  132. package/src/models/water_meter_Command_Queue.js +33 -33
  133. package/src/models/water_meter_account.js +82 -82
  134. package/src/models/water_meter_billing.js +58 -58
  135. package/src/models/water_meter_communication.js +17 -17
  136. package/src/models/water_meter_communication_logs.js +30 -30
  137. package/src/models/water_meter_concentrator.js +66 -66
  138. package/src/models/water_meter_daily_history.js +32 -32
  139. package/src/models/water_meter_iot_cards.js +34 -34
  140. package/src/models/water_meter_manufacturer.js +35 -35
  141. package/src/models/water_meter_monthly_history.js +36 -36
  142. package/src/models/water_meter_negative_amounts.js +39 -44
  143. package/src/models/water_meter_settings.js +227 -227
  144. package/src/models/water_meter_single_day_history.js +34 -34
  145. package/src/models/water_meter_size.js +15 -15
  146. package/src/models/water_meters.js +134 -134
  147. package/src/models/water_meters_delivery.js +76 -76
  148. package/src/models/water_prepaid_credit.js +47 -47
  149. package/src/models/water_prepaid_debit.js +50 -50
  150. package/src/models/workorder.js +49 -49
  151. package/src/models/facilityContractPricing.js +0 -51
  152. package/src/models/facilityInvoiceContract.js +0 -268
@@ -1,207 +1,207 @@
1
- const mongoose = require("mongoose");
2
-
3
- // Define the schema for Levy
4
- const levySchema = new mongoose.Schema(
5
- {
6
- levyName: {
7
- type: String,
8
- required: true,
9
- trim: true,
10
- minlength: [1, "Levy name must be at least 1 character long"],
11
- },
12
- levyType: {
13
- type: mongoose.Schema.Types.ObjectId,
14
- ref: "LevyType",
15
- required: true,
16
- },
17
- amount: {
18
- type: Number,
19
- required: true,
20
- min: [0, "Amount must be a positive number"],
21
- },
22
- dueDate: {
23
- type: String,
24
- required: true,
25
- },
26
- levyApplicant: {
27
- type: String,
28
- required: true,
29
- trim: true,
30
- },
31
- collectionFrequency: {
32
- type: String,
33
- required: true,
34
- trim: true,
35
- },
36
- invoiceDay: {
37
- type: String,
38
- required: true,
39
- },
40
- billingType: {
41
- type: String,
42
- enum: ['Prepaid', 'Postpaid'],
43
- required: true,
44
- default: 'Postpaid'
45
- },
46
- currency: {
47
- type: mongoose.Schema.Types.ObjectId,
48
- ref: "Currency",
49
- required: true,
50
- },
51
- mobilePayment: {
52
- type: Boolean,
53
- default: false,
54
- required: false,
55
- },
56
- paymentMethodId: {
57
- type: mongoose.Schema.Types.ObjectId,
58
- ref: "FacilityPaymentDetails",
59
- required: false,
60
- },
61
- bankPayment: {
62
- type: Boolean,
63
- default: false,
64
- required: false,
65
- },
66
- // Reference to BankDetails document
67
- bankAccountId: {
68
- type: mongoose.Schema.Types.ObjectId,
69
- ref: "BankDetails",
70
- required: false,
71
- },
72
- // Reference to BillerAddress document
73
- billerAddressId: {
74
- type: mongoose.Schema.Types.ObjectId,
75
- ref: "BillerAddress",
76
- required: true,
77
- },
78
- // GL Account Configuration
79
- glAccounts: {
80
- invoice: {
81
- debit: {
82
- type: mongoose.Schema.Types.ObjectId,
83
- ref: "GLAccount",
84
- required: true,
85
- },
86
- credit: {
87
- type: mongoose.Schema.Types.ObjectId,
88
- ref: "GLAccount",
89
- required: true,
90
- }
91
- },
92
- payment: {
93
- debit: {
94
- type: mongoose.Schema.Types.ObjectId,
95
- ref: "GLAccount",
96
- required: true,
97
- },
98
- credit: {
99
- type: mongoose.Schema.Types.ObjectId,
100
- ref: "GLAccount",
101
- required: true,
102
- }
103
- }
104
- },
105
- disabled: {
106
- type: Boolean,
107
- default: false,
108
- required: false,
109
- },
110
- facilityId: {
111
- type: mongoose.Schema.Types.ObjectId,
112
- ref: "Facility",
113
- required: true,
114
- },
115
- // Reminder reference
116
- reminderId: {
117
- type: mongoose.Schema.Types.ObjectId,
118
- ref: 'Reminder',
119
- required: false
120
- },
121
- // Penalty reference
122
- penaltyId: {
123
- type: mongoose.Schema.Types.ObjectId,
124
- ref: 'Penalty',
125
- required: false
126
- }
127
- },
128
- {
129
- timestamps: true,
130
- }
131
- );
132
-
133
- // Add virtuals for populated references
134
- levySchema.virtual('bankAccount', {
135
- ref: 'BankDetails',
136
- localField: 'bankAccountId',
137
- foreignField: '_id',
138
- justOne: true
139
- });
140
-
141
- levySchema.virtual('billerAddress', {
142
- ref: 'BillerAddress',
143
- localField: 'billerAddressId',
144
- foreignField: '_id',
145
- justOne: true
146
- });
147
-
148
- levySchema.virtual('reminder', {
149
- ref: 'Reminder',
150
- localField: 'reminderId',
151
- foreignField: '_id',
152
- justOne: true
153
- });
154
-
155
- levySchema.virtual('penalty', {
156
- ref: 'Penalty',
157
- localField: 'penaltyId',
158
- foreignField: '_id',
159
- justOne: true
160
- });
161
-
162
- // Pre-save validation middleware
163
- levySchema.pre('save', function (next) {
164
- // Validate bank payment requirements
165
- if (this.bankPayment && !this.bankAccountId) {
166
- const error = new Error('Bank account is required when bank payment is enabled');
167
- return next(error);
168
- }
169
-
170
- // Validate mobile payment requirements
171
- if (this.mobilePayment && !this.paymentMethodId) {
172
- const error = new Error('Payment method is required when mobile payment is enabled');
173
- return next(error);
174
- }
175
-
176
- // Validate GL accounts
177
- if (!this.glAccounts?.invoice?.debit || !this.glAccounts?.invoice?.credit ||
178
- !this.glAccounts?.payment?.debit || !this.glAccounts?.payment?.credit) {
179
- const error = new Error('All GL accounts (invoice and payment, debit and credit) are required');
180
- return next(error);
181
- }
182
-
183
- next();
184
- });
185
-
186
- // Add indexes for better performance
187
- levySchema.index({ facilityId: 1 });
188
- levySchema.index({ levyType: 1 });
189
- levySchema.index({ disabled: 1 });
190
- levySchema.index({ bankAccountId: 1 });
191
- levySchema.index({ billerAddressId: 1 });
192
- levySchema.index({ reminderId: 1 });
193
- levySchema.index({ penaltyId: 1 });
194
- levySchema.index({ createdAt: -1 });
195
-
196
- // Compound indexes
197
- levySchema.index({ facilityId: 1, disabled: 1 });
198
- levySchema.index({ facilityId: 1, levyType: 1 });
199
-
200
- // Ensure virtual fields are serialized
201
- levySchema.set('toJSON', { virtuals: true });
202
- levySchema.set('toObject', { virtuals: true });
203
-
204
- // Compile the model from the schema
205
- const Levy = mongoose.model("Levy", levySchema);
206
-
1
+ const mongoose = require("mongoose");
2
+
3
+ // Define the schema for Levy
4
+ const levySchema = new mongoose.Schema(
5
+ {
6
+ levyName: {
7
+ type: String,
8
+ required: true,
9
+ trim: true,
10
+ minlength: [1, "Levy name must be at least 1 character long"],
11
+ },
12
+ levyType: {
13
+ type: mongoose.Schema.Types.ObjectId,
14
+ ref: "LevyType",
15
+ required: true,
16
+ },
17
+ amount: {
18
+ type: Number,
19
+ required: true,
20
+ min: [0, "Amount must be a positive number"],
21
+ },
22
+ dueDate: {
23
+ type: String,
24
+ required: true,
25
+ },
26
+ levyApplicant: {
27
+ type: String,
28
+ required: true,
29
+ trim: true,
30
+ },
31
+ collectionFrequency: {
32
+ type: String,
33
+ required: true,
34
+ trim: true,
35
+ },
36
+ invoiceDay: {
37
+ type: String,
38
+ required: true,
39
+ },
40
+ billingType: {
41
+ type: String,
42
+ enum: ['Prepaid', 'Postpaid'],
43
+ required: true,
44
+ default: 'Postpaid'
45
+ },
46
+ currency: {
47
+ type: mongoose.Schema.Types.ObjectId,
48
+ ref: "Currency",
49
+ required: true,
50
+ },
51
+ mobilePayment: {
52
+ type: Boolean,
53
+ default: false,
54
+ required: false,
55
+ },
56
+ paymentMethodId: {
57
+ type: mongoose.Schema.Types.ObjectId,
58
+ ref: "FacilityPaymentDetails",
59
+ required: false,
60
+ },
61
+ bankPayment: {
62
+ type: Boolean,
63
+ default: false,
64
+ required: false,
65
+ },
66
+ // Reference to BankDetails document
67
+ bankAccountId: {
68
+ type: mongoose.Schema.Types.ObjectId,
69
+ ref: "BankDetails",
70
+ required: false,
71
+ },
72
+ // Reference to BillerAddress document
73
+ billerAddressId: {
74
+ type: mongoose.Schema.Types.ObjectId,
75
+ ref: "BillerAddress",
76
+ required: true,
77
+ },
78
+ // GL Account Configuration
79
+ glAccounts: {
80
+ invoice: {
81
+ debit: {
82
+ type: mongoose.Schema.Types.ObjectId,
83
+ ref: "GLAccount",
84
+ required: true,
85
+ },
86
+ credit: {
87
+ type: mongoose.Schema.Types.ObjectId,
88
+ ref: "GLAccount",
89
+ required: true,
90
+ }
91
+ },
92
+ payment: {
93
+ debit: {
94
+ type: mongoose.Schema.Types.ObjectId,
95
+ ref: "GLAccount",
96
+ required: true,
97
+ },
98
+ credit: {
99
+ type: mongoose.Schema.Types.ObjectId,
100
+ ref: "GLAccount",
101
+ required: true,
102
+ }
103
+ }
104
+ },
105
+ disabled: {
106
+ type: Boolean,
107
+ default: false,
108
+ required: false,
109
+ },
110
+ facilityId: {
111
+ type: mongoose.Schema.Types.ObjectId,
112
+ ref: "Facility",
113
+ required: true,
114
+ },
115
+ // Reminder reference
116
+ reminderId: {
117
+ type: mongoose.Schema.Types.ObjectId,
118
+ ref: 'Reminder',
119
+ required: false
120
+ },
121
+ // Penalty reference
122
+ penaltyId: {
123
+ type: mongoose.Schema.Types.ObjectId,
124
+ ref: 'Penalty',
125
+ required: false
126
+ }
127
+ },
128
+ {
129
+ timestamps: true,
130
+ }
131
+ );
132
+
133
+ // Add virtuals for populated references
134
+ levySchema.virtual('bankAccount', {
135
+ ref: 'BankDetails',
136
+ localField: 'bankAccountId',
137
+ foreignField: '_id',
138
+ justOne: true
139
+ });
140
+
141
+ levySchema.virtual('billerAddress', {
142
+ ref: 'BillerAddress',
143
+ localField: 'billerAddressId',
144
+ foreignField: '_id',
145
+ justOne: true
146
+ });
147
+
148
+ levySchema.virtual('reminder', {
149
+ ref: 'Reminder',
150
+ localField: 'reminderId',
151
+ foreignField: '_id',
152
+ justOne: true
153
+ });
154
+
155
+ levySchema.virtual('penalty', {
156
+ ref: 'Penalty',
157
+ localField: 'penaltyId',
158
+ foreignField: '_id',
159
+ justOne: true
160
+ });
161
+
162
+ // Pre-save validation middleware
163
+ levySchema.pre('save', function (next) {
164
+ // Validate bank payment requirements
165
+ if (this.bankPayment && !this.bankAccountId) {
166
+ const error = new Error('Bank account is required when bank payment is enabled');
167
+ return next(error);
168
+ }
169
+
170
+ // Validate mobile payment requirements
171
+ if (this.mobilePayment && !this.paymentMethodId) {
172
+ const error = new Error('Payment method is required when mobile payment is enabled');
173
+ return next(error);
174
+ }
175
+
176
+ // Validate GL accounts
177
+ if (!this.glAccounts?.invoice?.debit || !this.glAccounts?.invoice?.credit ||
178
+ !this.glAccounts?.payment?.debit || !this.glAccounts?.payment?.credit) {
179
+ const error = new Error('All GL accounts (invoice and payment, debit and credit) are required');
180
+ return next(error);
181
+ }
182
+
183
+ next();
184
+ });
185
+
186
+ // Add indexes for better performance
187
+ levySchema.index({ facilityId: 1 });
188
+ levySchema.index({ levyType: 1 });
189
+ levySchema.index({ disabled: 1 });
190
+ levySchema.index({ bankAccountId: 1 });
191
+ levySchema.index({ billerAddressId: 1 });
192
+ levySchema.index({ reminderId: 1 });
193
+ levySchema.index({ penaltyId: 1 });
194
+ levySchema.index({ createdAt: -1 });
195
+
196
+ // Compound indexes
197
+ levySchema.index({ facilityId: 1, disabled: 1 });
198
+ levySchema.index({ facilityId: 1, levyType: 1 });
199
+
200
+ // Ensure virtual fields are serialized
201
+ levySchema.set('toJSON', { virtuals: true });
202
+ levySchema.set('toObject', { virtuals: true });
203
+
204
+ // Compile the model from the schema
205
+ const Levy = mongoose.model("Levy", levySchema);
206
+
207
207
  module.exports = Levy;
@@ -1,27 +1,27 @@
1
- const mongoose = require('mongoose');
2
-
3
- const InvoiceSettingsSchema = new mongoose.Schema({
4
- facilityId: {
5
- type: mongoose.Schema.Types.ObjectId,
6
- ref: 'Facility',
7
- required: [true, 'Facility ID is required']
8
- },
9
- termsAndConditions: {
10
- type: String,
11
- default: 'Payment is due within 15 days'
12
- },
13
- bankName: {
14
- type: String,
15
- required: [true, 'Bank name is required']
16
- },
17
- accountNumber: {
18
- type: String,
19
- required: [true, 'Account number is required']
20
- }
21
- }, {
22
- timestamps: true
23
- });
24
-
25
- const InvoiceSettings = mongoose.model('InvoiceSettings', InvoiceSettingsSchema);
26
-
1
+ const mongoose = require('mongoose');
2
+
3
+ const InvoiceSettingsSchema = new mongoose.Schema({
4
+ facilityId: {
5
+ type: mongoose.Schema.Types.ObjectId,
6
+ ref: 'Facility',
7
+ required: [true, 'Facility ID is required']
8
+ },
9
+ termsAndConditions: {
10
+ type: String,
11
+ default: 'Payment is due within 15 days'
12
+ },
13
+ bankName: {
14
+ type: String,
15
+ required: [true, 'Bank name is required']
16
+ },
17
+ accountNumber: {
18
+ type: String,
19
+ required: [true, 'Account number is required']
20
+ }
21
+ }, {
22
+ timestamps: true
23
+ });
24
+
25
+ const InvoiceSettings = mongoose.model('InvoiceSettings', InvoiceSettingsSchema);
26
+
27
27
  module.exports = InvoiceSettings;